#help-development
1 messages · Page 623 of 1
Well, does it exist? Do you have it imported?
i t does exiss
exsit*
and there is no option to import it i didnt manually but didnt worked
what the hell is "bosscommand2"? a field? a local variable? please tell me it's not a class name
its a class name ;-;
oh that's the one
Naming conventions tell me it should be atleast BossCommand2
why do you have 2 boss commands anyway
or lets rather say, why do you have 2 commandexecutors for one boss command
Probably not, it seems like you don't have a class named bosscommand2 or haven't imported it
then they should be called AncientCommand and ReaperCommand
Yes
i HAVE CLASS name bosscommand2 wdym; -;
Do you have it imported tho?
I mean you also wouldn't use PlayerCOmmand1, PlayerCommand2, PlayerCommand3, PlayerCommand4 for tpa, kill, give and spawn, would you?
show a screenshot of your project setup
alr
When a person doesn't know naming conventions it usually means they failed somewhere at learning java lol
ima send u in dms mfnalex
?img
Not verified? Upload screenshots here: https://prnt.sc/
no
Send it here
!verify
Usage: !verify <forums username>
remove the fully qualified name and correct your imports
Yes
that also not working
clear caches
clear caches
how
file menu
there is no clear caches option there
yes there is, look for it
Invalidate caches?
does TRUE == 0 or 1 i forgor
1
True is 1
ah
0, off, false; 1, on, true
In bash, 0 is true
Shell languages are always confusing
yk sometimes i dont understand this
Yes lol
its loading lets see
would this work or are my types all fucked up
Have you seen batch?
comment? No
@rem comment? Yes
Atleast iirc
Lmao
It was IJ being confused
IJ just fucked up
And now use proper class names
i quit
Exactly
....
if IJ is having issues with imports its almost always a bad cache
I wonder if eclipse does that too
sometimes, but in eclipse you just press F5 😉
I hope you will call your classes properly tho
That's cool
next class comming in bosscommand3 😉
But tbf eclipse looks like it comes from 10 years ago lmao
maybe start by using actual names and style conventions
Very smart
ikr
I love 10 years ago 🙂
i should be the ceo of google
What is google even written on
Notepad pro max super language
notepad pro max s Ultra
what are you gonna use this for, is regular pdc not enough? xD
notepad pro max S Ultra 5G
google is not one thing
top tier
google is a company
notepad pro max S Ultra 5G FOLD
About the search engine
google devs use their own in house development system
probably written in go at this point
iam assuming you dont know java
given its their own language
maven-checkstyle-plugin should be part of the builtin superpom so that "classname" class names wouldnt even compile
Lmao
sometimes, i just hate dealing with primitive types
PersitentDataContainerWrapper
right, should be PdcWrapper (or whatever the fuck google styleguide would want)
dw i wil correct u everytime ma man
Looks oof tho
it should be Air is the best
ig PdcWrapper is better
nah Air is the best is better
but purely because if you want to add more acronyms they dont beldn together
I'd argue for PDCWrapper
PersistentDataContainerWrapper
SMHPDCWrapper

