its only downside is that it uses some fucking 🅱️tarded ingame gui config system, and all the configs are unintelligible to humans on disk and it uses some stupid dumb "database" system except it's actually json flatfile, and its addon system is dumb and bad because it insists on its own classloader for them rather than using the already-existing bukkit plugin system like any sane framework would
#help-development
1 messages · Page 1323 of 1
pov: use the fucking system i hate
😄
what's the best event to listen for entity loading from a chunk, and is there any way to tell if this is the first time the entity has been loaded ?
Currently thinking of using onChunkLoad
i mean it does tick all their boxes 🤡 even if i do hate it
are you the guy trying to do something with the elytra item frame in end ships
yes indeed, making some progress
but now my implementation will affect all item frames with an elytra in them, so it can lead to exploits
@EventHandler
public void onChunkLoad(ChunkLoadEvent event) {
if (event.getWorld().getEnvironment() != World.Environment.THE_END) {
return;
}
if (!event.isNewChunk()) {
return;
}
processChunkEntities(event);
}
Changed it to this just now
i recall someone suggesting to use a datapack to change the structure itself
that seems like the cleanest way to go about this
That might be best, true
I do want to affect servers who use custom datapacks to change the end ship structure though
By making sure the elytra is always changed into an instanced version
Also weirdly enough, whenever I tried testing the datapack method, Vault block would never load the correct loot table from the structure .nb t
i honestly have no idea how to do this properly apart from a datapack, and i'm not sure how datapacks work with this, either
what you have looks alright
there aren't any newly-generated chunks that would have item frames with elytrae in them, apart from the end ships, i don't think
for legacy worlds, you can try using the structure api to locate the nearest end ship structure; if it doesn't overlap the end ship, the item frame probably isn't a legit one
and i suppose limit them to one per end ship structure with a persistent map
EntitiesLoadedEvent
You could tag them in the event so you know if they have been processed before
package org.bukkit.block;
import org.jetbrains.annotations.ApiStatus;
/**
* Represents a captured state of a trial spawner.
*/
public interface Vault extends TileState {
}
Anyone know why my Vault class has none of the functions from the docs on it? Am using spigot 1.21
compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
idk bro this doesnt look like spigot 1.21
Because API was added for it in 1.21.4
Not sure why you're depending on API version 1.21.1. That version is long outdated
But also yes, that's Paper, not Spigot. lol
😭
total ilneviat
sobbing as i type
I was trying to use the lowest version that supported the Vault block because I wanted my plugin to support as many versions as possible
but upon reflection, since everything 1.21 is pretty compatible that shouldnt matter as much
package org.bukkit.block;
import org.bukkit.World;
import org.bukkit.inventory.ItemStack;
import org.bukkit.loot.LootTable;
import org.jetbrains.annotations.Unmodifiable;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
import java.util.Collection;
import java.util.Set;
import java.util.UUID;
/**
* Represents a captured state of a vault.
*/
@NullMarked
public interface Vault extends TileState {
/**
* Gets the range in blocks at which this vault will become active when a player is near.
*
* @return This vault's activation range.
*/
double getActivationRange();
ong finally
The 1.21.4 tip was right, thanks
Success! i was testing code for the End Ship generation and i managed to replace the item frame spawn
Hello, everyone. I wanted to create a method that would allow me to manipulate the player's appearance, which would be compatible with version 1.8.8+ (1.8x - 1.21x). It is necessary for my plugin, but it has been very stressful.
How would you recommend I do multiple compatibility? Any repository or thread I can take a look at?
What do you mean by player's appearance? The skin?
Yes, i have used packetevents
Working in 1.8.8, but 1.21.4:
Stucks in Loading Terrain... screen
You can check on how SkinsRestorer does it
I've tried and failed
Did you try their API?
I just don't know why in 1.21.4 it keeps loading terrain.
It doesn't make sense for me to depend on another skin plugin for a skin plugin.
It disappears, but the skin does not change and remains in limbo
But in join (using same method) change.
As of december 2025, people shouldn't even try to use NMS in spigot imho - just switch to paper, that's my opinion
if you wanna try anyway, my blog posts are on archive.org
you are saying for me?
"Hello, everyone. I wanted to create a method that would allow me to manipulate the player's appearance, which would be compatible with version 1.8.8+ (1.8x - 1.21x). It is necessary for my plugin, but it has been very stressful. "
appearance = skin
Ah I see. But there is API for that, but ofc not for 1.8
I'm using packetevents, but in 1.21.4
I need help registering a custom NMS packet (ID 100) into EnumProtocol on 1.8.8 (v1_8_R3). I have the PacketPlayOutCustomRender class ready. Should I modify the Spigot source with patches or is there a reliable reflection method for this version?
nobody uses 1.8 anyway. If I was you, I would just use latest Spigot version and forget about everyone else
1.8.8? yes, use
yeah you're right, 3% do still use it for an unknown reason
Alrighty, I'll share you my blog post which explains how to use NMS in spigot, one second pls
But I don't think it's relevant, because it doesn't make sense that it works in 1.8.8 and 1.21.4 doesn't, you know?
JEFF Media Developer Blog
Hi there! Today I’m going to explain how to setup a multi-module project using maven to support different NMS versions. Important notes about this tutorial: Every step will have detailled screenshots using IntelliJ. I explicitly chose not to include everything as copy/pastable source code, but normal screenshots (you can click on them to show ...
Is there anyone who can be helped right now?
It changes in the join listener, and then when you run the command, it keeps loading terrain.
It does, the article is exactly about that issue (supporting diff NMS versions)
read it, or don't, your choice
I'd read it if I was you
What is the size of nms +-?
0 - you do not shade it
yes i know, to download package i say
Oh in that case: however big each minecraft version is that you wanna compile against
Usually like 50-200mb each
thanks 1.8.8 players
RIP yeah
1.8.8, 1.12.2, 1.16.5, 1.17.1, 1.18.2, 1.19.4, 1.20.1, 1.20.4, 1.21.4
goodbye storage
if I was you, I would simply just use LibsDisguises as library
then you do not have to deal with NMS yourself
but I think it's paid sooooo yeah
Yes, that one
It can already handle your specific use case
And it works across versions, I think
There might be better approaches, e.g. using ProtocolLib or PacketEvents or similar, I don't know for sure
bro
i'm using packetevents
.
Welp, sorry, I did not read the full discussion
As I already said: I would just drop support for 1.8. But as already said, here's the the tutorial for maven on how to support different NMS versions ^
i will try libdisguise
lf someone to try to escape my adventure map, its WIP and i basically just need someone to try find loopholes and tell me if my code sucks and things break. Preferably VC if you can
My plugin kept saying it couldnt find my plugin.yml despite me not changing anythign suddenly
I added this to my pom file
<resource>
<directory>src</directory>
<includes>
<include>plugin.yml</include>
</includes>
</resource>
</resources> ```
Now it is saying it cannot locate my main class
show plugin.yml and ur folder structure
version: 2025.12.20
main: kbs.skill.main.Skills
author: KingBlueSapphire
depend: [ServerCore,Factions]```
org.bukkit.plugin.InvalidPluginException: Cannot find main class `kbs.skill.main.Skills'```
yea, you need to do what steve sais
it probably treats ur sources as resources now
excluding them
?paste the entire pom
Looking to paste something? Try a code block or one of the following websites:
- https://pastes.dev/
- https://sourceb.in/
- https://mclo.gs/ (best for server logs)
y choose the one specifically for logs when you're not sending logs -_-
you're making plugin for 1.8 ?
This was one I was trying to recompile
it's missing the dependency for spigot :D
I did not change anything i just suddenly cant compile it
im so confused i legit changed nothing
it compiled last month
all you have to do is move the resouces (plugin,yml) inside a folder called resources then changes the directory inside your pom.xml to resources
I have spigot jar under Java Build Path > Library > External Jar
what folder do i make resources under
normally when you use maven, you also use maven to add dependencies ;D
right click my project and create folder resources?
in your case, next to src
ye this does not follow maven conventions
no wonder it doesn't do what you expect it to do
maven expects a set structure
i thought this would be an easy fix damn
it is
my other plugins have plugin.yml in src folder and they compile
So i made my resource folder
I moved my plugin yml
now make sure this is correct
I'd suggest making the file structure as I showed and yeeting that Maven Resources Plugin
That way it will be correct
Tho this way may work as well
well technically what steve sais is proper
meaning you would have this structure ^
i dont think you need that process resources at all in that case
i may be wrong
been a while since i used maven
if you use proper maven expected structure, the resources will be included in the jar by default
no need for anything else
like this it should be "src/resources"
lol
lol
What did i do now 😢
what ide is that even
Eclipse
you should totally just remove the entire process resources bit, and just make sure your structure is correct
if you compile now, your classes should be back right?
then make sure your structure is right and maven will automatically put ur resources in there
and you should probably make sure your dependencies are defined in pom instead of eclipse's own system
are you even using maven to compile btw?
i feel like that should fail
if maven don't know about spigot
how are you compiling lol
xd thats interesting
i just want this damn thing to compile at this point
how do you compile
ok well idk what that does
open console and run "mvn package"
I think it was
console in eclipse (if it even has one)
All this was working though
i didnt change any of this
I feel im breaking it more 🙁
well it doesn't usually break itself out of nowhere
anyways, do change the file structure
I put resources under src
project/src/main/java
project/src/main/resources
🙂
but that maven/Skills/Skills is weird either way
yea indeed
In my other project i have
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>```
but when i put that line into skills it fails to compile
but again, your file structure is fucked and thats why you have to do some silly workarounds
dis
aye it worked all this time
i just want the damn thing to compileee
so in my src create two folders?!
😄
this is how the structure usually looks like
under java you have the source code
under resources you have... resources like plugin.yml
no
no, normally that would be main
and normally you would also use your group id, e.g "me.shurikennen" or whateevre
doesnt eclipse have refactoring capabilities?
(if it were a competent IDE it would correctly change all your imports 'n stuff)
what for, you'll get it lol
What do i do now though
you have the java files, unless you delete those you can always recover :D
did you remove <Maven Resources Plugin> from your pom ?
done
ye just compile with mvn
and its probably best to run "clean" as well
actually, for something's sake, send pic of the file structure again
this is what u want, fairly simple
spoon time ig
src -> main -> java -> all the things you had in src at the start of this
src -> main -> resources -> plugin.yml
literally the word main?
yes
si
all of this is under java
stupid eclipse didnt refactor lovely
i remember using eclipse for a total of 45 minutes before i switched to Intellij
good times
eclipse -> eclipse
yes :D
i EditeTRed iT!
WAIT IT MADE A FOLDER NOW
im so confused
where did the src/main/java come from
wtf
lol
how even
im going to cry omg
Eclipse is cooking
If you have a copy of your source code already, sure
this one doesn't look right
also, if you move skill under bkr.skill or whatever you had it should fix the imports
...
you could also send me a zip with ur project, ill fix it for you, im in a good mood 
can i send it lol
sure
do tell me the result :D
sure 
i got it to compile 🙂
final pom is this lol https://pastes.dev/2EepDkY5a7
Noice
now the pom looks much better :D
this also much better 🙂
suppose it makes sense. Happy emoji means it passed, sad emoji means it failed
simple enough
Is there a way to have vanilla structures spawn in a custom world generator, but have them remain in the same location they would have been as if it was generated in the vanilla world?
I'd also like to know if there's a way to check if a location is within a sub-box of a structure box, instead of just checking if it's part of the main box. Basically, some structures have a box that entirely encompasses the structure, but then the pieces of that structure have their own boxes. I want to check for those boxes and not the main box.
This is for a custom skygrid plugin I am making btw. I wanted to make my own because I didn't like any of the ones that were already there. I have biome specific generation and I keep the layout of vanilla biomes.
Might need to calculate the structures yourself
They have conditions that might not match with the skygrid
Though dig through nms and double check that. It's been a while since I looked at it
Is there a terrain generation phase that takes place after structure generation? I might try to generate a layer of stone and grass, and then remove the stone and grass after structures are generated.
depends on the structure somewhat i think, but from what i've seen ingame, structures don't really seem to do any checks on the terrain they spawn at; you can find villages floating on top of rivers/oceans if the structure origin happens to be on the shore, or scaling 200 block tall mountains
i do remember there being api for the subboxes, StructurePiece or something off the top of my head; might be paper only though
i used them in a plugin where i repopulated villages on a piece-by-piece basis
The beardifier takes care of it
By making the terrain flat where the structure should be
What's a "beardifier"
That’s what the game calls it
It just carves or fills the terrain to make a flat spot for structures
myes, and it looks terrible
random blobs of stone outcrops on the side of a mountain because there's a farm there; floating dirt islands in the middle of the ocean because there's a village building there
perfectly spherical caves inside a cliff because the generator decided to put a village there
It’s better than before
maybe marginally
it didn't help that 1.18 pulled all the stops from the generator heightmap, so even plains where villages typically generate can and often do have random ass mountains
I'd love to do that, but I'm not sure how to place vanilla's structures.
Plus I may make a Fabric version of the generator at some point
is there a nice way to add the can place on and can destroy nbt tags to an itemstack?
or is it still the compound tag stuff
itemmeta should have api for it iirc
I tried making it with fabric at one point, but going through vanilla code had me going through so many layers of abstraction and gson shitholes that I just gave up for an entire year. And somehow nobody in any help discord knew how to do what I wanted. I was basically stonewalled at the very basic task of making a generator using code instead of JSON definitions.
I really appreciate how this big at API has a nice simple way to make a world generator with code. I want to give the devs props for that. My generator was really easy to make thanks to your API.
can't find anything relating to it
in the itemmeta source
might be paper only then
damn
or maybe i misremember
Sorry for the mini rant. I'm getting too ahead of myself. The point I was trying to make is I haven't really touched NMS because vanilla code in modern Minecraft is so headache-inducing to me. I have no idea where to look for anything because I can't tell what anything freaking does.
yes, it's ass
everything is behind 25 levels of dfu codec registry nonsense
the bukkit worldgen api is alright but it's starting to show its age as well with how much mojang has changed the internals since its inception
And yet it's exactly what I want. The JSON world system is just not designed to handle the type of world I want to make. So I have to use code. I was even going to go the extra mile to implement data pack support specifically so it would still be possible to interface with my stuff.
Maybe I'll try again someday, but for now, using the bukkit API since it has what I want and people who know how to help
How is mine
queue that one [[[ABSTRACTION]]] java meme
I want a player to pre-type command in their chat without performing that command yet. Is below code correct?
player.chat("/eco give ");
Because the command is not completed yet, requiring player to enter more information
thats a method?
not possible as that requires being able to send something to their client to type in the message line which there is nothing
why java compact files must have main method....
this is only useful for bootstrap/launcher classes
imagine having this but for test classes
or any other utility class which provides static utility methods
just use kotlin
can anyone recommend a particle lib with a feature to draw a line of particles between 2 locations and move the target around
whats the difference between a server-side mod and a plugin?
Nothing really
Well the biggest difference is the api
Mods generally work more directly with nms
While plugins use the spigot api, but they can ofc use nms too should they want to
nowadays there's hybrids of being both plugins and server mods
there's little to none advanced plugins which do not utilize NMS in one way or another
usually plugin devs target API's like Bukkit just to shift the maintenance burder to the API developers, and if something is lacking from API they sort things themselves by utilizing NMS with either external third party wrapper API's or by writing abstraction layers themselves
none of my plugins use nms because I shit in terrible API into my own fork
You what 
would the only difference between a plugin only using nms explicitly and a mod be the server software?
I think the accepted definition of a mod (in the Minecraft ecosystem) is changing the vanilla game code. So plugins aren't mods because they're not changing the code, they're loaded by Spigot. Spigot is the mod because it has patches to change the server
Then obviously Fabric & Forge mods each have mixins, and can mutate the client

can mods mutate the server code itself?
With mixins, yes
what are mixins?
Before mixins, Forge mods had coremods which would do it with JavaScript
Mixins is a library by Sponge which is a layer over ASM to let code inject into arbitrary points of bytecode to modify it
Injections, redirections, overrides, shadowing, etc.
what is asm 😭
Bytecode manipulation library
sounds scary
has anyone ever dealt with HotSwapAgent?
never in my life
mmm
I downloaded JetBrainsRuntime 21
set it here
chat told me to also switch this to intellij
trying to run a server with debugger
chat also told me to disable the log4j2 plugin, as a possible cause
none worked
this mf is persistent
it loads
and then just
dies
I tried to follow their set-up https://hotswapagent.org/mydoc_setup_intellij_idea.html
this button doesn't exist
it's just the first two
huh i thought coremods with javascript was newer than mixins
i just remember people using the ow2 ASM lib itself for coremods
No, way older. They encourage you use mixins instead of coremods
wtf, i thought this was the complete other way around 😭
i thought forge (((Lex))) discouraged mixins
Lex was opposed to them, but he also hated core mods
The lesser of two evils. At least mixins were relatively compatible
hi
help me pls, I've been trying to fix this error all day, please help me. I'll give you my Pterodactyl Panel credentials. Please help.
i'll also need your social security number and the confirmation pin on your credit card and the credit card number
Bro, please
weren't there java coremods before js coremods
Make sure you didn't use localhost as the ip
and that the address/port/firewall is configured properly
dm me pls
anyone know how to make a spigot like terminal in java like logging + text box which is unaffected at the bottom of the screen
standalone java application
Yes, it was java coremods, then came js coremods and then mixin appeared
i somewhat dislike swing
It's not on localhost. The thing is, I've already tried all possible IP addresses, from the public one to 127.0.0.1.
Are you using a host or are you running your own pterodactyl panel
my pterodactyl
I'll send you everything privately.??
assuming you aren't sharing it with anyone
try pufferpanel
I share it with a friend of mine who has bots for I don't know what things.
it's a bit less polished and their frontend dev is an idiot, but it's much more reasonable and easy to set up than ptero
Pterodactyl is an open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
Don't skip steps
make sure to read and understand what it's telling you to do and why
ahh
Why are my IPs 0.0.0.0?
That's the ip to bind to
0.0.0.0 is used as a wildcard, basically any available ip
nah i mean like console
Well, I entered the public IP address, but it won't let me.
yk how its logging
and then one line where u type cmds
thats kinda aids to do without a library so im tryna find something but idk
acc i could ask chatgpt lol
In other words, Bungeecord must have the IP address of the panel.
ufw allow in on pterodactyl0 to 172.18.0.1 port 25572 proto tcp
It wants the IP address for the network adapter you want to bind to, the public IP is nearly never one of your adapter's IP addresses, it's usually an adapter on a separate device altogether like a modem or router. Enter the specific adapter IP you want to bind to, or keep it as 0.0.0.0 to listen on all available adapters, this is usually what you want.
I've already solved it, thanks anyway. Do you know of any plugins that have /premium?
Not sure what you mean...
A plugin that has /register and /login, but if you are a premium user, you don't need to use those commands and you are directly redirected to the lobby or the mode.
I don't know of any that use a command called premium I'm afraid.
and a plugin that allows you to log in or register and prevents your account from being stolen, but if you are a premium user, you don't need to use it.
I can't remember the name of it, but I know there are some that exist.
I hear online mode works well for that
?offline
Do you know of any plugins?
oh right, DMC killed itself
FastLogin does this
https://www.spigotmc.org/resources/fastlogin.14153/
"This plugin also supports newer Minecraft versions and is still updated. I moved away from doing fixed releases. Instead you can use development builds that are build directly after a change. Click on the left side on the build to download it or click status to get always the latest."
There is a download it here link on the main page
And do I have to add that plugin to the Auth server?
The video doesn’t embed anymore? D:
I would assume so, but I'm really not sure I haven't used it, sorry.
Video was not that good anyway...
Is it possible to play the item break animation using the API?
If you wish to request or offer development/art/building/administration services, please do so at https://www.spigotmc.org/forums/services-recruitment-v2.54/
i too promote my own services on my alt accounts
5% discount
Oh, hmmm
Emily = spexx confirmed
i have no reason to block my own alts
Is what u want us to think
do you offer a free dental plan
devil may cry?
dedicatedmc
dunno what dat is
same. googled it and seems to be yet another hosting provider
Take a look at EntityEffects class
If its not there, it‘s probably not possible
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/Entity.html#playEffect(org.bukkit.EntityEffect)
Here you go
declaration: package: org.bukkit.entity, interface: Entity
can you hot reload a plugin? I'm sick of replacing my jar when im tryna test something, and then starting the whole server again
go fuck yourself
@young knoll circumcise this mfer at once
ty!!
/reload ?
I mean a specific plugin
My plugin integrates with a couple other plugins, and im testing it onn my main server, takes a while to load, atleast 35 seconds, even /reload takes as much time
you can setup hotswapping but it is kind of a whole thing
setting it up is easy, but coding in a way that it is actually useful to use is a different thing
Remote/Local hotswapping 101:
- Run your server with the Jetbrains Runtime JDK.
- Add the
-XX:+AllowEnhancedClassRedefinitionflag to your start script, make sure it is before the-jarparameter. - Run the server with the debug protocol, there are various ways of doing this:
- If you're using jpenilla's run-task gradle plugin, you can add it to the runServer configuration like so:
runServer {
legacyPluginLoading()
serverJar("your/path/to/spigot.jar")
minecraftVersion("1.21.11")
javaLauncher = javaToolchains.launcherFor {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(21)
}
debugOptions {
debug = true
suspend = false
server = true
port = 5005
address = "*"
}
jvmArgs("-XX:+AllowEnhancedClassRedefinition")
}
- If you're just using a Run Jar Configuration inside IntelliJ, then it'll be enough to run it with the debug button. Just make sure to add the JVM flag for enhanced class redefinition on its settings.
- Manually adding the jdwp protocol flags to your server, you'll have to do this if you are debugging remotely (be it either with the jdb command line program or inside IntelliJ with a Remote JVM Debug run configuration):
java -XX:+AllowEnhancedClassRedefinition -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar server.jar
- That's it, now you can press Ctrl+Shift+F9 (Windows/Linux) or Cmd+Shift+F9 (Mac) to reload classes (or just use the popup inside IntelliJ, really).
It should be somewhat similar for Eclipse/Netbeans/VSCode users
youre so fucking awesome @sly topaz
FR
how would I go about/is it possible to detect a players completion of a trial spawner?
I think the only event is TrialSpawnerSpawnEvent
and you can get the state of a trial spawner
from that, you could maybe track spawners, have a scheduler which checks its state from the last thing in memory
how can you make a datapack in the world directory on plugin startup? Paper has a built in way for that so I was wondering if it was possible in spigot
You can use the File class and make it manually ig
we goin primitive again
10000000%
that's too late I guess, as plugins on spigot enable AFTER loading the main world
IIRC worlds[0] always loads before all the plugins
You can specify when a plugin loads, isn't there like STARTUP that should load before the world ?
yes
might be true; in my memory that was a paper feature
onLoad is always called before worlds are loaded too
but afaik data packs are loaded during bootstrap anyways
TL;DR the only proper solution on spigot is to tell admins to install the datapack manually first
if they are not able to do that, they shouldnt be admins anyway
can't you just put the datapack on the folder then do Bukkit.reloadData()
might work, however javadocs don't explain it completely
it is the equivalent of a /minecraft:reload so it should work fine, javadocs for that method could definitely be improved
Paper specifically includes a DatapackManager#refreshPacks() but they also they "Some of these changes will only take effect after the next Bukkit reloadData" so I think you're right & it should work
I do wonder how hard it'd be to unfreeze all the necessary registries and inject a datapack at onLoad
given the reload mechanism exists, it might just be a dumb thing to do
a lifecycle reload doesn't reload everything, does it?
I believe it should but I am not completely sure, the worldgen stuff being reloaded sounds funky
haha yeah that'd be funky indeed
not as funky as "Funky Town" by Lipps Inc though
fernet commercial flashbacks
2004: "Estadística"
Cepas Argentinas / Fernet Cinzano
CraveroLanis Euro RSCG / argentinacine
🐟
No
It wont reload structures, biomes, pretty much any worldgen stuff
what if i ask nicely
Mojang allow better hot reloading please 🥺
good question
"hewwo MC 1.21.11 pweeese :3"
just tried and it said "unknown command" D:
its kinda shit that reload was removed
It wasn’t though?
Spigot and minecrafts reload command both still exist
isn't the profile immutable now?
oh hmm
maybe the changes only apply to the viewer?
oh right, i remember something about respawning
try to respawn the player
try to respawn and see if it works
also you don't have to removeall
put will replace it no?
it's a multimap, i don't remember the behaviour
hmm
i see this lib
you could try to learn from it
it's for 1.10
1.8.8 cooked
but it should work
it's respawn for sure
no
it's per player
just look at this library
i found the 1.8.8 version
send position too
and refresh the player
or even better just use this library
it seems well put out
the rest you can find yourself
I can't believe ppl are still doing this
working with 1.8.8?
or doing disguises
you don't need all the classes
if you do just use the library instead
it's well written
via link i think
it's all on the github
both lol
like there is a lib as you said and ppl just keep on trying to do this themselves
Try reading the github
it says how to add it as dependency, it has User Guide for how to use it probably
Hello, how can I get the id of an object in its respective registry?
All registerable objects have getKey() methods
wish that method had a better, non ambiguous name
wake up babe new gongas alt dropped
getIdOfThisObjectFromTheRegistry()?
Or like what else are you looking for? lol
PERFECTION
I m looking for an indian mature mc Plugins and Serv Developer !! Its urgent Dm me
Don't post in every channel
Bro no way they are making some weird sex plugin for u

Well maybe @mortal vortex will
error: package org.jetbrains.annotations does not exist
import org.jetbrains.annotations.Nullable;
^
How can I solve this? Supposedly I have the dependency
IntelliJ doesn't issue warnings in the application's UX; only during compile time
What does "supposedly" mean
IntelliJ doesn't issue warnings in the application's UX; only during compile time
you probably have it in intellij libraries but no dependency in mvn/gradle config
you can put scope to provided
as it is not required during runtime
YESS
AI (an indian?)
wtf is a mature mc plugin
sex mod.
I have a delayed teleport plugin where if you move it cancels
But my move event keeps triggering when player did not move
Movement detected X 5.628613611497055 5.5681587330160305 - Y 65.11265486661293 65.11265486661293 - Z 7.09734173620801 7.09734173620801 Pitch: -0.3 0.0 Yaw: 11.25 0.0
The X in to and from are different despite player not moving
- have u considered the possibility that they are moving?
- welcome to floating-point precision errors? (seems a little unlikely given how large the X delta actually is)
- idfk, use EssentialsX /tpa or somethin
winnpixie pinting out the facts xD
isn't that a mod and not a plugin
do you guys know if you can run mvn clean before branch checkout?
not really needed, just a nice to have
i get the target folder in the new branch
of modules that are non existant
purely cosmetic issue just eye soaring
i mean its post, pre-checkout is not implemented
but it shouldn't matter
i use the built in git in intellij
hooks are still executed
oh nice
is it possible to transfer the client to another host as soon as they go in configuration phase?
Transfer packet is valid during config phase yes
from 1.20.5 to 1.21.11?
I made it so when players fish they catch a skinned skull, but they won't stack for some reason
Same name and skin
They are
Run /data get entity @p SelectedItem while holding a head and then compare the outputs
I'm in 1.8
💀
It's generated thru code though nothing changes same code each time
How would anything be different
got me therer
return new me.nexollo.servercore.utils.Items(
me.nexollo.factions.utils.ItemUtils.getCustomHeadFromTexture(texture, null)
).setName(name).asItemStack();
}```
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
if (texture == null || texture.isEmpty()) return skull;
SkullMeta meta = (SkullMeta) skull.getItemMeta();
GameProfile profile = new GameProfile(UUID.randomUUID(), null);
if (signature == null || signature.isEmpty()) {
profile.getProperties().put("textures", new Property("textures", texture));
} else {
profile.getProperties().put("textures", new Property("textures", texture, signature));
}
try {
Field f = meta.getClass().getDeclaredField("profile");
f.setAccessible(true);
f.set(meta, profile);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
skull.setItemMeta(meta);
return skull;
}```
no idea
I wanna say no, uuid can't be null.
so just use a consistent uuid i guess lol
Well it worked lol
neat
Welp half worked
Caused by: java.lang.IllegalArgumentException: Name and ID cannot both be blank
hasha
iirc in modern versions you can have a playerprofile where both are null
if you do have to provide one, you can just use a fixed uuid, or compute it from the texture hash
Don’t use the same uuid for different heads
That’s why I compute it from the texture hash
UUID uuid = UUID.nameUUIDFromBytes(texture.getBytes());
^
Just send the samples
How to understand what is a good option for optimization? Like, understand load limit for the server, which things are normal way to optimize plugin, which things are worse for optimization?
what now?
Take a CS course 🤷🏽♂️
in yaml what is correct or preferred?
some-list:
- "123"
or
some-list:
- "123"
first one isnt it?
if you have a specific algorithm or concept you're looking to optimize, you can ask about it; you're being too vague and generic to get any reasonable answers with that
Ok, ty
Cannot resolve symbol 'Particle'```
im randomly getting this error after going in to 1 of my classes, never got this before, haven't touched the pom, nothing has changed, just randomly getting an error saying I cant import Particle, everything else works
post your pom
is this error from the IDE or javac/maven build?
both, it wont let me build
and you're building through maven rather than the ide
theres 2 more errors in my other class randomly after ii changed absolutely nothing
Cannot resolve method 'setBlockData' in 'FallingBlock'
Cannot resolve method 'setAggressive' in 'Guardian'
try excluding transitive dependencies from worldedit-bukkit
iirc it includes like bukkit 1.13 as a transitive dependency, which overrides the classes from spigot
sure 1s
oh god everyhing is breaking now
pretty sure its an ide error my other classes are back to normal its js the particle thing and it builds now
idk what caused this though never had this happen
clear caches?
js did that and its still erroring
?jd-s
neither of these methods exist in the javadoc from what i see
its a paper thing
What IDE
intellij
?whereami ....
Some reason my plugin keeps showing as disabled in /plugins
No errors while packaging in maven
And no errors on server start up
Which lol
Build success maven
Server starts up, all the plugins dependents also start up and work
Post your complete server logs, from startup to executing /plugins
Since it isn’t color coded ^
[ServerCore] Enabling ServerCore v2025.12.25-Maven
Server in Beta mode - Enabling skills.
Skipping values due to beta mode.
I would imagine server core is doing something then?
That’s my other plugin it successfully enabled no errors
Yeah but what does “beta mode” doing?
Oh that’s within my plugin just logging my settings, doesn’t disable plugins
Why would a plugin have 0 start up error but be disabled
I decompiled and the plugin yml and files are all there
is it even in the plugin folder
I dont otherwise see it in the logs
also not running spigot..
lmfao
Wait I never thought of that
Dude, your plugin servercore is the one enabling skills, it’s not the server doing it. So your plugin is probably not outputting the error.
In my maven I dependent on spigot but my server is paper ….
Am I doing it all wrong
If this plugin called ServerCore is the one loading the plugin, can you show how that works?
No no it’s two separate plugins server core is my essentials and skills is my mcmmo
Skills just makes sure I have a specific setting for certain skills that’s my logging message
R u ignoring this?
“Enabling skills”, that’s not a message from the server, that’s a message from your ServerCore plugin, which I assume is enabling Skills. Can you show how that works?
That’s my poor wording 😭 my plugin is named Skills And the actually skills within the plugin are called skills
It’s just a Boolean for some extra listeners
it still seems as if something other than the server is loading your skills plugin
is it in the ./plugins/ folder with a .jar extension?
Yeah that’s what I’m saying.
The “Enabling …” comes from the server, I don’t think a plugin can silence the pre-enable message. So is the plugin actually being enabled by the server?
yep
Okay but is the Skills plugin, within your plugins folder?
or are you loading it externally?
What’s the plugin yml for Skills?
and server core too
Decompiled so it’s actually in there
looks like your plugin.yml is inside a package
I'm sure if you ran Spigot it would tell you this
Lemme try on a spigot server lol
Anyone knows how to add/get/set DataComponents for itemStack? I see some hardcoded methods within ItemMeta but nothing for durability/damage of an item.
I basically just want to kinda replicate this command but via code: /give @s minecraft:potato[minecraft:max_damage=64,minecraft:damage=16,minecraft:max_stack_size=1]
But only setMaxStackSize() exists, nothing about durability (well excluding the old deprecated methods on ItemMeta)
I'm on spigot 1.21.1
pl
Wow spigot actually gave a start up error...
I thought you could mix Spigot and Paper
declaration: package: org.bukkit.inventory.meta, interface: Damageable
@mortal vortex for posterity
Yeah I used that but it doesn't want to work, even if the itemStack is damageable (like a shovel, not necessarily a potato or other items)
There's no errors but no durability bar showing up in game.
Here's my code:
if(itemMeta instanceof org.bukkit.inventory.meta.Damageable damageable) {
System.out.println("damageable");
damageable.setMaxDamage(weaponDTO.getThrowsAmount());
int maxDurability = damageable.getMaxDamage();
System.out.println("Max dura: " + maxDurability); // writes 6
int targetRemainingDurability = Math.max(0, Math.min(maxDurability, remainingThrows));
System.out.println("Trgt: " + targetRemainingDurability); // writes 5
int damageToSet = maxDurability - targetRemainingDurability;
damageable.setDamage(damageToSet);
item.setItemMeta(damageable);
}
```
The souts seems to be fine, but yeah the durability bar just ain't showing up
At first I thought maybe I was doing item.setItemMeta(itemMeta) instead of the casted damageable of itemMeta, but even changing that didn't work, I feel like I forgot something to update the item or something?
What's the resulting item nbt?
inv.setItem(45, button(Material.ARROW, "§f이전 페이지", "§7클릭: 이전 페이지"));
inv.setItem(53, button(Material.ARROW, "§f다음 페이지", "§7클릭: 다음 페이지"))
I want to add material.arrow from inv.setitem to the custom item added with Itemsadder, but I don't know how to do it. The item ID is _iainternal:icon_right_blue.
met me at a very korean time in my life
lmfaoo will remember this for generations
Didn’t get a response from him at first so I thought he eventually found his issue 😭
Classic spigot W
if I check item's data with /data get command, I get this (which seems to be correct in it's damage:2 and max_damage:5):
You made it unbreakable
unbreakable items do not have the durability bar
Makes sense now... I thought it would prevent the item from getting damaged by hitting entities/breaking blocks x) but still function with a durability bar
also you can use SelectedItem to grab what a player is holding. Example:
/data get entity @p SelectedItem
doesn't show much tho ._.
but yeah I'll remove the unbreakable and just cancel the vanilla-natural damage through events or smth
so that the item doesn't get destroyed if it's on 1/5 durability after swinging/digging smth
It shows exactly what would be in the Item NBT field of the item entity
if I'm not mistaken
Which in this case is exactly what you're concerned with
No NBT on the item you're holding?
wait I'm dumb
was holding the wrong item lol
ok ye it works
was holding a vanilla popped chorus fruit in another slot
Hey! is it possible to make a custom gui through a plugin? i wana recreate the furnace but in a new way (and other uis)
Not without resource pack shenanigans
well the ui i can figure out, i'm mainly concerned abt the functionality side of things
listen to InventoryClick and Drag events
check whether the click is happening in your gui inventory
check which slot is being clicked
perform the appropriate action
there's some ? bot command that links to a basic guide on how to write a gui system
?gui
sometimes.. the answer is the shrimplest one
🦞
Hey, im trying to make a simple role giving plugin, whats the best way to store data like that on a player? i just want to be able to give them a role and then check that role for doing commands.
ik there is scoreboards but i kinda dont wanna use those, my first iteration of this plugin did that and it was wildly inconsistent
?pdc
ty
How to sort players by group in tablist - 1.8.8
the real question is why is 1.8.8 still relevant
Trying to cancel spear damage using EntityDamageByEntityEvent and for some reason even if i cancel the event the item still takes durability when attacking, even though the damage event is successfully canceled
Is this a bug? I'm having a hard time finding a way around it (I'm not using NMS)
I will consider
or if you must use entity type, entity.getType() == EntityType.PLAYER
Would that help with the spear durability issue? That's just a check for whether it is a player attacking or not
it's already cancelling properly on the entity damage front
(I wrote this a long time ago and am bringing it up to latest)
So it could fix itself in future spigot versions?
possibly, though let's maybe see the entire event handler method just in case
will do
Bug
That too
done
in australia bugs are big
He’s not aussie
Who's not
He
md has been denied being aussie
I'll tell you what the problem is with most of them. I believe the channel is called “help-development,” which is self-explanatory: to help, not to give personal opinions. I know that 1.8.8 is a terrible, outdated version, but the point is that if I'm making money with it, I'll keep working with it, and I came here to ask for help with the following message:
"How to sort players by group in tablist - 1.8.8"
Thanks.
Yes, but also you need to factor in the fact that most people do not have a memory which is categorized by date, no-one can say for certainty that X implementation will work in Y version.
So it's simple, just don't respond. But don't be a pain in the neck either. No one is obligated to respond to anyone here, it's a community thing, but if just going to reinforce something that everyone already knows, it's better not to say anything.
Anyway, follows the channel's objective.
XD speaking like a true hero
It's not about being a “true hero,” it's simply reality.
Do you think 1.8 receives a pension yet
question, how can i delete a pugin i uploaded as a test
reality is, if you can't support 1.8 on your own you have no business using it
There really is no tablist support in 1.8
you have to use nms last I recalled in order to do the majority of stuff with it
Yes, I know, and I was very specific about what I need help with.
But I've already gotten help, thank you. Because here, all they know how to do is complain.
And I don't see any more reason to stay here, bye.
Well, it is in fact annoying to have people come in trying to use outdated software and expecting people should help when in reality it is the other way around where the person using the outdated software should actually know what they are doing
but alright bye
always the same with people who make money from a certain version feeling entitled lol
Report it
the person using over 10 year old software should also know that since its over 10 years old there is likely countless amounts of information online already asking their same question and would likely find better advice from googling than hoping John Smith helpdev guy will give meaningful advice in a meaningful time
thats a thing?
what is that repo
or better what do u use it for
im using it for my servers like 1.7.10 and lower
It was working +- 2 weeks ago
It had minecraft 1.3.2 - 1.7.10 compile files
sus
Hi i need help
i want someone to give his point of view about my plugin so i can improve my work
i realy need help, anybody?
ok
https://www.spigotmc.org/resources/twoweekphase.131148/
Please give me your honest opinion, and if you can try it, tell me if you find any mistakes.
uhm whar
why anyone will even need this plugin
so u know one u start a minecraft server with friends
the owner will use creative
one guy will get full nethrite armor
one guy will finish the game in one day
so my plugin fix these problems
uuh
uuhhhhhhm ok, but I think it's useless plugin for any other server
yeah it only for small server [for friends that all]
block /give /effect /gamemode creative F3 + F4 creative
this seems silly
apart from that it looks alright for a first plugin
thx
I added it so the owner wouldn't cheat
only way by deleting the plugin and the players will know
the owner can always cheat
you are unable to stop the owner from cheating with just a plugin
do ur plugin blocks the console?
Oh [you got a point]
i will fix this problem
any other ideas?
:{
how?
e.g. using an nbt editor to add items to their inventory
installing another plugin to give them items through the api
using commands to place items in chests in the world
you physically can't stop the owner from cheating if they want to, because they run the server and have complete control over the runtime
Your plugin is good for practice, but not for actual server
yeah
thx rrealy that make my day batter
i will tray to block the consol is that posible?
is blocking the consol posible?
yes
i will tray to figer out how to do it
thx btw
public void onServerCommand(ServerCommandEvent event) {
if (event.getSender() instanceof ConsoleCommandSender || event.getSender() instanceof RemoteServerCommandSender) {
if (isBlocked(event.getCommand())) {
event.setCommand(""); // hard-null = no execution path
Bukkit.getServer().broadcastMessage("§4[HardLock] Console attempted a blocked command – denied.");
return;
}
}
}
do u think this code will fix it [block the consal?]
and do u recommand i replace 1.0 version or i will send new version 1.1
should block
replace 1.0
ok thx again
If my console is spammed with [Votifier] Unable to process vote from, does that mean i did something wrong?
this error happens because of invalid data, which is being send to voitifer
- Check votifier for the last version
- Try to change secret, votifier port
maybe*
im not sure, Wasn't using original votifier for a long time
every time i switch branches for some reason the compiler file with the info for the ide remains the one from the other branch, any idea how to fix
oh nvm, i could try to remove compiler from the gitignore
i think this will fix it
?services
If you wish to request or offer development/art/building/administration services, please do so at https://www.spigotmc.org/forums/services-recruitment-v2.54/
@cedar saffron time to shine
Ima let my brother @scarlet ocean live his dream for this
Or we can both help!
whenever i switch my maven to 1.21.10 it says the Particle enum doesnt exist? did it get renamed?
?jd-s
Don’t think so
If you happen to be on an ancient Intellj version it's time to update
I remember people having this issue when Mojang moved to 21
Didn’t expect to see it make a return
People be running years out of date versions for no reason
Hm? What do you mean
Im trying to add the Json in Java repo but i cant figure which version corresponds to which java version
What
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20231013</version>
</dependency>```
How can I confirm the Java version required for this version lol
You check the docs for json
Trying to figure out why I keep getting java.lang.NoClassDefFoundError: java/lang/constant/Constable
My IDE and all are set to Java 8
Even specified in my pom file
When are you getting that error
Tbf I’m tempted to not update mine install ever again to avoid the new bloat
||fair enough it's been pretty bad lately||
Nope im using 5.3.0 which was the last java 8 edition...
Well that's a run time error then
||Although with all the features now being in the same program… I wonder how hard it is to bypass the premium requirement||
It isn't consistent to reproduce, if I clean and install x20 times it works, then 21st its broken again then repeat
What Java version you're compiling with is not the issue
So confused
