#help-development
1 messages · Page 627 of 1
It seems @lone jacinth is the SME on this, curious what they think.
Transferring NBT via "/data" deleting/skipping information?
prevent pdc item from being put in container
Should work the way you have it. It should first calls the should method, then generates vanilla (if true was return) and after that calls the generate method regardless if you have return true or false.
Will look at it if something broke.
Great to know that I did interpret the javadocs correctly
why would i get this java.io.IOException: Permission denied while using this backupFile.createNewFile();
Does the JVM have permission to write?
idk
Sounds like a super solid opportunity to learn about filesystem permissions
agreed
Permissions
The permission of the jvm is dependent on the user that launched the java process
So if said user doesnt have perms for the directory in question then the jvm wont either.
Dont know them and dont use panels as this is one of the reasons of many
All i can tell you is that whatever user launched the java process that is the perme the java process has
but wouldnt the jvm need permission to let plugins save configs?
Sure, doesnt change that the jvm inherits the perms of the user
Hi something wrong is with this code, it doesn't take the deepslate biome any tries I had, it didn't work any advice?
https://paste.md-5.net/dibazawubo.cs
another thing someone knows a mod for displaying blocks by the given coordinate a sort of "xray" but i need to provide my coordinate
Make sure to set it as Java code so it gets Java formatting
i can't it autodetecs
Well, I’m looking at this code and frankly I don’t understand what you’re trying to do here
checking the event to chunkload and then detecs if in the chunks there are specific blocks
Where is this blocks array coming from?
i didn't write it but its not important
the problem is always in my math about the loop on y not taking negatives
Also, you’re assuming the bottom of the chunk is at 0. It isn’t, use the methods to get the top and bottom of the chunks.
and so deep state is not calculated
and what it is?
Why does PrepareAnvilEvent get fired 3 times?? lmao
public Block containBlock(Chunk chunk) {
for (int x = 0; x < 16; x++) {
for (int y = chunk.getWorld().getMinHeight(); y < chunk.getWorld().getMaxHeight(); y++) {
for (int z = 0; z < 16; z++) {
if (blocks.contains(chunk.getBlock(x,y,z).getType())) {
return chunk.getBlock(x, y, z);
}
}
}
}
return null;
}
ok thanks
You should prioritize vertical scanning so the method returns faster
Horizontal slices are going to be mostly homogeneous
@rare sedge It's a bug, will make a PR to fix it.
.
What do you mean by "store"
As in save the teams to disk ?
in code, i mean i need to make these teams but i dont know how, in some hashmap or what
So this is where all the coders end up.
It has been a long time since I have taught myself Java, is there a simple minecraft plugin project I could make to try and start learning again?
Hello world when right clicking on a dirt block
it might be out of bounds
Your strings array might be null?
if strings only has 1 element, strings[1] must throw ArrayIndexOutOfBounds or smth
whats in string
it's not null
just print the whole thing
if strings has one element, then you would access that element with strings[0]
so yes
well string[1] gives an exception
it must throw out of bounds
sout Arrays.toString(array)
String[] strings = new String[] { "option1" };
String a = strings[0]; // option1
String b = strings[1]; // ArrayIndexOutOfBoundsException
or the chad way "" + strings
wait that works ?
Would that not do String[L something ?
no since the + just calls .toString or whatever
Asking about your attempted solution rather than your actual problem
check the length of the array
if (strings.length == 2)
and fucking print the array
well all I know is that it works for me
different java versions do differently perhaps?
should not be the case
or im misremembering
welp just use whatever's most convenient for you
im not at my pc
maybe you had a list
yes perhaps
yes sure im not dying on this hill xD
lol :D
I'm creating an 'editor' mode for a plugin I'm making. Is it bad practice that I'm using PDC to check if the player is in editor mode to prevent them from altering any inventories? (Such as hotbar, dropping items, transferring to other inventories, etc).
How does one make a plugin work on both 1.16 and 1.18, I am aware that java compile versions are different so how would I go about compiling it in a way that suits both in one jar?
no thats a good way I think
idk if you can, easiest is probably making 2 jar files
You can also compare the inventories:
event.getClickedInventory().equals(yourInventory)
You can store editor data on inventory's holder
isn't inventoryholder in this case the player?
or do you mean if it was a GUI i could store it in there also
There are a fair few plugins out there that offer 1.16+ support through one jar, I'm sure there's some way I just haven't got a clue personally aha
actually would be pretty handy to store it in the GUI
Create data class, then implement InventoryHolder.
well you need to atleast use the highest of the java 2 versions obviously but apart from that idk either
the older java no ?
Since you can load jars from old java on new java but you can't load new java jars on old java.
oh I thought you need the newer version to run the game on 1.18
yes, but if you want the plugin to run on older versions as well, you need to compile it on that older java version
But I am not sure about this one, I don't support older versions or multiple
Hey, I want to create Bungeecord plugins again, where can I find the best docs ?
Is there a way to detect the correct inventory for an inventoryclickevent, without event.getview.gettitle.equals...
yes
which one?
I believe ppl here normally link this one when such question arises
https://www.spigotmc.org/threads/a-modern-approach-to-inventory-guis.594005/
ok
I'll do it
Yeah we used this as the base of our menu abstracts for our library
yeah same, though heavily altered because I wanted more features
Random random = new Random();
World world = center.getWorld();
Material material = world.getBlockAt(center).getType();
FallingBlock fallingBlock = world.spawnFallingBlock(center, new MaterialData(material));
double velocityX = (random.nextDouble() - 0.5) * 0.5;
double velocityY = random.nextDouble() * 0.5 + 0.5;
double velocityZ = (random.nextDouble() - 0.5) * 0.5;
fallingBlock.setVelocity(new Vector(velocityX, velocityY, velocityZ));
}``` anybody able to help me out with this? Not sure why it isn't working
?notworking
"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.
Sure let me describe it to you, I execute the function, and nothing happens
no stack trace
nothing.
there wasn't anything to explain
new MaterialData()
Seems fishy
im so close to publishing my first plugin
Sure I'll try something else
whats up
What plugin?
Anyone else know anything about this?
all good. When you see how awesome it is you wont forget it
material.createBlockData()
you can't "delete" messages from chat
Just send a bunch of empty lines before your actual message
not just printed lines but actually deletes from chat
well, if you achieve that, show me
I am really curious
Might be something I do not know about.
likewise ^^
Hey so uhh, weird question but I only have Java knowledge outside of Spigot and I don't want to learn the Spigot API, so I was going to make a Skript to Java converter, it would bundle the scripts in and remove the unnecessary event listeners (and I might use SQL instead of RAM to improve variable performance) to improve performance, and I was wondering if I'd be able to sell my resource on Spigot if I did that.
Like I do know mojank added some delete chat message packets, but that is restricted to player messages only I think and the messages are still visible for like 3 seconds
i believe the spigot fork was 1.7.10 to 1.8.9
Please don't make skript to java converter 😦
why not?
it would
uh, let me think of another reason
basically it would go into the Skript SRC and remove unnecessary event listeners and that means it wouldn't be using a custom SRC but rather another thing, and therefore also improve performance
and it would bundle the script in
I mean yeah that would help, but you also have to consider the fact that skript is just too high level
It would be damn near compiling human speech into byte code
let alone skript addons
wait so...
you want to convert skript "code" to java code
and also you want to remove event listeners ?
That's like 95% of plugin development
Anyways, you would still need to know the spigot API to know what to call when skript says "if player has item"
unless I am not understanding
Oh also, that already exists
I mean believe it or not, some insane human being did it
nah they're multiple
you would need to use the spigot api to do like most of that so your point is kinda invalid
why would you need spigot in specific?
yeah but what im saying is that i'd research them once, but i dont wanna bother researching like 999 times
well thats why you have a brain that can hopefully retain information
i mean skript was a bukkit plugin but when bensku forked it I'm not sure if he made it spigot
I find it kinda funny how your actual question was ignored
and I have bad memory
i mean true
wait no way skript is spigot only
this is kinda turning into a debate
I've used it on paper a lot
and looking up stuff is like half the job anyways
Oh yeah, forgot about that
Oh yeah paper is making themselfs a fork of bukkit instead
I'm imagining for performance
since when are they doing that
yeah but i still dont want to do it, I learnt a bunch of programming languages already and my brain cant remember more
wait that would mean no more ppl coming here with paper related issues
and paper being even faster
true
all is well
then just forget about those
i cant
i use a bunch of them
like
all teh time
because when i wanna do diff things
i use different ones
like for example if theres a library thats only on one
i can use that one
paper is awful
they "fix" vanilla "bugs" with no option to enable them again
fucking TNT duping, which is still intentionally enabled was "fixed" by them.
Thank you for coming to my rant
epic rant
on paper?
not on paper
bruhhhh
cuz they patched it
paper is also faster, I think it's worth the sacrafise
bruhhhhhhhhhh
if you're not a technical player, sure
can samwan pwease answer my owiginaw question
even if it's a VERY little amount
Do it, then you can cry yourself to sleep for the next atleast 5 years.
Why do you think you would not be able to sell it ?
idk
you can
I feel like Spigot might like ban me or something
for what
why
They probably shout
idk
how is it nasty
like.. read the terms and whatever
true
in my opinion
Bro converting skript to a .jar file is horrendous
a bug is a bug
so them removing it is justified
just make a creeper and sand farm lmao
actually BUD (block update detection) switches arent bugs anymore
if you didnt know
but anyway we're going off topic
I'm going to make it
so tnt duping isnt a bug? nah
Random random = new Random();
World world = center.getWorld();
Material material = world.getBlockAt(center).getType();
FallingBlock fallingBlock = world.spawnFallingBlock(center, material.createBlockData());
double velocityX = (random.nextDouble() - 0.5) * 0.5;
double velocityY = random.nextDouble() * 0.5 + 0.5;
double velocityZ = (random.nextDouble() - 0.5) * 0.5;
fallingBlock.setVelocity(new Vector(velocityX, velocityY, velocityZ));
}``` Also this still doesn't work. I thought that you were right but I guess not
no you keep it to yourself forever
share what
cuz if I share it I think everyone will optimize it but it would also pose problems
share what??
skript to java converter
I mean
I get that, but they have the ability to provite the server owner the option to opt out of the "bug fix"
And they choose not to, that is my problem
do it
first just make it
ive been planning to make it for like yaers
actually dont
then make it
its gonna be annoying
Didn't work sadly
are you calling it on the correct coordinates ?
also, doesn't Location have getBlock or something ?
It would throw an exception if it was
World world = startBlock.getWorld();
Vector direction = endBlock.toVector().subtract(startBlock.toVector());
int points = 50; // Number of points to create the line
new BukkitRunnable() {
int currentPoint = 0;
@Override
public void run() {
if (currentPoint >= points) {
startBlock.getWorld().playSound(endBlock, Sound.BLOCK_GLASS_BREAK,1.0f, 1.0f);
throwBlockUpwards(endBlock);
this.cancel();
return;
}
Vector pointVector = startBlock.toVector().add(direction.clone().multiply(currentPoint / (double) points));
Location pointLocation = new Location(world, pointVector.getX(), pointVector.getY(), pointVector.getZ());
world.spawnParticle(Particle.CLOUD, pointLocation, 0, 0, 0, 0, 1);
currentPoint++;
}
}.runTaskTimer(Main.getInstance(), 0L, 1L);``` I'm using it here
It's playing the sound at the locations
so the function is being ran, but none the less nothing is occuring
ok, try to make like a temporary command or something and run the function on a block you know exists
I did, it works like it draws lines towards blocks it's going to fling upwards
so it draws the line to the block, plays the sound at the block
but doesn't throw the block in the air
Ye, test that method only
Yeah I am
since this looks correct
I've confirmed is is indeed something wrong with the function itself.
I just have no idea what it is
It could be something with the Y velocity since it's not moving?
try to spawn the block 1 block higher and give it velocity of 0, 1, 0
might be solidifying before it gets the chance to move?
true, paper shoots themselves in the foot a little
provide higher performance servers at the cost of possibly not having the audience that could benefit the most (hardcore tech players) using it
yeah I also find this very stupid
Believe it or not, haven't once had an issue
i had an issue w simple rail duping my friend was using on our SMP :v didnt actually look for a config to toggle it but.. switched back to spigot anyway for it
that's because they saw it as a glitch and patched it.
Found out why, It's because it doesnt work on ice in specific.
just that the group that could potentially benefit the most by using it cant/wont use it BECAUSE of how it improves performance
oh
disabling duplication stuff isn't really improving performance
hmmm... could be that the ice is just not being rendered ?
Try doing it with F3+B and see if you can.. see the entity outline
it's just patching a glitch
It's 3 am I'm all good with it not working on ice for now
it also works on water
which is interesting looking
dafuq, water does not have a model for falling sand
I am like sure of this
ehh, it could still deter hardcore players from using it
Oh it doesn't but you can do it anyways
it's kind of just water apearing all over the place
Not verified? Upload screenshots here: https://prnt.sc/
yes, I think it's highly stupid to fix gameplay stuff like this in the default settings, even worse if it's not possible to disable it at all
we also run spigot instead of paper for reasons like this
wait I was wrong again, it doesn't work on solid blocks.
Like it works on water, snow, and grass
but not blocks.
it should just be configurable with default being vanilla behaviour, and everything'd be fine
for hardcore players, that is a sensible default yes
if (!blockLocation.getBlock().isBuildable()) {
drawLineBetweenBlocks(center, blockLocation);
}
}``` Oh nevermind.
aight, something is wrong with your client
what you're saying is literally not possible
Unless you have some other piece of code that like deletes either the data from the entity or just despawns it
is this a sensible default for the normal vanilla server ? probs not
Given that you'd have to decide "what exploit to disable by default and which to not disable by default"
i hate you
honestly im okay with every "fix" being enabled by default, just let it all be toggleable to return vanilla functionality
/s ofc
that's my bad.
yeah
"I tested the function"
it's funny because I actually did, that code is running
I was running that code, and that code was causing this
It works beutifully now.
interesting @eternal night
what about breaking bedrock
from the looks of that PR it doesnt seem bug-prone but i sorta want to see if it can get bugged 
has a config option ?
I mean, give it a go
if you find a bug, shoot it at me 😅
will as soon as i figure out how to actually get a dev env for paper
reading Contribution wiki page rn
where? the "unsupported option" that's documented nowhere and that you can only find by looking through the github code?
git clone git@github.com:papermc/paper.git
cd paper
./gradlew applyPatches
./gradlew runDev
there
pretty sure its in paper-global.yml isnt it
well it's in unsupported settings, hence I guess it's unsupported, hence not considered an actual usable setting
why is it called unsupported-settings? is it supported to disable it, or not
because we don't support you if enabling that option does not fix it for you
THE SACRED JEDI TEXTS
eh, dont think ill need runDev, just looking at source code lol
apply patches will generate a decompiled env right?
yea
pog
I have always wondered why paper and spigot haven't done the funni tango and spent the 20 billions years it'd take to resolve all the emergency conflicts and just. Yknow, merged lol
*merge conflicts
different priorities
and also Paper is basically what u just described
Spigot + Paper patches = Paper
Sounds like an excuse to of implemented github workflow with branches, not split up lol
An unofficial explanation of the DMCA can be found here: https://www.spigotmc.org/wiki/unofficial-explanation-about-the-dmca/
who the fuck would have two projects with different goals on the same github project but on different branches
I just hate mom and dad fighting 😭
you'd still have to fix merge conflicts then 
xdd
See people always say priorities but, like do either team actually have a mission statement lol
I mean
Papers priority is performance and fixing exploits
Spigots priority is performance and maintaining the Bukkit API
Given how extreme some of papers changes are, and what downsides come wwith those, spigot just isn't the place for it
Now I have to ask what does that even mean? Maintaining the bukkit api.
I.e. surely paper does that too or else it erm... wouldn't work lol
i do, however, pride myself in making Paper undo a patch on their side, for one API method.
which patch was that
like setMaxPlayers in Server
or did you just push that to spigot
LOL
lmao
and then Paper clapped back with setMotd(Component)
Yea, i mean it is a dagnerous game for us to maintain compat
ill have to wait for Choco to do setMotd(BaseComponent)
at least all the spigot stuff is tucked away into the Spigot types
I mean, we deperecate all of bungee chat
I think wwe have an automated tool for that 
double edged sword, if some lunatic ran pure CraftBukkit
also papers applyPatches just full froze my PC for a solid second 
Lmao
See this is what I mean. We say different priorities but like, to this day I struggle to see the big things that armt just fundamentally better on one or the other. Just seems like if you pineapple pen'd them and got em to set up a good communication ethic, would be amazing all around
Yea decompiling takes a lot
Lmao
also like, I don't think the paper team agrees with the spigot backwards compatibility policy etc
E.g I know it's a meme at this point but inventory.getHolder(boolean) is god tier 🙏
which is the reason they are working towards the soft spoon
to be fair neither do some spigot people here and would like to see breaking changes some day
xd
Yea I mean
we all would want to
and I am hyped about the "breaking" enum -> reg change
true
u ever seen the Material class?
....
Everyone is
We do not speak of the clinically ill here
Bukkit 3.0 basically
woo