wait whats the diff between normal pdc and this
I understand everything
if PDC was a word it would be PdcWrapper, but its not, it's an acronym.
not needing namespacedkeys
what is 1+!
oh i guess
what is 1+1
shorter line width
lol
It's greater than 1
..
usually
As I said, greater than 1
would it be smart to cache NamespacedKeys in my wrapper? 
I usually do that
somethin like this?
@UtilityClass
@SuppressWarnings("unused")
public class PDCUtils {
private static final Map<String, NamespacedKey> KEYS = new HashMap<>();
...
/**
* Creates a NamespacedKey or returns a cached one. <b>JeffLib has to be initialized first.</b>
*
* @param key Key name
* @return NamespacedKey
*/
public static NamespacedKey getKey(final String key) {
return KEYS.computeIfAbsent(key, __ -> new NamespacedKey(JeffLib.getPlugin(), key));
}
}
btw NamespacedKey.fromString does not exist in 1.16, in case you care about that
ah, yeah should probably use the constructor version
what?
it exists in 1.16 api though...
you should toLowerCase key as NamespacedKey does that internally
or well, 1.16.5 ig :v
it was added in 1.16.4 or sth
that's why I have to do it like this 🥲 https://github.com/JEFF-Media-GbR/JeffLib/blob/master/core/src/main/java/com/jeff_media/jefflib/PDCUtils.java#L123
wait there isnt even a spigot-api for 1.16.0
was it another 1.7 situation where 1.16.1 = 1.16's release?
or was spigot just lazy
1.16.1 was the first one, yeah
ill shrimply remember to do lowercase myself when i type out a keys name 
good idea of when to remove it from cache? @tender shard
Never, i‘d say
hmm
Or do you create thousands of throwaway namespacedkeys?
fair, i just have 1 key that im using rn
getCommand("ancient").setExecutor(new bosscommand());
getCommand("reaper").setExecutor(new bosscommand2());
getCommand("exotic").setExecutor(new bosscommand3());
getCommand("feral").setExecutor(new bosscommand4());``` how to make a command that execustes them all at once ?
no matter if the player changes his name, the UUID will stay the same right?
yeah the uuid is directly tied to the account
yeah the you need register plugins, but I luckily am in online mode
offline mode is not supported here anyways 😄
i bought it in beta 1.2 🥲
I have a question, is there a way to see if the server has disabled statistics/advancements apart from trying to use them regardless?
beta 1.3 was released on my 16th birthday, so basically since I'm allowed to buy alcohol lol
germany do be wildin
Lol
you can get an advancement through Bukkit.getAdvancement(NamespacedKey) - just get one of the default ones and if it's null, it's disabled
Actually, is the law only against buying alcohol or drinking too?
neither
okay and is there such a thing for statistics too?
there's only a law against SELLING it to underage people, and that law only applies to public stores etc
Oh lol
i dont think those can be disabled
oh
not sure though

So many colors
well on some server I look at statistics but then it say" [they] are disabled on this server"
are you stealing my BetterLogStrip plugin?
i probably should
🥲
but this is just a part of my smp's plugin
bc i keep messing up my house by stripping the log my door button is on with my axe
i was just converting to PDC so it can persist across joins
and somehow i have the stupid
same lol. In my plugin it just disables logstripping and adds stonecutting recipes instead
Nice

i hate that boolean was only added after 6 versions
that's how it works
this is what im doing on player-join for if they dont have it... idk why its flipping
I'd probably just use a flag "disabled_log_stripping" and then use getOrDefault when checking it
so you only have to change PDC for players who actively changed their settings
tru
oh my god its because im stupid
!pdc.get(can_strip_logs) return
that should be if get(can_strip_log) return
bro can you type like a normal person please
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
commands:
all of that could be in one message...
My ide shows me plugin.yml stuff lol
commands:
command1:
description: "Your plugin description"
aliases: [ "alias1", "alias2" ]
usage: "/commandname <args> ..."
permission: "yourplugin.command"
``` basically idk
does BlockBreakEvent fire twice? one for each hand? for some reason I'm getting 2 events per block break
no
I don't think you can break with your off-hand
I know InteractionEvent does tho
Yeah
Did you register the listener twice perhaps ?
I've noticed that while making my plugin
99% sure I didn't but I'm checking
alises not working i set the same alias for all commands not working ;-;
Don't do that
and setting the same excuetor
i want to them to spawn sepertaly by commands like /reaper /ancient which is working but i also wana make them spawn all at once will for examlpe /all
Then make an /all command and call the commands as the player ig
I mean what I said
like call the commands asplayer?
Well I guess you could do it in a different way
what way
Call the onCommand function from the command classes, but that also sounds oof
;-;
Idk I've never done that
move all the spawn methods into their own class
guy called the classes "bosscommand2" and so on, I don't think they care
seperate from teh commands
Lol true
That sounds like an amazing idea
they are in there seprated classes
😉
put ALL spawn methods in one class
;-;
a single class, probably with static methods
commands are not the spawn code
I don't think you understand
i dont ;-;
commands just check if a person can use a command and what shoudl be called
spawning shoudl be compeltely seperate
will i be able to spawn them seperately them ?
then*
yes
alr now guide me
public class Spawn {
public static ancient(Location location) {
location.getworld().spawn(...
}
public static reaper(Location location) {
location.getWorld().spawn(...
}
}```
expand as you need to do your spawning
your /ancient command class then calls Spawn.ancient(location) to spawn your whatever ancient is
as its a utils class all methods are static so can be called from anywhere
hey is it possible to create a plugin that can run on paper and bungeecord?
yes
Why paper if we are spigot
u include a bungee.yml and plugin.yml (or paper-plugin.yml for paper-exclusive) in the plugin
make bungee.yml point to the bungee-related code, and plugin.yml point to paper-related code
Wait, can I make a plugin that works differently on paper than spigot?
thank you
Build against spigot and it runs on all forks. ONLY build against a specific fork if it offers you somethign you really need which Spigot doesn;t
yesn't?
i think if plugin.yml exists it overrides paper-plugin.yml
or vice versa? idk
Sad
u could always just check to see if the server is paper lol
bruh its paper-spigot and this is the spigot discord ^^
paper-plugin.yml is experimental and buggy
it hasnt been PaperSpigot for a long time
just Paper
paper-spigot is not Spigot
nope
rly since when?
A fork of spigot
since forever
until paper hardforks 
Ofc lol, Paper is literally based on spigot
paper is a fork of spigot but plugins don't work the same for paper
It's still spigot
loosly yes
If I take a sock and put a nail on it it loses function but is still a sock
Lol
Based on the mona lisa. Do you think I could get a few million for it?
Yeah
for the most part as long as its only using spigot-api they should function the same, no?
its once u start depending on paper-api specifics that its funky
It's not based on mona lisa because it has never been an exact copy of it
hmm, armorstands bounce arrows on paper so not sure
based on has never ment an exact copy
i mean, thats not rly plugin-related, is it?
if you're trying to make a prop hunt game bows work on spigot but not on paper
This painting has nothing to do with mona lisa so it's not based off of it
so that's why i don't consider paper spigot anymore, it doesn't just build on top, it changes how things work on spigot
that makes incosistent api
It's bukkit-based, sure
You seriously don;t understand what "based on" means
but there are so many changes on top
Heck it's even copying the patches lol
if i compile a plugin for bukkit i sure knew it worked on spigot
but with paper i'm not sure
It does 99%
pushed to live server damn PDCs are poggers
throwback to when I started making plugins and I'd import bukkit instead of spigot
throwback to when I started making plugins and used nms to edit item nbt as I didn't know PDCs exist
Lol
throwback to when I started making plugins and used mns to edit item nbt because PDCs didn't exist
lol
LOL
was going to start adding extra wrapper methods (getBoolean, getInt) etc tmrw, tired now and just wanted to get one thing converted to it for now
Oh we have nearly the same one :D
https://github.com/steve6472/StevesFunnyLibrary/blob/master/src/main/java/steve6472/funnylib/serialize/NBT.java
project idea I just had
a sort of language detector where you paste code and it gives what language it is
because hastebin's is awful lmao
I'm thinking of either a confidence-based algorithm or just AI
Just make a regex for each language smh
Not that easy
Because sometimes you don't have full code
But you can pick up on subtle differences when it comes to naming conventions that lets you differentiate between, for example, C# and Java
I used item nbt because PDC did not exist
Just make something that completes the code then smh
You gotta know the language to complete the code
oh fuck
You don't want to start with java and end up getting a gradle buildscript
There is a fatal flaw in my solution it would seem :D
Lol
In my defence, I don't use brain in shitposts
what
Well, is it a jar or maybe a box?
very strange BlockBreakEvent gets called twice if I break any block in creative, but not survival
In a jar, nice
you making thaumcraft 1.12?
wut? lol no
I am responding in a funny way
hey why is this a struggle? @EventHandler public void onCraft(CraftItemEvent event) { Player player = (Player) event.getWhoClicked(); Bukkit.getLogger().warning("event is called correctly."); if(event.getRecipe() == GrapplingHook.getInstance().getRecipe()) { Bukkit.getLogger().warning("correct recipe"); if (!player.hasPermission("gh.craft") || !player.hasPermission("gh.admin") || !player.isOp()) { event.setCancelled(true); } } } The only message that pops up is [12:10:10 WARN]: event is called correctly.
it's the literal same recipe as loaded onEnable() so don't see how it's nto a match? tried doing event.getRecipe().equals() but that didn't help either?
ItemStack item = getHook();
ShapedRecipe recipe = new ShapedRecipe(new NamespacedKey(this, "gh"), item);
recipe.shape(" X ", " X ", " X ");
recipe.setIngredient('X', Material.STICK);
return recipe;
}
public void loadRecipe() {
Bukkit.addRecipe(getRecipe());
}````it's loadRecipe() onEnable
your getRecipe will return a different instance each time
so you can't compare them with ==
I would compare with the namespaced key
ok so get the key from ItemStack item = event.getRecipe().getResult(); then match it ?
no, the recipe namespacedkey
the one you pass here new ShapedRecipe(new NamespacedKey(this, "gh"), item);
I get that, but the way I get the item in the crafting table is that way I showed I assume to match the key
I don't understand
oh I thought u wanted me to match the key with the final item, not the recipe. my bad
./title Jorvents title "What is this called"
how do to it in spigot
the big text in centre of screen
why am i getting this error
You caused an infinite loop
The remove method calls the remove method
hahahah lol
yeah, i fixed that))
you russian?
fair enough
i from ukraine
fair enough
The tutorial series can be done in half a day. I recommend trying every single feature out to help it all stick.
Also, using chatGPT isn't just not a good way, chatGPT cannot write runnable code because it doesn't get what a boolean is. Even with simple code it just creates garbage that will only confuse you.
yea, chat gpt only has superficial knowledge
chatgpt can't even crash the jvm
ChatGPT when you want it to tell you the truth: no, but I can create this false information
ChatGTP when you want it to generate false info: haha, no
lol exactly
I tried getting it to generate false info, it fucked up
Then I asked it to code a mc forge gui and
Guess what
It unborned my killed child
taskmanager in macOS be like: right-click process -> "kill children"
cap
Javascript: sweats nervously
altho its a pretty shit way of doing it
thought it would just recommend me epsilon gc
Thats not quite clever
Uh
Create a new thread and ask it to tell you whats wrong
That wouldn't do anything because i is undefined
what
i?
i is not even declared?
that doesn't crash the JVM, it just throws an OutOfMemoryError though
Or is that a 1?
A 1
which proceeds to crash the jvm
I just woke up and my eyes are blurry, my bad
not if you catch it
public static void main(String[] args) {
try {
int[] arr = new int[Integer.MAX_VALUE];
arr[0] = 1;
} catch (Throwable throwable) {
System.out.println("asd");
}
}
this prints asd
Does it? Or just your program?
I wonder what code can crash the compiler, like, not just throw an error, but actually crash it
sometimes u can recover from it
but not always
the jvm may still crash
this is a proper JVM crash
your program starts jvm instance
Wait, does craftbukkit have its own events?
What
yes but causing OOME is a valid way of ending a JVM, as said you can declare to catch it, but there is no guarantee the recover will work consistently
no, but spigot got 2 events lol
And those are?
idk check javadocs
3 events
jumping is not its own packet
its a series of generic movement packets over X time
Bruh
But you can check for the "Jumps" stat increase
yo if you do find it, tell me
I wonder as well :D
I do the jump event like this https://github.com/JEFF-Media-GbR/JeffLib/blob/master/core/src/main/java/com/jeff_media/jefflib/events/PlayerJumpEvent.java
I figured it out
its
player.sendTitle()
did u see that i said its a bad way
Papers jump event isn’t anything special either
it's "special" in the sense that they once again didn't contribute it to spigot
Yes
where can i learn the tutorial series tho
ur intejil model is so weird
With the beta UI disabled I assume ?
yeah ofc, the beta UI is total shit
it takes up more space for everything
it removes the useful labels and replaces them with non-descriptive icons
and many buttons are hidden in some context menu instead of being there directly
Y'all just haters. I love the new UI.
in the "old" ui it shows like 70 entries in the project menu, in the "new ui" it only fits like 55 entries
you mean the files of a project ?
Question: I was planning on releasing a paid plugin and use the placeholders like %__NONCE__% for a random id and then send it through a post request to a server to see how much servers are using the singular plugin. If I notice that one of the plugins bought is being used in multiple number of servers, does it break spigot tos to just disable usage of the plugin to that specific user?
Have you tried the compact mode?
Finally !
you are not permitted to use drm/licensing systems in paid plugins
player.addPassenger(player.getWorld().spawn(player.getLocation(), ItemDisplay.class, (itemDisplay) -> {
itemDisplay.setItemStack(previous);
Transformation transformation = itemDisplay.getTransformation();
transformation.getTranslation().set(player.getEyeLocation().getDirection().normalize().multiply(0.35).toVector3f());
itemDisplay.setTransformation(transformation);
itemDisplay.setRotation(player.getLocation().getYaw() + 180f, 0f);
}));```
Now flip it so the handle is facing up 😉
yep ^^
Its technically not licensing since I'm just storing the data and they can use it normally but if I were to see abnormal behaviour and me blacklsting that specific user from using it, I assume that would count as licensing
Like how do plugins like litebans get through with that then
yeah not that
litebans has a method of detecting nulled plugins
and disables itself
nulled?
It's some new slang for cracked plugins
that
yes
bruh
hello, i am usign Votifier and Voteplugin for my voting system in my server, but i want that if someone votes, they get 1 vote key. how do i configure that?
Ok and? Does that not solve your issue with element padding?
no, even compact mode is still way more space-wasting then old UI
not sure that you should ask that question in here
^
oh okay ty
I am not sure with this one tho lol
Premium Plugin Protection
Just put that there so I won't trample over other questions
#general message
this too #general message
how can I do it ?
mess with the setRotation
I tried modifying pitch, but I was getting a strange sword
I feel like this is outdated or something, cause I just did my own quick test and I only had 2 files less before having to scroll using the new compact UI. Even using the non compact UI, the file difference only goes up by 1. (So 3 files less than the old UI)
okay
you may then need to invert the offset
well 
invert the offset ?
I think its the rotation not the offset
okay
whichever you need to get it right
Maybe it's an OS specific thing? Cause I just did pixel measurements between the two and they have the same size element selection.
idk I made those screenshots on june 21st on windows 11. and on macOS the difference is even bigger (but there I got a reoslution of 3456x2234)
what do i use instead of getInventory on enderChest
where is exact information of PacketType.Play.Client.BOAT_MOVE packets?
i can't find on wiki.vg
player has an enderchest inventory
not the block
because its different for each player
?jd-s h
hi have a problem while saving a uuid :
leader: !!java.util.UUID 'eb949088-f4de-4e61-bb90-ee4220316774'
how i can fix it?
UUID.toString() and UUID.fromString(string)
yes
yes
there is no tostring method xd
wdym
yes there is
im pretty sure I've seen it just recently
oh i see oky
why do you need it
blocks don't have integer ids outside of the network layer
oh you sweet summer child
You got the global pallette?
The chunk packet sends a palette that matches integers to the index of the block state on the global palette
oonga boonga not understand word
And uses that "local palette" in the chunk contents
I don't care
You have a global palette that says "air is 0, stone is 1" etc
Yes
The beginning of the chunk packet sends a sort of mapping from local palette -> global palette
And then it sends all the contents in the local palette indexing
why
Smaller numbers encode better
bruh
So if you have a chunk full of block states that have a really high ID on the global palette
It just says "this is block id 0 on the local palette" and sends a bunch of 0's instead
Hello, is the player view (F5) available with spigot ?
That's client-side
okay thanks
smh
oh thats confusing
Something tells me that the palette is in the buffer
I'd suggest reading the buffer manually
The global palette is something that both the server and the client should have
yeah you want to run this
YouTube. Just search "The New Boston beginner Java tutorial" and it'll come right up. Whole series of short videos, each covering a different and important topic.
burger
No clue what you're trying to do
but unpacking a buffer should be much faster than whatever nms route you could do
Yeah so
why tho
All you need is the global palette
And whatever data you want to inject
And a proper understanding of the chunk format
Nope
It's something that's kinda hardcoded in both the client and the server
Nope
You just need to know what bytes to write
And you already got some parts down
Starts with the amount of blocks, then the palette
Pretty sure you can get the global palette in nms by doing new GlobalPalette<>(Block.BLOCK_STATE_REGISTRY);
That's what paper's antixray does
Hello! I'm currently in the progress of making a plugin that'll handle skyblock like islands for people.
I'm wondering what the best approach to doing it would be though, not looking for any code or spoon feeding - just a nudge in the right direction.
Like should I create an entire void world per "island", or is there a better approach to it?
Thanks in advance!
is papers antixray good tho?
yeh operates in a packet level
spoofs chunks
And it gets really really complex
There are multiple ways of handling this
what if you'd just replaced all ores by stone (in the packets) instead of replaceing the stone by ores
That's one of the modes it can work with
fr? didnt know that lol
Still lets xrayers find caves and it's less annoying
But the most scalable version is to have a world pool that re-uses worlds, and have a void world per island
Keeps coordinates intact and all
what plugin should I make, I gotta be working on another one but I don't feel like it rn
Gotcha! What are we talking in terms of disk space for potentially having a lot of worlds though?
Worlds are re-used and all the island data should be kept in a database
ask chatgpt he gives great ideas sometimes
So disk space is used less than ram at this scale
you ask chatgpt and tell me
why
The idea is that when a player joins you paste the island and when they leave it unloads
So yeah disk space is only a concern in your database server :p
I'd assign 5gb to each instance for good measure however
because I ask people for suggestions not for ways to find ideas
whats the difference
goodluckwith that
lol
youll never get an idea with that attitude xD
If you're using something like worldedit to store your islands, specifically the sponge format it'd be quite better as it's 1 byte / block unless your palette is huge, compression will help when it comes to huge air gaps
ngl i used chatsonic for some ideas on my plugin when i was stuck and it did well
why are you resistant to using it
when will we get mixins
dunno
I'll look into, thanks a ton for the help! :)
If you want more direct spoon-feeding uhh
I have 2 projects that will help you out a ton
thats mean
https://github.com/IllusionTheDev/Cosmos
https://github.com/IllusionTheDev/SkyblockCore/tree/2.0/SkyblockCore-Spigot/src/main/java/me/illusion/skyblockcore/spigot/network
World template loading/saving system. Contribute to IllusionTheDev/Cosmos development by creating an account on GitHub.
Scalable Skyblock Core. Contribute to IllusionTheDev/SkyblockCore development by creating an account on GitHub.
I mean I wouldn't mind projects to learn from, I just started my minecraft/Java journey (Though I do have other coding experience!), so any help is appreciated
Oh, neat, thanks!
Hi, can someone confirm if minecraft completely removed the possibility to equip a block as a helmet? This code "works", it's showing the message and all, but the block won't be equipped as helmet
if (currentParty == null) currentParty = player.getParty();
if (currentParty != null) {
ItemStack partyItem = currentParty.getPartyIcon();
ItemStack currentHelmet = player.getInventory().getHelmet();
if (currentHelmet == null || !currentHelmet.isSimilar(partyItem)) {
sender.sendMessage(ChatColor.GREEN + "You are now showing the party icon");
} else {
sender.sendMessage(ChatColor.RED + "You are no longer showing the party icon");
}
} else {
sender.sendMessage(ChatColor.RED + "You are not in any party!");
}
currentParty.getPartyIcon() returns a GLASS_BLOCK stack

🗿
why is java so cringe
0xf1 isn't a valid value for a byte
because bytes only go up to 127
my IDE complains
Use int instead of byte
it's a byte array literal
I think that just truncated it
🗿
best language ever designed 😁
got a major headache atm so can't help you on that
yeah nah I'm just not gonna deal with it lol
In fact it is one of the bests languages
facts
can't even get myself to assign basic variables anymroe
it sucks and should not have been used for Minecraft
the only redeeming factor is how easy it is to mod
but even then, C#
Indeed, Java was not made for making videogames, but that doesn't mean it sucks as language
Ur just to dumb to use it then
You are trying to judge a fish by its ability to walk
"Ur just to dumb to use it then" is gold lol
It's a miracle that minecraft stills works on java, but as BedlessDeus said, it's not garbage just because a game is made using it even though java was not made having "games" in mind
oh I'm not saying it sucks just because Minecraft uses it
You can see the win10 minecraft edition runs a lot better cus it's written in a general use lang
I'm saying it sucks as a person that's used it for years lol
Can you expand an already in use inventory? Say I have a backpack, when the player is level 5 ( my own level system ) they only get 2 rows of slots in their backpack. but when they level 25 they'll get a full double chest. Can you exapnd an inventory while keeping contents? or is that something I have to handle, and update the new inventory with the items.
sounds like a you problem to me
clone inv items
you can clone old inventory into the new one
Oh that's sweet. I was thinking it would be a lot harder. thanks.
Why does it suck?
It's a solid language
Maybe a bit old, but stills being updated
it runs on BILLIONS OF DEVICES
yep
And java 20 seems very good
Bugs:
less the language itself, more the OOP hell community that's built around it
Microwaves
what's new in that? Haven't read up on it. im stilling using 17 haha.
dont forget toasters 🙂
I'm on java8 lmao
You can create main class without specifying class and shit
OOP Hell, wdym?
you contradict yourself
ooh
WHAT?
No class nor anything
I see c++
not all that garbage extra stuff?
But it's very limitted
Plus
String world = "World";
String helloWorld = $."Hello ${world}"
That will be valid on java
Or something like that
are they ever going g to fix our garbage collector issues?
How to fix garbage collector issues: Do not use gc
i say burn the garbage lol
just throw it into the ocean
the ocean? that bad
that's what we already do
it's not wokring
STR."Hello \{world}"

That would work if we didn't need to waste actually useless resources lol
Yes, that was it
But you were able to create your own
blyat get that garbage outta here
I only see javascript lmao
yes
Well, yes
I no like
lmao i can see that
Like, what was their example ?
I cry
That was unexpected lol
Bro just blyat-ed
JsonElement element = JSON."""{"test": "value"}"""
What the fuck is that
like wtf is this
Now I expect an update for java servlets which everyone uses and knows about
we ain't in c++
Why not add an assembly executor?

Fuck it, I go standalone assembly
Imagine having to use java to run assembly
I am getting rollar coaster tycoon vibes now haha.
Imagine if instead of java minecraft used assembly
s l o w
It'd be blazing fast
and prolly a hell of a lot more stable.
But nobody would create mods for it, or they will use another language which then translates to assembly
yes but a nightmare to work on
Like C
Yes
It would work only on a certain architceture
Architecture
Yeah, but they already have multiple releases for different platforms
Well, let's start a new game guys
I'm in
AssemblyCraft
XD
Lol
I'd rather stare at the sun
🗿
I'm dying here XD
Let's rewrite minecraft server code in assembly
ME TO lol
For no reason
No way
Finally, minecraft world load in 2 seconds
Let's write minecraft in native bytecode
yeah ill check back with you in 10 years
What if we integrated a dedicated server into the client instead of the default server thingy
I say we use barebones Rust and build it as it's own operating system
Probably you can't
Why no
Too much work for the JVM
what
Nah it's ezpz
This might be getting out of hand guys. Want to create an operating system? 😭
Spigot in your minecraft worlds
strictly for minecraft
MinecraftOS
Mineos
Yas
its a server wrapper thingie
Or it is a mine?
Pronounced mee-neh-os
Ours
MineOurs
Ours
Now fr, let's make minecraft in assembly 😎
here you go ⚰️
Thanks
np man lmao
Imagine hiring a full team of senior assembly developers for making that dream real
That's stupid
Who'd be paying for it? some rich dad?
No, releasing it for free 😈
Then selling it to microsoft
🤑
Also injecting a backdoor on the game
Woah woah dont disclose it. rookie mistake bro.
So if they ruin the game, we can rollback 😈
Lol
just revert to default settings lmao. after a years work for them. we just send a rollback command. 🤣
Hello, how can I flip a ItemDisplay so the handle is facing up ?
Anyone have fix for ItemStack.isSimilar for heads with custom playerprofile & textures?
What can I use instead of pdc when doing 1.8?
Please dont help if you dont think first, literally isSimilar checks almost everything except stack size lmao
Man i swear i remember someone telling me earlier that isSimiliar returns stack size. i asked the same question and had to use pdc instead.
I dont know, ill read up on it again, sorry tho.
np:) srry for my rude response
NMS and interact with NBT directly
Nah man you good. Everyone gotta learn some how, right? lol
are permissions case sensitive?
I was just wondering if I should name the ones in my plugin all lowercase
depends how you are checking it. If you use the string method to ignorecase then no its not case sensitive, however if you instead not do this then yes casing would matter
Alright, thanks!
Holy shit that's bullshit
well that is the only thing that is what PDC does
only other thing would be to use something like JNBT and create your own NBT Files?
disadvantage of the second is that the server won't maintain it for you lol
I feel like I'm gonna die NBTing
the first one has the disadvantage of that if you don't clean up the data you will inflate the game files
There’s something called NbtAPI
Is there?
in case you want to see jnbt
Wait, is it theoretically possible to recreate pdc for 1.8?
all PDC is, is just an API layer over NBT
but it does a bit more to ensure some things from plugins
like doing some cleaning up etc
Okay, time to code (no I'm lazy)
me irl
Lol
Can you freeze it like a js array? So you can't change it
good question
one could replace the diseases list with an unmodifiable list through reflection
just make a FreezableList wrapper class
that takes in a list
and has a freeze method that throws exceptions
What are you, Mojang
I don't get sick
Yeah until I replace it with a modifiable list again via reflection
CompletableFuture.supplyAsync( () -> {
while(true){
field.set(instance, List.of());
}
}
);```
lets ignore all errors this could cause 😄
Errors and concurrency problems
shhhh
Imagine modifying something on the list then it gets completely replaced by a new list 🗿
Or imagine modifying the list while its being replaced
JVM go brrrrrr
I just have to say ChatGPT is the worse utility to ever exist.
You shouldn't just use it expeting him to write your code
I use it as a "suggestion" and "code analisi" tool
I am not. I use him to generate boiler plate stuff that I dont want to.
and to sometimes explain errors.
he is just stupid sometimes.
using it even for that is terrible
it sucks at code stuff in general
GPT4 is semi competent
i agree
but that's as far as it goes
use Lombok or your IDE if your so lazy
😔
i've never heard of Lombok
It's georgeous
what
Doesn't support Fleet 
Fleet sucks anyways
Woah
just use IntelliJ or Eclipse
My machine struggles with IntelliJ and I hate eclipse
@AllArgsConstructor
public class User {
@Getter
private final String name;
@Getter
private final String email;
@Getter
private final String phone;
}
Then lombok generates a "new User(name, email, phone)" constructor and that class will have #getName #getEmail and #getPhone
Fleet is literally just VSCode but worse
I like it better. Plus it is still in Preview...
use Netbeans then
p much
and slower
even tho its not electron
😦
idk how they managed that
this is too much boilerplate even for lombok
@Data
public class User {
private final String name;
private final String email;
private final String phone;
}```
Or even better a non lombok alternative
```java
public record User(final String name, final String email, final String phone){}
I recently stopped using Lombok
alt + insert go brrrr
The difference between lombok and the IntellIJ helper is that lombok works under bytecode, and IntellIj literally generates the code
So there's no real difference
I don't think its bad, but imho its just as easy to generate the code
I just generate my getters with equals hashcode etc
For me is more comfortable to let lombok do the work
Plus it has some other annotations
Like @Builder
That makes the workflow easier
pretty sure lombok adds some seconds at compile time

Hey any one could point me to some tutorial or example for dynamic libs loading on run time
I want to avoid bulky jar file for my plugin
I was looking to make my own lib which player will need to install to use my other plugin but with all things inside goes over 3.5 mb
so I would like to dynamically download and load what I need
just put on your plugin page in big red letters you need a dependency and send a link to the jar download and in your discord if you have one make a command to tell people about it. :) no dynamic library loading needed. I'd avoid overcomplicating this
well I would still like to try
just don't know where to start
do you guys happen to know of an event that sets the player location on join?
i think i remember there being one, i might scour the nms
w PlayerSpawnLocationEvent
yup
got it
Hello, how can I change a ItemStack max durability ?
I don't think you can
You can't
i'd use @RequiredArgsConstructor instead
don't even bother @Data goes brrrrrrrrrrr
or just use a Record
i dont recommend the usage of lombok at all since its a bad practice
im pretty sure @ivory sleet has the most reasons for that
oh shit
shit SORRY FOR THE PING
Heyy, I'm trying to create a command to add a specific percentage of speed to my player. I noticed that the base speed is 0.2F, but what's the equivalent of speed 1 in spigot walkspeed ? Because when I give the speed effect to my player the walkspeed is still 0.2F...
0.2f is indeed the default speed
That'd be too sensible
can i use in maven AlwaysSpawn instead of always-spawn as artifact id?
or is it a bad practice?
i would rather google that than ask here however i do it the first way and its working fine
@bright cedar
Lol, I mean its fine, you’re just trolling if you use lombok thats all
can you explain why?
Explain why lomnok bad
I d9jt use it
just curious
Just curo8s
lol same
Haha we smae
sorry ❤️ istg i stopped using it:3
sambal oelek
My brain not work today lowkey and in on phone so it's worse