Bukkit 2.0 exists?
That shit haunts my sleep
thats actually roughly how long BuildTools takes for me too lol
Yeah that is 1.13+
So... wtf is even up with the material class...
Like ... why
a relic of older times id imagine
it probably made sense when it was created
(probably)
You cannot add your own materials even if you really wanted to
I read it and was like "Jesus christ our entire plugin community is built.on garbage" lmao
it is xD
thats basically Minecraft
Lmao
it all trickles down the chain, theres a reason we call them "Mojank"
Modded is much much much worse
This is legit a case and point of why if we ever invent time travel we need to find the bukkit devs and fire Robert c Martins entire book collection straight at their heads at maxh 11.2
Mach 11.2
Not that much, come on
Modded drama is really something
Also (neo-)forge, fabric and anything else
Ngl our team got offered $300 dollars to do a mod quote and I legit vetod that shit
Was not worth
Yup
The guy who banned people for mentioning fabric or mixins
Lmaooo
Still clinging to forge
Oh and multimc and forks - how could I forget?
ah, nvm, paper does account for if certain parameters would be null
I never got that really. It's why I love the spigot discord as we xan say talk about paper n shit and everyone, even mods, are chill.
We are all playing funny block game. And if anything talking about alternative mod clients etc is a good thing as that's how new ideas happen

Modded is drama
thought that maybe it couldve caused calls to PlayerInteractEvent willy nilly
Wait, aren't you that guy who was talking about doing what sounds stupid or something?
arent we all stupid idea people
Made of bin bags
Well yes
Meanwhile me: Transforming random plugins via the bukkit unsafe
Especially raydan 👀
Slimefun, please add a proper API.
now transform them via agents 
Especially me, doing the greatest shit solutions for no reason
Lmao.
You'll never beat core protects spicy 1000 line lookup command 👀
I remember seeing it for the first time and being like "erm... how?" 🤣
how about you share with the class ?
lol what :D
Jk
Well but https://openjdk.org/jeps/8306275
true
What if I write the greatest bullshit code ever just to replicate pdc on 1.8
gotta run -javaagent smh
Oh fuck, it is no longer a draft
this looks.. backwards? time to actually spin up paper to see what the config comment says
WHY DOES IT HAVE CLASSES INTISE OF THE METHOD
MY BROTHER IN CHRIST I HAVE NO IDEA
Oh I do that often
1100 lines worth geol? xD
Well every once in a while
oh god the nesting
ive done anonymous inner classes, never full on classes
Im tempted to start doing "Plugin jams" like we discussdd last month.
"Remake this class in less than 200 lines with the same functionality" would be first on the list lmao
The winner gets to put a PR into CO with a smile on their face lol
ah
As in Triples or custom pair classes are usually classes within methods
why no generic
no, that is intended
usually parrots don't dismount un sneak
Autoboxing is very expensive sometimes
I mean, cool kids just use fastutil
Fair point I guess ?
Never knew that could be an issue
For millions of ops a second it is noticeable
I mean I get that primitives are a special case and could be slower,
No idea if objects have that problem tho
intelj wont crash anymore!?
the what does what
But autoboxing is not jitted
Casts (required for generics) get JIT-compiled I assume
But autoboxing is not compiled properly
Hence the object alloc is done anyways, GC must do its job anyways and we see a performance impact
oo paper event, interesting
Fork
I think I get like half of that lol
would have to learn what Just In Time actually is/does
is there some type of drama
Yes. Lex was really a pain to work with. So the maintainers just nuked him from the equation
Basically optimizing your code while it runs
Took me a bit to find this ping. Nice lol
is there a way the get a list from a JsonObject (com.google.gson.JsonObject;)
there is no Object.get().getAsStringLIst()
how should I make resource automatically update?
like when I rename some variable to it automatically renaming the old name into the new etc..?
Im currently trying to make my own changelog and slowly go through it and do every step it says was changed
any other better thoughts on how to do this?
so Im using a dependency for embeded sqlite database:
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.39.3.0</version>
<scope>provided</scope>
</dependency>```
and when I enable the server on a 1.8.9 server, I get this error: No suitable driver found for jdbc:sqlite:plugins/DeathMatch/database.db, but when I enable this plugin on a newer version like 1.18 I dont get the error and all is fine, why? This is the code:
```java
public static void connect() {
connection = null;
try {
File file = new File("plugins/DeathMatch/database.db");
if (!file.exists())
file.createNewFile();
String url = "jdbc:sqlite:" + file.getPath();
connection = DriverManager.getConnection(url);
System.out.println("Baza de date creata");
statement = connection.createStatement();
} catch (SQLException |java.io.IOException e) {
System.out.println("EROARE");
e.printStackTrace();
}
}```.
A JsonObject is an object, not an array
i got it
thanks
i got anotherr question
public Hypebox(JsonObject object) {
new Hypebox(object.get("name").getAsString(),
(List<String>) object.get("lore"),
object.get("item").getAsString(),
(List<ItemStack>) object.get("rewards"));
}
java.lang.ClassCastException: com.google.gson.JsonPrimitive cannot be cast to java.util.List
how do i make a list
(the other hypebox) Hypebox(String name, List<String> lore, String item, List<ItemStack> rewards)
hm ight
You probably have a .getAsArray method somewhere
no
Inconvertible types; cannot cast 'com.google.gson.JsonArray' to 'java.util.List<java.lang.String>
nope
But jsonArray can be converted to a list easily
how
.asList?
where
JsonArray
i need to get worldguard as a dependecy but it says:
com.sk89q:worldguard:pom:7.0 failed to transfer from http://0.0.0.0/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of maven-default-http-blocker has elapsed or updates are forced. Original error: Could not transfer artifact com.sk89q:worldguard:pom:7.0 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [sk89q-repo (http://maven.sk89q.com/repo/, default, releases+snapshots)]
Since Maven 3.8.1 http repositories are blocked.
Possible solutions:
- Check that Maven pom files do not contain http repository http://maven.sk89q.com/repo/
- Add a mirror(s) for http://maven.sk89q.com/repo/ that allows http url in the Maven settings.xml
- Downgrade Maven to version 3.8.1 or earlier in settings
Then you are on an outdated ver
oh
you are trying to use http not https
how can i add the enginehub repo?
it returns a list of JsonElement but i need it to be a list of String
Inconvertible types; cannot cast 'java.util.List<com.google.gson.JsonElement>' to 'java.util.List<java.lang.String>'
cant cast it either
because sqlite isn't shaded into older spigot versions but is for newer versions
so for older versions you would need to shade sqlite into your plugin
JsonElement to object to getAsString
Check the methods
stream the list, map it to string with element.getAsString
at the end convert to string list
you dont need to create file yourself
sqlite will handle that
InputStream resourceStream = Otto.class.getResourceAsStream(name);
if (resourceStream == null){
Logger.warn("-=:> Didn't update resource because it's stream was null! " + name);
return false;
}
this always returns null
even tho I know the path is correct and all
any ideas why?
what are you getting
from where and show your project structure
and also variable name
im always getting null
otherwise it wouldn't always log that message
prefix the path with /
it works fine in saving method without that prefix tho
you can also just use JavaPlugin#saveResource, it will automatically save to your plugin folder
well here I need to get the contents of the resource so I can update it or sum stuff
imma try to prefix it tho
probably worked? :D
got configuration error so it got pass that resource stream
thx :D
he he...
(part of a check of LivingEntity's)
Is the distinction not having AI ?
do armor stands have AI?
I doubt it
maybe the distinction is if it has an inventory or not
giant doesn't have AI anymore but is still a living entity
well they are kinda alive if they are there and dead if they get removed
since iirc armor stands need an inv to display equipment
i dont think non-living have inventory
but idr
They don't have AI since it was removed, but they can have AI
can non-living entities have AI ?
petition to PR to spigot to add (back) zombie AI to Giants
sounds more like Paper thing, they like to change gameplay
xd
it won't change gameplay since giants don't spawn naturally
petition to PR Giants to spawn in those big open plains at night
with low spawn chance ofc
unless 
was?
All zombies become giants at full moon if they are non obstructed
if zombie hit by lighting, gigantify it
I like the idea of all becoming giants at full moon
hmm
when building spigot is there any way i can change the name that the jar saves as? for instance right now it is [INFO] Spigot 1.8.8-R0.1-SNAPSHOT ......................... SUCCESS [ 23.933 s] but i would like to change 1.8.8-R0.1-SNAPSHOT to something different
not yet nah
--final-name
not a flag yet isnt it
it is
just use --final-name outdated-server.jar and there you got your 1.8.8
you don't build spigot using just mvn install though
u lie, dont see it on stash
idk I use the version from #1117702470139904020
that definitely has this flag
It hasn't been PR'd yet.
why not
tht version isnt official yet 
i mean i rebuild patches after im done editing and then mvn clean install and i have my jar... so how would i change the name it builds as
Hey spigot development. I'm currently messing with saving information. It's great I got it saving in a folder with the UUID, issue is I'm having issues getting that information out of the folder upon relog, and restart. I can see the value in the file going up so it's saving correctly I just can't pull the value from it
Cause @river oracle is cleaing up code.
1.8.8 also isn't official anymore
its official, just not supported
it's dead and everyone who uses it should feel bad
dont some of the biggest servers still use it
i mean most people play hypixel on 1.8.9
alot better performance
ofc a game with less features needs less cpu
windows xp also ran on 500mhz pentium 2
i mean why do i care about bees and swimming mechanics when i want to pvp
my server is kitpvp
so 1.8 works
OldCombatMechanics ezpz
Not always the case, because higher versions of programs learn how to optimize better over time but yeah
isnt pvp on 1.8 simply "who can spam click the fastest"
not exactly
while in 1.9+ you gotta time your attacks etc
i mean theres alot to it
carlos recently updated to 1.20.1.
be like carlos
reminds me of the website that runs on a 4.77mhz cpu on a 39 year old DOS Webserver with 736KB RAM
For old pvp there's always bedrock. I personally would love bedrock if the mob spawns weren't bad and you could customize realm servers a little more
Lol thats awesome
It probably already dies when there‘s more than 7 actual visitors per minute
Took 10 seconds to load for me
I'm scared to click on it
most home hosted websites can be taken down by 3-4 people holding F5 when visiting their page
2650+ hours of uptime though
Thats less than 4 months though
Average 1.8 user‘s cpu
it even got 56kb of free ram
My fridge probably got a better cpu than this webserver lol
time to run a webserver on my old tamagotchi
can you run a webserver on a nintendo 3ds
Does it have any network stuff
yeah it can connect to the internet
Then go for it
nah im good on that 😭
You'll need to homebrew it, but it should be possible afterwards
It already is
or just gutter it like a fish and remove the original electronics and put a 10$ qt py esp32-s2 in it and pretend it's a nintendos 3ds since it says so on the casing
.
can i check the boat before it hits the certain wall (*block)?
you dont load the driver
how?
java.lang.ClassCastException: class java.lang.String cannot be cast to class net.md_5.bungee.config.Configuration (java.lang.String is in module java.base of loader 'bootstrap'; net.md_5.bungee.config.Configuration is in unnamed module of loader 'app')
at net.md_5.bungee.config.Configuration.getSection(Configuration.java:136)
any ideas why it thinks im casting?
because you are calling getSection and its not section but string in config
like this
don't know the correct name tho
you gotta google that
ooh
tysm
tysm
is base64 itemstack serialization standard
well we out here 🤷🏿♂️
well 1.8< users are not legally allowed to use the plugin
The best was to serialize itemstacks would be through paper API as that uses DFU (Data fixer upper) but that is not part of bukkit API
Lemme guess - that is a paper fork
No, it's a paper fork.
Though given that it uses the antiquitated "PaperSpigot" name I'd not use it under any circumstance
smh, what is CarbonSpigot
what is the paperspigot groupId
Paid paper fork no 206
1.8 is probably destroys tokyo
Paperspigot is dead
Java is beautiful i love it
And in that case the DFU method does not exist so at that point might as well stick with bukkit API as it'd be stable regardless
?
what
What I'm saying it's called PaperMC for a while now
papers package now is io.paper.papermc, it used to be something destroystokyo
no its not
PaperSpigot is the name of VERY old paper releases
Back before paper was really worth using
oh i just realised i had vSpigot in my project not carbonspigot
lol
Probably the same thing
is vSpigot a thing too, or just a typo
aper used to use com.destroystokyo.paper
mfs use the whole alphabet
Any XSpigot forks are in 90% of cases a paper fork
Or in regex speak: any [a-zA-Z]+[Ss]pigot forks
no google results
We do love publishing mojang owned code
Some of those “features” on carbonspigot are really stretching it…
Configurable tps command? Like great stuff
nah there is proof in their discord
I’m not talking about the bigger ones, but it looks like they were just trying to put as much on the list as possible
yeah competition
Several of those I wouldn’t really consider “fork features” as a plugin could easily do the same
|| purpur ? /s ||
assembly?
i vanna zee ze proof
join ze ziscord
ASM based event bus, you mean paper's ? xD
Pretty sure regular paper has that too
Yeah
Java bytecode library
so assembly
y would it need to be asm based
Nah, ASM is something else
bytecode is assembly honestly
thought JBL is about music
its magic
Cause it’s better than using reflection
java version of asm
ASM at least in java space is a library that operates with java bytecode.
Java bytecode is different to normal assembly in that it is far more human-readable (it isn't machine code) and is stack-based instead of register-based
var handle moment.
any good JNI guides
Don't.
why
We live in a world where JNI is to be eradicated
i enjoy JNI
Use FFI instead
ok but
Or just don't work with low-level stuff
it doesnt support java 8
There is 0 reason to use Java 8 my man.
Java 21 is the future and anyone disagreeing will get removed.
removed
java 21 is gonna ruin java for the better 😭

what is java without public static void main
the syntactic sugar is the least exciting bit in that release
the ordered collections stuff I think is really handy
java 21 my beloved: https://openjdk.org/jeps/445
the destructuring stuff is in too right? after a zillion previews
I mean, record patterns and the related JEPs all left preview
yea
pattern matching is gonna be great
its actually crazy java got better
Structured concurrency still in preview 😭
valhalla when ?
Well at least FFI/Project panama is out
noooooo not Unnamed classes 😭
2038 probably

But I mean valhalla is going to absolutely stun all java bytecode fuckery for some time
Is it safe to use vault rn? Plugin page says 1.17 max but some people in comments say it works.
Let's just hope mojang doesn't use it anytime soon though.
Spigot would be in deep trouble if that is the case
As a vault contributor: Yes - perfectly.
you can use it
Okay thank you!
vault only uses basic non breaking api i think thats why its still compatibel
damn
what is a nice way to detect if a player is in a cave?
i havent touched folia yet
declaration: package: org.bukkit.block, interface: Block
maybe
I mean, folia breaks everything 
Well it is the update detection logic that is a tiny bit incompatible with folia - but it still causes it to fail to start
folia is out to get me
@eternal night i forget, is paper making a custom server software from scratch or has plan to?
to move away from mojang code
no
damn
hypeBoxMeta.setLore(parts.getLore().stream().map(line -> ChatColor.translateAlternateColorCodes('&', line)).collect(Collectors.toList()));
common java W
xD
why can this be occurring?
Caused by: java.sql.SQLException: No value specified for parameter 1
debug:
[19:18:45 INFO]: Query:
UPDATE kitpvp_abilities
SET cooldownseconds = ?
WHERE uuid = ? AND abilityid = ?;
[19:18:45 INFO]: Param1: 60
[19:18:45 INFO]: Param2: 3aca9dd9-313c-3d02-8034-872cbf00b219
[19:18:45 INFO]: Param3: lovely
so the params are there and conform to the query, but i'm still getting the exception
i can post the full exception but it's not too relevant prob
then air or a block is option
I mean, provide code
I'm trying to access essentialsX API, but i'm not sure what the repository should be. I am using maven.
https://mvnrepository.com/artifact/net.essentialsx/EssentialsX/2.20.0
I already have this as dependency:
<!-- https://mvnrepository.com/artifact/net.essentialsx/EssentialsX -->
<dependency>
<groupId>net.essentialsx</groupId>
<artifactId>EssentialsX</artifactId>
<version>2.20.0</version>
</dependency>
shout out to the .stream() method, my favourite type of method
wait, i have a dangling update statement lmao
maven central probably
oh this one https://repo.essentialsx.net/releases/
i had this statement that i forgot to remove
let me see if this will work after removal
cloud ?
eyo 💀 i dunno it it should be like that
wym
uare not supposed to release mojangs code
maybe its gone, maybe it isn't
yeah but they r different
doesn't matter
who is different
they disregarded the dmca with "No"
???
they are not different enough to not be considered copyrighted
I have added a custom sound (a song) to a resourcepack, and I want to play it so every player hears it. I had thought on putting this line inside a for loop:
player.playSound(player, "custom:playerjoin", SoundCategory.VOICE, 1f, 1f);
however, when the sound provided is a string, the method doesn't seem to allow me to pass a player as the first argument
nah they replied with "No"
yeah
I added that one but i suddenly get this when i try to package:
Unsupported class file major version 60, haven't had that before.
<repository>
<id>net.essentialsx</id>
<url>https://repo.essentialsx.net/releases/</url>
</repository>
<dependency>
<groupId>net.essentialsx</groupId>
<artifactId>EssentialsX</artifactId>
<version>2.20.0</version>
</dependency>
ok ill contact mojang and ask them what they think
would be kinda funny honestly
jk im not their employee
they ignored me ima ignore them
lmk the reply
they will be like we have already asked them multiple times but they have sent bomb threats back to us
nothing we can do about it
ze reply
read the craftbukkit dmca
wolverness is weird
yeah but those people got removed they didnt reply with bomb threats
idk man, bomb threats from a dude that maintains 1.8 forks don't seem really scary
eaglercraft be like
you're wrong actually
if someone is so insane to maintain 1.8
they are insane enough to fulfill their threats
eaglercraft is currently benig took down it seems
Yea but I doubt they are evolved enough to know how to get those to mojang HQ
cant wait for minecraft to submit a dmca to google and have all eaglercraft search results removed
having spent years maintaining something with such a shitty api, they've sworn to destroy their hq many times
Hello, what is the better? bukkitrunable or Scheduler?
or they just dont give a shit about 1.8
internally they probably call the same methods
use what u please
i'm working on a 1.8 commission atm and i want to die and kill
me
my favourite fork: https://github.com/Electroid/SportPaper
only legitimate reason I can think of why anyone'd use 1.8 is if you just woke up from a 7 year coma and didnt realize how much time has passed
1.20 is way more extensive than 1.8
yeah and its api is not dogshit
people who play on potato pcs
may not like 1.20
personally i didnt have trouble working with 1.8
+1
doesnt mean i like it though
its api is missing key features, such as, uh, documentation
eh
might just be me
but mostly its self explanatory
not really pleasant to be working with something and not being able to even know whether something is nullable
test it 🤷🏻♂️
bruh
arguably, this is a design flaw
"if my code was hard to write it should be hard to read, no docs for you"
how do i check how many chars/words in my whole project
a design flaw on behalf of 1.8 api
of course i can nullcheck everything
it's stupid and unnecessary though
just lemme know what is and what isnt nullable and under what conditions
i use kotlin and it has null safety
then?
are you saying that the fact, that 1.8 api doesn't state nullability, is a design flaw of java???
well, in a perfect world, you'd love your programming language to tell you if something is non existent...
so, which one to use?
it doesnt have to
public abstract String getName();
tell me if this is nullable
exactly, it is
but what if it isn't, and it just lacks an annotation or docs
see the difference:
public abstract String getName();
// invokation
if (x.getName() == null) return;
x.getName()...
@NonNull
public abstract String getName();
// invokation
x.getName()..
if there's no @nonnull i'm just gonna assume it's nullable in 95% of the cases
or well for kotlin
x.getName()?... which is much more convenient but still not convenient if i need to pass a strictly non-null value
see this snippet
this could be simplified to the first 2 lines if i knew whether damager & entity are null or not
i do assume they aren't
but what if they fucking are
well..
you already checked if damager is instanceof player
so the nullcheck is not necessary at all