Hi, I'm a beginner when it comes to java coding, but today I tried creating a placeholder based on a java string variable. I can't find any recent coding tutorials for placeholderAPI on youtube. I'm trying to get a stopwatch/timer plugin to output the seconds past in a placeholder. I don't know whether the source is allowed to be altered, but I thought for personal use it wouldn't hurt. If anyone could help me out that would be greatly appreciated.
#development
1 messages · Page 24 of 1
Sounds interesting ngl. What source?
Never knew that existed
Sadly, code looks really screwed due to the spacing on phone xD
funnily enough, rebuilding worked
DeluxMenus, on Spigot 1.18.2 (Plugin version 1.13.6). I can take items from menu, to my hands. How i can fix it?
Yeah, me neither. But when you search long enough, you'll most likely find what you're looking has already been done.
If it's on github and has no specific license, it's automatically under bukkit's license, so you can modify it
(technically, all plugins are under that same license, free and paid)
Tru tru
You are probably searching for #general-plugins or #1007620980627230730, this is mainly for java coding
I'm not sure about that
All minecraft plugins built using Bukkit are under GNU if I am not mistaken
and I quote intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
Or actually would the developer be at fault? Or maybe it is implicitly under GPL
I am no lawyer
All those devs that put licenses in their plugins are technically fake licenses xD
as said ALL minecraft plugins that use the Bukkit api are under GNU
I guess thats settled then
The contents I've modified are in there, but after i run that one as a plugin, it gives an error:
I may just be tired but im still trying to figure out what part of that thing is the actual issue
java.lang.NoClassDefFoundError: me/clip/placeholderapi/PlaceholderHook
I'm trying to make it output the seconds as a placeholder in placeholderAPI
as soon as remove the part (commented with start&end alteration) it does work but no placeholder is found. 0 placeholder hook(s) registered!
self explanatory no?
Are you using maven or gradle?
The project contains neither, if I'm not mistaken.
As i said, I am no expert. Fairly new at coding I suppose.
I'm using IntelliJ IDEA for building, and replace the class files inside the original jar.
Oh so you are trying to modify an existing project?
I am a bit confused now
Okay, yes you are.
So, I would recommend to maybe extend your knowledge in coding instead of going straight forward to modifying existing code which you may not understand and cause future issues. Otherwise, if you want to risk that (I wouldn't recommend), the issue itself is that the project uses PlaceholderAPI yet it didn't find it. Probably because it isn't present in the server and it probably isn't dependent on it (in the plugin.yml) so it still enables the plugin.
The original plugin.yml doesnt have papi so ye, likely just that
Yes, but even if it had it, only thing it would change is that the plugin would disable itself
instead of giving an error
Thanks for the advice. I still want to take the risk however. But not today. In the weekend i might have time to spare. You said it's not a dependency, yet i can see modified plugin.yml containing the dependence. I think i just don't really understand what the following line does:
PlaceholderAPI.setPlaceholders(Bukkit.getPlayer(curPlayer), "%stopwatch_seconds%");
if you hover your mouse over the method and click ctrl + q it should display it's javadoc description
I modified it a couple of times to no result. If you could explain what the first and second argument stand for that would be great
This basically replaces the placeholders in a message, the first parameter being the player and the second one being the message where that placeholder is.
Although that returns a string, so make sure to use that, it's not a void method
the variable i want to be the output of the placeholder is totalSecs. The player whould be the current player. and the placeholder should be named %stopwatch_seconds%.
so you want to create that placeholder?
to use it somewhere else with papi?
yes
then you are doing totally the opposite xD
this is what plugins use to parse papi's placeholders
Ohh..
Thanks for clearing that out. I will look into that tomorrow. If i need any help, I'll be back. Thanks again.
No problem
Hello I need help dear developers & configurators. So this is a custom GUI menu from DeluxeMenus, how can I do it like a shop
when someone clicks on example: Boots item
- if he has enough money, he will buy, his money will be taken & he will be given the item [boots]
- If he hasn't have enough money, he wont get nothing, only a message in chat like [!] Not enough money
DM me so I can send you a picture, the example what I mean
I also use AdvancedArmor plugin for this ^
Can i code 1.19 plugins in Java 8 or does it have too be Java 17 >?
it can be in java 8, why you would make 1.19 plugins in java 8 is questionable
yeah the whole benefit of later versions is that everyone has to have 17 at a minimum, so you can get away with using those new features
Does anyone have any idea what this is caused by? I've checked StackOverflow, found practically nothing, and am basically just beating my head against a wall at this point. I'm trying to serialize/deserialize itemstacks using the BukkitObjectInputStream and it seems like certain player heads are causing this to happen. It works for normal items but certain custom heads or items with certain nbt can cause it to just die. Would appreciate it if you could give me a ping with any response
Relevant classes are here:
https://github.com/Rosewood-Development/RoseMinions/blob/master/src/main/java/dev/rosewood/roseminions/minion/setting/SettingSerializers.java#L102
https://github.com/Rosewood-Development/RoseMinions/blob/master/src/main/java/dev/rosewood/roseminions/model/DataSerializable.java#L36
Can I recommend Base64 instead?
^
yeah sounds like an issue with the bukkit serialization hackery, probably even on writing already
When I use a AttributeModifier.Operation.ADD_NUMBER for attack damage does it add the value to the base damage or does it override the base damage?
d;AttributeModifier$Operation%ADD_NUMBER
public static final AttributeModifier.Operation ADD_NUMBER```
Description:
Adds (or subtracts) the specified amount to the base value.
Page 0 • Requested by: GabyTM | RO • spigot
It called ADD not SET 🤓
Yes but when I tested it with only the added amount my sword did half a heart of damage instead of 8.5 Hearts like it should (it was a netherite sword)
and now I tested it like I would set it and it worked ??
Using ProtocolLib, how can i detec when the status changes?
Interesting. How do I use this? Very new to protocollib
I keep getting this error : Caused by: java.lang.IllegalArgumentException: Item cannot be null
This is my code :
public class ItemManager {
public static ItemStack sword;
public static void init() {
ultimateSword();
}
public static void ultimateSword() {
ItemStack ultimateSword = new ItemStack(Material.DIAMOND_SWORD, 1);
ItemMeta meta = ultimateSword.getItemMeta();
meta.setDisplayName("§k§4scary§1Ultimate Sword§k§4scary");
meta.addEnchant(Enchantment.DAMAGE_ALL, 10, false);
meta.addEnchant(Enchantment.KNOCKBACK, 10, false);
meta.addEnchant(Enchantment.FIRE_ASPECT, 10, false);
meta.addEnchant(Enchantment.DURABILITY, 10, false);
ultimateSword.setItemMeta(meta);
sword = ultimateSword;
}
}```
```java
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(colorize("&4You can't do this!"));
} else {
Player p = (Player) sender;
p.getInventory().addItem(ItemManager.sword);
}
return true;
}```
is ItemManager#init ever called?
you can use a static { } block which will be called automatically
in general I would not recommend using the same item instance
- static abuse
- any changes of the item will apply to every player with that item
mutability 😌
I can't check the code but doesn't giveItem generate a copy?
I'll try that but isn't that effectively the same thing except transforming it into a string instead? Since it still has to go through the byte array serialization first?
Bukkit's Object stream is broken
Like it's legitimately broken
Paper has serializeToBytes or smth
Yeah that's paper only tho :(
Gotta make your own methods. Bukkit doesn't serialize nbt data either so it's better to make your own anyways.
it does serialize nbt from my experience?
Bukkit does actually serialize nbt I'm pretty sure
I'm also pretty sure that's what's breaking it horribly
it does, but it has some really fun quirks and it sometimes just does not work lmao
Unless it's in new versions my nbt tags were never saved.

One of my old methods was item -> jsonobj -> base64
https://github.com/PaperMC/Paper/blob/8f498dc19ad03e827c6280c14aedffb3a24495b9/patches/server/0367-Add-Raw-Byte-ItemStack-Serialization.patch depending on the versions you want to support of you already use NMS, I guess you can copy paper's logic?
I was going to end up going with NMS and serializing it that way since I at least know it wouldn't break, I'll probably end up using something similar to Paper, thanks for the advice everyone :)
I have a few sub packages in the path com.sniskus.rpg.core.classes with different classes extending the class Ability. How does this not give me any values or keys? ```java
Class<? extends Ability> a : new Reflections("com.sniskus.rpg.core.classes", Scanners.SubTypes).getSubTypesOf(Ability.class)
I just get [org.reflections.Reflections] Reflections took 85 ms to scan 113 urls, producing 0 keys and 0 values
how would I make a player invincible
for 5 seconds
i personally would add the player's uuid to a set of uuids, and have a task to remove the player's uuid from that set in 100 ticks, and then in the entitydamageevent if the player's uuid is in the set then to cancel all damage.
Doesn't Player have setInvulnerable(boolean)?
d;spigot Player#setInvulnerable
void setInvulnerable(boolean flag)```
Description:
Sets whether the entity is invulnerable or not.
When an entity is invulnerable it can only be damaged by players in creative mode.
Parameters:
flag - if the entity is invulnerable
Requested by: dkim19375 • spigot
When an entity is invulnerable it can only be damaged by players in creative mode.
Although make sure to note this
looking for some help with conversable.sendRawMessage?
can I send a message via minimessage to conversable.sendRawMessage
Have you tried what minidigger suggested?
idk exactly what the method is but I assume it takes json?
so you can use the json serializer
I assume he's talking about GsonComponentSerializer or smth like that
yeah I don't think there's a json named serializer but there's a gson one
didnt know that existed
alr new thing how do I create a recipe in spigot 1.5.2
1.5 or 1.15
1.5
legally you're unable to obtain 1.5.2 anymore so I doubt there's many people who has experience with that in here
wdym legally
i can literally go to bukkit and download it
what site
hold up
bukkit doesn't really care though so they don't take them down
yeah that's not allowed iirc but 🤷 there's popular minecraft servers that get their jars below 1.8 since no one takes any action
but I'm just saying that it's an extremely old version so people here may not have experience with it
Why do you want to use 1.5?
for something illegal

eaglecraft browser minecraft which runs 1.5.2
idk bout u but I got 100 fps on it
im also on firefox if that matters
and on a public mc server
i just clicked one of the middle ones
it dosen't matter
it just can't handle the uh render distance
so turn that to mini or small
tiny or short*
why is there an adderall setting 🥲
i've already spent my time making stuff for it like this sword :
public ItemStack ultimateSword() {
ItemStack ultimateSword = new ItemStack(Material.DIAMOND_SWORD, 1);
ItemMeta meta = ultimateSword.getItemMeta();
meta.setDisplayName("§4§kscary§1Ultimate Sword§4§kscary");
meta.addEnchant(Enchantment.DAMAGE_ALL, 10, true);
meta.addEnchant(Enchantment.KNOCKBACK, 10, true);
meta.addEnchant(Enchantment.FIRE_ASPECT, 10, true);
meta.addEnchant(Enchantment.DURABILITY, 10, true);
ultimateSword.setItemMeta(meta);
return ultimateSword;
}```
turn it on 😄
it's just a thing added for fun
it let's u see fake blocks/items and when you get close to them they run away from u
also you screen moves
oh huh lemme try that
i mean I see it with my own eyes
🥴
155 fps ez with ms edge
but 30 fps with firefox
firefox bad
Not really, Firefox does some weird things with OpenGL for some or the other privacy reasons I cannot be bothered to explain
ah
oh
oh what
see all u gotta do is turn it down
are you high on adderall rn
I would never!
lies
wanna join my server and see what I have made so far
sure
alr i'll dm you
Man
I think I finally finished
I've been working on an API & Library which replaces the bukkit scheduler with a non blocking scheduler based on the reactive streams specification
doesnt the schedular whe ysed properly not block the main thread?
"whe ysed"? what's that?
when used
judging from the context
yes
non-blocking is not the same as "not blocking the main thread"
Generally speaking there is no such concept as "main thread", that's made-up in the context of Minecraft to refer to the server tick loop
non-blocking is more of a mechanism where you don't want to block a thread, any thread, period, non-blocking IO allows for performing file operations or network calls "synchronously" without blocking a thread at all, that's far down the line onto the operating system tho but obvs there are abstractions for that in Java and such
i just thought they were doing mysql querys sync or something
Or, in some cases, when a thread is blocked instead the scheduling system will switch the thread from waiting to perform some other queued task
async does not mean non-blocking, it just means run this task in another thread and (perhaps) block this other thread instead
oh i see
so I have this code
ItemManager itemManager = new ItemManager();
NamespacedKey ultswo = new NamespacedKey(this, "ultswo");
ShapedRecipe ultimateSwordRecipe = new ShapedRecipe(ultswo, itemManager.ultimateSword());
ultimateSwordRecipe.shape(" a ", " b ", " c ");
ultimateSwordRecipe.setIngredient('a', Material.TNT);
ultimateSwordRecipe.setIngredient('b', Material.DIAMOND_BLOCK);
ultimateSwordRecipe.setIngredient('c', Material.STICK);
Bukkit.addRecipe(ultimateSwordRecipe);
but for some reason I get this error
'ShapedRecipe(org.bukkit.inventory.ItemStack)' in 'org.bukkit.inventory.ShapedRecipe' cannot be applied to '(org.bukkit.NamespacedKey, org.bukkit.inventory.ItemStack)'
d;ShapedRecipe#ShapedRecipe
public ShapedRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result)```
Description:
Create a shaped recipe to craft the specified ItemStack. The constructor merely determines the result and type; to set the actual recipe, you'll need to call the appropriate methods.
Parameters:
key - the unique recipe key
result - The item you want the recipe to create.
Page 1 • Requested by: GabyTM | RO • spigot
Is it just me or has paper dropped NamespacedKeys from their api
And replaced them with Namespaced thru either kyori or native paper
I mean it's still there
And they made NamespacedKey implement both their Namespaced type and Kyori's Key so anything that accepts either of those you can still use NamespacedKey on
IntelliJ won't recognize the path to the import
Only recognizes com.destroystokyo.paper.Namespaced
And
net.kyori.adventure.key.Namespaced
Theres like an ignored import list thingo, check if its there
And check if it works if u manually import it
I mean the class definitely exists
Removing it entirely would break so many things lmao
Didn’t you hear? They removed them in 1.19
yeah because it never happened
💀 💀 💀 💀
Ok oops!
alr so I have this sword code
public ItemStack ultimateSword() {
ItemStack ultimateSword = new ItemStack(Material.DIAMOND_SWORD, 1);
ItemMeta meta = ultimateSword.getItemMeta();
meta.setDisplayName("§4§kscary§1Ultimate Sword§4§kscary");
meta.addEnchant(Enchantment.DAMAGE_ALL, 10, true);
meta.addEnchant(Enchantment.KNOCKBACK, 10, true);
meta.addEnchant(Enchantment.FIRE_ASPECT, 10, true);
meta.addEnchant(Enchantment.DURABILITY, 10, true);
AttributeModifier dmg = new AttributeModifier(UUID.randomUUID(), "generic.attackDamage", 70.0, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
meta.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, dmg);
ultimateSword.setItemMeta(meta);
return ultimateSword;
}```
and whenever I try to add an attribute it breaks my event to explode on right click
```java
if (e.getItem().getItemMeta().equals(itemManager.ultimateSword().getItemMeta())) {
if (!cooldown.containsKey(p.getUniqueId()) || System.currentTimeMillis() - cooldown.get(p.getUniqueId()) > 5000) {
cooldown.put(p.getUniqueId(), System.currentTimeMillis());
p.sendMessage(colorize("&aYou've used the Ultimate Ability!"));
p.getWorld().createExplosion(p.getLocation(), 15f);
} else {
p.sendMessage(colorize("&4You can't use this for another &e" + (5000 - (System.currentTimeMillis() - cooldown.get(p.getUniqueId()))) / 1000 + " &4seconds!"));
}
}```
anyone got any idea why this is happening
the event of things blowing up
wut
error?
no error at all
put debugs
everything worked until I added the dmg attribute
are u talkin bout this
(e.getItem().getItemMeta().equals(itemManager.ultimateSword().getItemMeta()))```
or even just compare the displayname (still bad but better than it breaking right now)
yes
tf is the point of that
PDC
what's that
e
P Mayonnaise
D on an
C Escalator
imma just go the easy route and remove the attribute
ps : attributes don't work on 1.5
i'm using 1.19.2 🙂
i've been working on higher spigots thing
I just decided one day to do 1.5.2
you would havs to use nms if it was 1.5
just add an id to the items pdc
the id is the easy routr
what if they change anything about the sword its no longer identifyable
So
Quick question
If I'm extending RunnabeScheduledFuture<T>
In an interface
I cannot reasonably override get() anywhere except from the end user standpoint, no?
if I've got an interface
IService extends RunnableScheduledFuture<IService>
And then somewhere down the line I implement an abstract class to provide some sort of basis for individuals to extend from
I still have to leave out
@Override
public IService get()```
Because I cannot realistically return anything there unless it's from the acting subclass
Is that accurate?
And also from RunnableScheduledFuture, isPeriodic() is simply asking whether or not the task is allowed to be scheduled and ran more than once?
I thought I was finished with my non blocking scheduling system for bukkit
But I was wrong
Returns true if this task is periodic. A periodic task may re-run according to some schedule. A non-periodic task can be run only once.
Do with that as you will
Contract in javadoc 
What does this mean?
What are you even trying to do lmao instead of using something like reactor and using parallel/boundedElastic schedulers
I guess he means he can't override that method and return a value because it is an interface, but that's how interfaces work 
default methods are a thing but idk what the goal is
yeah
@lyric gyro i am using reactor and its scheduler
Do I only need to have the service extend runnable?
Since reactor is non blocking?
what
And I'm not using parallel or bounded elastic but instead Schedulers.fromExecutor
what is your goal
and why not?
The service is designed to be a possible future but that doesn't mean it's going to be
At any point the task itself may not have its result ready; if I'm already using reactor (and Scheduler#schedule takes a runnable parameter)
I dont need to worry about whether or not the service may not be ready at call?
what
I feel as if this would be easier if you saw what I'm doing on my github repo
It's a lot to describe
At any point the task itself may not have its result ready
That is exactly what a future is, yes
There's a scheduling system which creates a ServicePool, which stores all services related to that service pool. Each pool registers either a single threaded executor for the scheduler, or a multi threaded one based on a boolean parameter. The services are all extending RunnableScheduledFuture<IService>, so they can be
- Scheduled
- Be called at a later date if the result isn't ready without blocking any other threads
If I am using Mono and Flux, to create non blocking threads
Do I need to bother extending RunnableScheduledFuture
Or should I instead extend Runnable
And let the scheduler do the bulk work
And if I should extend RSF
From an api/lib standpoint, I can't override the get method because I have no idea what the service instance should return, and whether or not it's even completed?
Or can I override get() from RSF because I know that eventually it'll return an instance of this or the child?
I fail to understand what the goal of all this is
Does getting data out of a database cause lag?
Like with FILE/YAML I do it Async so it doesn't have effect on the players experience
But does that matter for MySQL too?
Please @ me
Queries should be done async
it's far more important to do sql queries asynchronously than it is yaml reads lol
90% of the time the yaml contents will be cached anyway lol
Btw note that sql calls also make a network request
Which I think takes longer than a file
But I haven't done any testing
network io is as slow as it gets
mainly cuz of latency but still slow
if theres 0 latency, network is actually 3x faster
Oh
Would using a local ip rather than localhost also give 0 latency? Or no because it goes through the router
idk
thats just what this random google guy said
https://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf
Wow stanford
slide 13
Ahh oke, thank you
Oke oke, thank you
is possible to combine the plain jar, the sources jar and the javadocs jar into one? if so, how could I do this?
to have to import only one jar instead of three, this also facilitate sharing source jar with others
it is called using a maven repo 😄
what if I don't want to have to publish my jar to external sources just to share it?
good practices aside, I just want to know if that is possible or not (and if so, how to do it)
you asked if it is possible to combine 3 different jars in one, how's this a problem
@robust flower Not sure if this would do what you want, When I can't find maven repos I use mvn install:install-file -Dfile=C:\Users\UserName\Documents\Your.jar -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar to add the jar to my local repo
I'm creating a plugin which uses menus and has a config file with which a user can create multiple menus with multiple items in it and options and allows the user to open those menus through a command.
Is it better to get all the menus in a static list when the plugin enables and opens the menu for the player upon using the command?
OR
Is it better to create all the items in the menu according to the other options and then open the menu for the player upon using the command?
Hey im trying to make some placeholders for my plugin but it dont seems working no idea why i checked Wiki on gitub and i dont see any problems Here is my code
https://hastebin.com/uhacopepiz.kotlin
ive registered this in onEnable
new PlaceHolderListener(this).register();
but this dosent seems working tell me if im doing smth wrong
Hello, i need help.. why It’s not working?
??
Oh, i cant paste here a picture
Uploading Images
You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/upload or similar service to upload images/screenshots.
Can you send a startup log of your server with the plugin that has this expansion installed
sure gimme a minute
I do believe your expansion identifier might need to be all lowercase tho. Might be why
i have added the dependence and repository, but still cant use InventoryGui
to create an inventroy
Have you imported the InventoryGui class in your code?
oh no? how can i do that?
i feel so dummy, sorry
from this ulr i take the dependence and repository
import de.themoep.inventorygui.InventoryGui; at the start of the file in which you work.
have you refreshed maven dependencies after editing your pom.xml file?
i have clicked on run and it says that the dependencies have been download, thats all
Are you using IntelliJ?
yes
If you open your pom.xml file, is there an m showing up in the top right?
no problem
i am "new" to coding - especially using dependencies
https://imgur.com/a/d2Rd6aF what does the InventoryHolder means?
i have tried to put player in it, but thats just gave me an error
https://pastebin.com/cXLpZeqj this error
here is my code: https://pastebin.com/pPsxLiEK
Hello,
So I have been building this app in Java in Android studio. I am using one of google's API's and I have this credentials.json file that I need to get the data of the server. But I have been trying for the past 2 hours to get the path file/or any other way to get file but it hasn't worked out.
This is the project structure right now (https://imgur.com/a/fM5L30a). I need to get this file in the CalenderAPI.java class. Does anyone of you know how I would get this?
(Please tag me if you are responding)
It has to be in the res folder
Since it's a resource
Rn it's in the Java folder
hello, can someone tell me, whats wrong? i have created guiElement named like in the code and when player click the element, it should send the player a message - for test the click https://paste.helpch.at/fafudaraze.java
zdravicko prosimte pouzivej https://paste.helpch.at protoze je tam code highlighting automaticky tak se to lip cte
ok, dík
do not know if its by using the lore, but event when i removed the lore, nothing happed, no message to player - i am using Phoenix616's InventoryGui... and yes, i already use the wiki to create the element
so, the first problem was that i was returning false at line 45, but that doesnt change that its not sending a player message when player clicked the green_concrete
my placeholder doesnt work
https://imgur.com/a/uKDcIJd
code:
main - https://imgur.com/a/reCqzH9
placeholders - https://imgur.com/a/ROW0Wvg
I am confused java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.UUID (java.lang.String and java.util.UUID are in module java.base of loader 'bootstrap')
public Integer getTotalKills() {
var ownerP = Bukkit.getOfflinePlayer(owner);
int temp = ownerP.getStatistic(Statistic.PLAYER_KILLS);
for (UUID member : getMembers()) { // This is line 93, apparently it's happening here?
var p = Bukkit.getOfflinePlayer(member);
temp += p.getStatistic(Statistic.PLAYER_KILLS);
}
return temp;
}```
getMembers() returns a List<UUID>
So, I am quite confused where that string is lol
Collections.checkedList PauseChamp?
wut?
returning that list lol
I have an idea on what might be issue
going to test it rn
obviously but what is the actual code
like just returning the list
mfs will say "this function does a thing"
nothing else
okay and where is the list coming from
From a constructor, which is initialized on start, which is deserialized which is what I am checking rn
since I am storing this in json, and the list is probably a list of strings
instead of uuid
which is probably the issue, which I am testing rn
AND it was that lol
thx anyways
yeah the deserialization is the problem
PAPI placeholders go by %identifier_params%
so in your case, it'd be %shop_coins%, not %coins%
you can also do onPlaceholderRequest instead since you only want a Player
onRequest is if the placeholder also allows offline players or no player at all
Ok ill try
Pls help
The code:
https://wiki.phoenix616.dev/library/inventorygui/usage here is the wiki
I am missing theInventoryHolder, bcs i have no idea what that is
If I have a string containing a "." how can I make it a path without it nesting?
String string = "Some.Path";
YamlConfiguration.set(string, "value");
```Becomes ```yaml
Some:
Path: "value"
I need it to be ```yaml
"Some.Path": "value"
i make a plugin with Custom minecraft recipes and i have a crafting recipe where i put a water bottle in and then other stuff the water bottle should be after the crafting be empty
i uh dont think you can
spigot be like that
Yeah. Gotta figure out a char to replace it with. But IDK what would not be used by anything lol
id think something like ;
Might use that. I'm just gonna check if its a configsection first though. Cause the issue is rereading it from config it wasnt checking for nested paths.
NVM that would be a pain with multiple nests. Char it is xD
Did they remove the java markdown on discord?
yeah look at the message lol
you put a space after it
It didn't do the markdown
Ah
I was trying to one line the message originally forgot to remove the space lol
Hello everyone maybe some of you can help me with my problem with discord ?
Or point me in a direction to get it working
?not-discord
Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.
Requested by: Ori • not-discord
I've looked through that but can't find a similar problem
Maybe I can explain to some of you and ya can help me quickly as it's really puzzling me
We are not discord support, and this channel is not for it either.
You can try asking in #off-topic or a completely different discord server. This is a server for minecraft plugin help
Ohh shoot I joined the wrong server my bad
All g, wish ya luck
how does Player#showPlayer and hidePlayer work?
Does anybody know why
console.log(new UserFlagsBitField(user.flags.bitfield).toArray());```
Only outputs ``[ 'HypeSquadOnlineHouse3' ]`` even tho I have multiple badges
why are you using bitfield?
Can't you just do user.flags?
I think
I don't know JS so I'm assuming a lot right now
I'm not sure why it only gives that 1 flag though
maybe you have to fetch the flags and await the result
nope, same result.
Just the first singel badge
try ```js
await user.fetchFlags()
same result, im going crazy
is anybody here familiar with the command framework lamp?
🪔
Using 1.16.4 Paper btw
What's the best way to get an item name on how it'd display to the client (English)?
It's not server-side since it uses translatable components iirc so is the best I can do is get the item name, replace _ with , and capitalize it? although the issue with this is that some of the names aren't very good - such as Cooked Beef (COOKED_BEEF) vs Steak
Or I guess I don't need to know the item name but is there a way to get the TransatableComponent for the item?
What's your end goal? Send it to a MC client? Log it in console? Send it to Discord? Save it in an internal log?
at dkim12345
Well there is also this https://jd.papermc.io/paper/1.16/org/bukkit/inventory/ItemStack.html#displayName()
But that is the one with the [] and like with the italics (I think?) and it's coloured depending on the item rarity etc
send it to mc client
both don't exist on 1.16.4 but there's getI18NDisplayName() (why is it named like that??????)
would that be the the displayName() but on 1.16.4?
the the
the
dunno
oh it does
the server actually has the lang file
assets/minecraft/lang
(well only English)
why .4 lol
can't use adventure since the server owner is on 1.17 iirc and that adventure version doesn't support minimessage
getI18NDisplayName works perfectly tho
it returns the english name
why not use 1.17 API then 
that adventure version doesn't support minimessage
it has missing classes
so if I were to use 1.17 API, I'd have to make sure not to touch any of the API which has adventure
since I'd have to shade & relocate adventure
which includes displayName() from above
Hello, I was wondering how I can replicate item I'm hovering over in the screenshot (there is no preview). https://i.ibb.co/ZNzbxVJ/ss.png. I've managed to remove the meta's display name, but it still shows where the area where the display name was. A potential solution is just having 1 line in the displayname name and 1 in the lore, but it just looks really bad.
What's it look like with 1 in the displayname and one in the lore?
I'm pretty sure that's the only way to do this
I've checked ingame, and the font size is the same
so I'm assuming there is some way to accomplish it.
_ _
yeah, gimme a sec
👍
Yeah it's probably a font difference since I don't think bolded letters look like that either (and the arrows are a bit different)
Use 1.17’s adventure and shade minimessage 4.2.0?
doesn't work
it requires latest (or a newer) version of adventure
Shading an older version of mini doesn’t work?
iirc minimessage isn't that old
so there isn't an available version
unfortunately
or actually the server owner removed a bunch of their servers so I'll ask again
all older versions of minimessage were snapshots because the lib wasn't finished yet
minimessage bad?
shut up emily
u3u
xoxo
probably cache the data when the player logs in in async event
into like a Map<UUID, PlayerData>
and also classes should be NamedLikeThis
notLikeThis (playerStorage)
so maybe Map<UUID, PlayerStorage>
It should be AsyncPlayerPreLoginEvent btw
you want to run it async
so that event should work
just remember to update that cache whenever setting stuff to the database or else it's gonna desync
is it at all possible to have pitch on an armorstand's head?
Location#setPitch doesn't seem to change the actual rotation of the head
so i just need to convert the dir vector into that right
Okay bois, here I am again 😎 idk why, but I am getting this error here: https://paste.helpch.at/ezupihokax.rb
I already had it before, and also got told it was a corrupted jar, so I recompiled it, didn't change anything... recompiled again, nothing. Restart Intellij, cause why not, compiled it, same thing. I am legit confused.
Since last time I had this issue, recompiling worked.
Now it doesn't
usually whenever i have that error
its bcause i didnt wait until gradle properly finished the compiling
how do I know it didn't finish?
skill issue
Possible Solution Found:
The plugin (or program) you are trying to use was compiled using a newer Java version than the one you using.
To find what version you need, start from 52 which is Java 8 and for example, 60 is Java 16. (8 + 8 = 16 => 52 + 8 = 60)
Barry's solution finder is still in BETA and will make mistakes.
worked
@fringe spruce you got dms disabled
I have tried reloading gradle, everything, nothing is working 💀
lets see if it works
having trouble checking if plugin is enabled because there are two plugins with same name Bukkit.getPluginManager().getPlugin("Quests");
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
if (plugin.getName().equalsIgnoreCase("Quests")) {
// Do stuff
}
}
if you need a specific one you're probably best checking authors
yes, just not sure how to check for authors
Plugin#getDescription().getAuthors()
wack
ive been scammed
declaration: package: org.bukkit.plugin, class: PluginDescriptionFile
Thanks, I figured out a work around, but would like to go back to how it was setup in the first place
no need, just change plugin.yml, no?
hi, so i have a bunch of yml files in my resources directory of my plugin
i want to get one of those yml files (file A), turn it into a yamlconfiguration, and then loop through each key
in the loop, it will set the value of the same key in another yamlconfiguration (file B), effectively copying the contents from the first yamlconfiguration to the second
what i want in the end: YML file A's (from plugin resources) values are set in YAML file B without removing the other keys/values in YAML file B
im struggling with getting the yamlconfiguration from the plugin's resources
ping me if u reply
There can be two plugins with the same name?
yes but one just wont load lol
Ambiguous plugin name `LuckPerms' for files `plugins/LuckPerms.jar' and `plugins/PluginDownloader-1.0.0.jar' in `plugins'```*just set `name` to `LuckPerms` for my own plugin and also ran the actual LuckPerms*
just noticed the apostrophes are different 💀 (first one is `, second one is ')
this is what i have so far:
final URL url = getClass().getResource("/configs/test.yml");
if (url != null) {
logger.severe("ONE: " + YamlConfiguration.loadConfiguration(new File(url.getFile())).saveToString());
} else {
logger.severe("TWO: URL is null");
}````configs/test.yml`:```yml
test: true```
when it logs ONE, its just empty, so i think something is going wrong with YamlConfiguration#loadConfiguration(File), im just not sure how to figure out what
Yeah I've seen that in a lot of places but idk why 🥲
ok i ran some more tests
specifically:
try {
logger.severe("ZERO: " + Files.asCharSource(new File(url.getFile()), StandardCharsets.UTF_8).read());
} catch (IOException e) {
e.printStackTrace();
}```
it fails with this exception: java.io.FileNotFoundException: file:/home/container/plugins/PluginDownloader-1.0.0.jar!/configs/test.yml (No such file or directory)
you can't represent it as a File
iirc
you gotta use an InputStream
Plugin#saveResource -> new File(Plugin#getDataFolder, file) -> YamlConfiguration.load(file) ?
im trying to avoid saving it
cause then afterward i gotta deal with deleting the files
like Class#getClassLoader().getResourceAsStream
theres URL#openStream
just use this
idk if the url method works and unless you want to test
you can use this
😃
nono nvm ill use that
😃 😃 😈
now i have to figure out streams 😭
They’re sort of similar to rivers
oh hi motf
what a strange coincidence, im making my own pluginchecker >:)
no not update checker
Hi
oh
motf made me this plugin a bit ago: https://github.com/Fisher2911/PluginChecker
but now i know how to code, so im making my own except mine will download the plugins (instead of just checking if they exist)
Wow that was over a year ago
i cant believe i had to have someone else make that for me 💀
yeah now look at me im like 100000x better than u!!!!!! (jk pls no hurt 😭)
it's
Yes
It is
omg
@dark garnet Too many emojis.
😭
anywho, how the heck do i turn this inputstream into a yamlconfiguration 🤪🤪🤪
Why are you using input streams?
idk kotlin told me to
kotlin?
Why not just files?
yea the language
its not working for some reason
Spigot already has a YAML library you can use
What’s your code?
this
YamlConfiguration config;
try (final Reader reader = new InputStreamReader(MyClass.class.getResourceAsStream("/poo.yml"))) {
config = YamlConfiguration.loadConfiguration(reader);
}
oh
you can't get a File of something from inside the jar
i forgot YamlConfiguration#loadConfiguration(Reader) existed 
this is what i was thinking of
I forgot about /
so i just told him to use classloader and getResourceAsStream
I mean there's also FileConfiguration#load(Reader) lol
which ig does similar thing anyways
o i have question about FileConfiguration, it can represent any type of file correct?
like .properties
wait no there isnt
yes there is
i dont have it, only createPath
It most definitely does exist
this works btw ty
I'm looking at it right now
what?!?
what library
bukkit
what?!??!?!
🥴
I never said it was
YamlConfiguration extends FileConfiguration
what can i use for non-yml files tho
?

gson is built in right
sure
jackson my beloved
about what now?
you must be delusional
B.A.A.S - Too many caps!
No need to shout.
Barry's Anti Abuse System | v1.4.7

of course you did
:(
moderation bypass may lead to punishment
what are you talking about
#staff-logs
kotlin != emily
it sucks when you forget to close resources in settings.gradle.kts
woah cmon emily
putting a big commit and naming it only part of the commit
wow
oh it's only 29 modifications
it looked a lot bigger
what's so big about it?
many files
= big
https://github.com/dkim19375/Bedwars/commits/master
when your entire commit log is renovatebot
😌
renovatebot is awesome
everyone should use it!!
fuck no, I don't want my email inbox spammed by that shit
gmail automatically flagged github as spam 💀 💀 💀
guys it work :)
/**
* Transfer the file from the plugin to the server
*/
public void transfer() {
// Get the file's InputStream
final InputStream stream = getClass().getResourceAsStream("/configs/" + path);
if (stream == null) {
PluginDownloader.logger.severe("&4" + path + "&8|&c File not found!");
return;
}
// Transfer values
try (final Reader reader = new InputStreamReader(stream)) {
final YamlConfiguration yaml = YamlConfiguration.loadConfiguration(reader);
yaml.getKeys(true).forEach(key -> config.set(key, yaml.get(key)));
config.save(new File(PluginDownloader.pluginsFolder.getParent(), path));
} catch (IOException e) {
e.printStackTrace();
}
}```
now i have new issue :(
i dont know how to get like a list of all the files in the jar file (resources)
nvm i figured it out :)
yw
ok now new issue
so ive successfully set up both transfer processes for .yml and .properties, but im struggling with .png (since its not a text file). how do i copy the file using Reader onto the server?
github copilot told me to do this:
private void png(@NotNull Reader reader) throws IOException {
final byte[] buffer = new byte[1024];
int numRead;
try (final FileOutputStream output = new FileOutputStream(file)) {
while ((numRead = reader.read(buffer)) > 0) output.write(buffer, 0, numRead);
}
}```but there were some issues with it (`Reader#read(byte[]` doesnt exist and when i just used `Reader#read` it broke)
Question.. Do you have these files inside of your resources folder of your jar?
if so you can use JavaPlugin#saveResource() lol
which copies any resource from your resources folder that you want into your plugin folder (atleast it works for YAML and property files, never tried it with pngs, but it should)
Ig for the png it’d be fine to use that (since I’m just copying the entire file, no keys/values to worry about), I’ll see if it works
@dark garnet remember to do this later
You have to check if that plugin has an API and cancel its events if it has any
Just wondering if anyone knows how to get an itemstack compound tag without use of NMS
Your event priority is on lowest, event priority is in complete reverse
wait
i might be stupid
yeah that is actually one of the worst event apis ive ever seen
or at least wikis
Yeah i think you need to try and stop the telepathy event from actually firing to get it to work
Yeah telepathy wont trigger the EntityPickupItenEvent because the player isnt picking up the item with telepathy
unless it manually fires that event which it probably doesn't
if it did, itd detect it
i think maybe your best chance is EnchantActivateEvent?
that event is inside the api from what i can see
I can see in the AEAPI class it has a SkipEnchantActivateion(UUID<AEnchantmentType) maybe?
so maybe onBlockBreakEvent, if item is filtered, skipEnchantActivation
working with plugins that have garbage apis is mostly just about finding the most jank ways around it
to my knowledge these are the two different methods but obviously nms is inconsistent as fuck
gotta try to do it without nms or adventure api
Paper has a method for it 
getAsString or whatever
check javadoc
Reflection it is then
woo 
Spigot doesn't offer api for alot NMS, Then they complain when you use it when their API doesn't have methods to access what you need lol
Jokes on y'all still haven't fixed my jar corruption problem lmao
literally someone help
Y did u reflectively call tostring lol
Nvm
be quiet 300/month
ok this wont work unfortunately:
The resource is saved into the plugin's data folder using the same hierarchy as the .jar file (subdirectories are preserved).
dont wanna deal with moving the file after its saved, just wanna save it straight to where it should be
How would I change the font in a Title?(java)
A) change entire game font
B) create an alphabet of characters that u want to use and save them as images. then put together those imgs to create the string u want
ik B is possible somehow with like unicode characters and resourcepack stuff but im not 100% how
no matter what you're going to need a custom resource pack
you can either change the general font or use unused unicode characters and set those to your custom font
I don't touch resource packs so I don't know exactly how to do it like srnyx
I think I figured it out thnx. It is some resources pack stuff.
probs shouldve mentioned this, just expected it to be known 💀
I mean the title is just a component, and components can have fonts specified to them
Obviously the client needs to have the font for which you need a resource pack but that's far easier than hacking with unicode shit lol
ah I didn't know there were different font options
since minecraft iirc only has default font?
o
the uh one for enchantment table stuff
oh maybe
is it possible to use some sort of any hoe syntax instead of checking for each type of hoe
That oddly sounds sus
Material#name endsWith("_HOE")
does anyone know how to launch a player in a boat properly? It seems like boats are very limited to how velocity and teleporting works.
I've kind of done it, but sometimes it doesn't launch the player all the way up into the sky and launches them half and then glitches straight back down.
Vector currentVelocity = /*entity.getVelocity*/ new Vector(0.5, 0, 0.5);
boat.setVelocity(new Vector(0, 0, 0));
Bukkit.getScheduler().runTaskLater(BoatRace.getInstance(), () -> {
boat.setVelocity(currentVelocity.multiply(power).setY(1.5D));
}, 2L);
It works just fine if you're in a minecart by just adding a Y to the current minecart velocity. But unfortunately im creating a launchpad for a boat race.
I was thinking maybe i could trick the player they're riding a boat when they hit the launchpad, and make the server know its actually a minecart until they land again
you could add all hoes to a Set<Material> and then check if that set contains the material
or do gaby's method
MaterialSetTag.HOES.isTagged(material)
MaterialTags relieved
anyone know if theres a method to get level-name from server.properties?
or do i gotta read the file myself and then get the value
ping if reply
maybe Bukkit.getServer().getWorlds().get(0).getName();
i would say with certainty that the first world to load is the main overworld, theres no way afaik to prevent the default overworld from loading
if that feels too possible to be wrong then reading the server.properties files is the best way
ooooo, thanks!
getWorlds() is in order of when the world was loaded?
yes
i would assume
and afaik you cant load and worlds before the main ones afaik
Well there is this… https://jd.papermc.io/paper/1.19/org/bukkit/UnsafeValues.html#getMainLevelName()
But.. yeah 
Just don't use it.
why are those all in UnsafeValues?
A lot of those seem actually useful
oh wait
I was gonna mention getItemRarity but that's in ItemStack already
I'm assuming the others also have the methods in their own classes
but what about getMainLevelName?
Lmaoooo
Wtf is this happening
Both maps are the same
WrappableItem and wrapFile.getWraps
? extends A is not equal to ? extends A
What
? Extends A was the only way it would work with the API
List<? extends Number> l0 = new ArrayList<BigInteger>();
List<? extends Number> l1 = new ArrayList<BigDecimal>();
while both l0 and l1 have the "same" type parameter, you can't just put elements from one into the other
I see
generally, ? extends A is for producers only, it can't be used to consume something
I want people to have access to the map, without them having access to the internal class
And afaik just IWrappableItem didnt work
Can't try rn though
Welp
I mean those could be totally different implementations, you can't just put them in other maps
Well don’t write sich code
Ok...
fix it lol
tell me how
i'd rather not
How can i set a death message just for deaths from the / kill command ?

Hey, might be a weird question but ill try explain the best i can. Sorry if this is not in the right channel.
So I'm using a custom resourcepack (unicodes) to display custom images in chat and Tab, such as ranks.
However, this does make things look ugly if you decide to play without the pack. I noticed on a larger server that they do the same thing i do but if you dont play with the resourcepack it will replace with a different prefix in replace of the image such as Sr Mod (images below).. my question is how would i go about doing this?
You can force for them to accept the resource pack to join
server.properties require-resource-pack
but.. thats not my question im saying if they wish not to play with the pack, how can i replace the image with text
I mean I gave one solution to the problem which might be desirable
Sorry if i seem short, iv been trying to figure it out for days
Anyway, you can check the PlayerResourcePackStatusEvent for the acceptance status, and do a ton of ugly stuff based on whether they accepted it or not, how tablist/chat is displayed etc which is a huge pain in the ass to do per player
hm, never knew there was an event since i didnt look into that side of it too much, i will take alook! thanks
I remember spigot have a "command utils" class with some useful methods (at least when coding in Java), do you guys remember what is its name?
what kind of methods?
methods useful for command completion like a case insensitive "startsWith" that operated on a String list
StringUtil?
StringUtils bukkit
yeah! StringUtils that is its name, thank you
is there an event for item consumption (I'm thinking of firework rocket usage), something that is fired whenever bukkit decreases the number of an item by 1 in a player inventory?
i believe itd playerinteractevent
There might be a firework rocket event
Nvm there is only FireworkExplodeEvent which I highly doubt will be triggered when u use fireworks with an elytra (I assume u want to detect with elytra)
its the playerinteractevent
Hello,is there a way to get the drops of Nether warts ?
its empty and its the only block which the collection is empty
Does anyone know how to remove the /plugins command from users?
isn't it a permission?
bukkit.command.plugins
it's given to all players by default
but you can set it to false
I'd recommend doing the same with bukkit.command.help
Sweet. I’ll try it. Thank you!
👍
an mc client question: how would u set it up so people could login to their accounts inside the client, ie lunar etc.
Anyone know how to use LP and essentials to show tags & the prefix for the rank using LP, essentials, & deluxetags
There is no time to wait! Ask your question @proud hound!
In other servers I can’t send images or videos how do I resolve that
well in this server for example you have to be at least tier 1 or 2
I don't remember which
I think tier 2
it depends on how the server owner configures the permissions
also #off-topic for discord related help (note that this is a minecraft support server - not a discord support server so discord stuff should be in the off topic channel)
will javas garbage collection get rid of an object if a bukkit task is still running on it?
no cuz it only gets rid of objects that have no references or ones are in an island of isolation
also remember to disable bukkit.command.versions
it also allows u to see plugins
because of /about
Oh
Why are people so adamant about hiding their plugins lol
Because then people will see that they are cracked
An attempt to stop others from just copying the plugins they use.
that's dumb lol
It's just annoying, is all
also some people might look through the list to find potential ways to fuck with the server if some plugin has some sort of a bug and whatnot
all in all, there are more pros than cons of hiding the plugins
Yeah and Bstats make it easy to find what servers use bugged versions of plugins and then people go exploit those servers xD
What
Servers that have bstats or plugin query ports (or other means) can be searched for and you can find servers using versions of plugins that have bugs and you can exploit those servers.
what exactly is your point here?
he's arguing for hiding plugins
right... but if bstats is the problem then /plugins has nothing to do with it
yapps wasn't directly responding to the /plugins question
rather to emily's more open ended question
^^^
I mean if you install plugins that has known bugs and not take care of it, I would argue that is more of a problem with your maintenance scheme
How is it annoying? Players get to know what plugins you have -> players are able to know what things they can or cannot do, what kinds of features the server has they might not immediately advertise etc
Also, if your server can be copied by simply having the plugin list, and you worry about it, you have larger issues than that and your server is just a template not worth playing
Reminder if people really want to copy a server, they dont need a plugin list
They could probably find any spigot plugin you have just by trial and error and knowing the name of a custom plugin is not gonna do much
You can see what servers use a plugin trough bstats? Iirc the api only tells you how many servers are using it, not which
Hypixel copies exist and they use custom plugins in almost every place
the only public plugin I know they use is headdb
but thats only for the builders and not on the actual server itself
citizens
World guard & edit
I doubt they use publicly available builds of any plugin
Housing has its own worldedit like system in there
Not sure if bstats does for sure. (Thought it did)
Is the code of deluxemenus open-sourrce?
I'm looking to fork a copy that will include functions unrelated to GUI assembly
Also what is the scope of the plugins access beyond the bukkit server instance
specifically, will there be any complications with backend functions like sending obfuscated tasks to the kernel
bro what
what on earth
huh
lol
Hello Friends,
I need some Frontend help. Basically a Text I added is moving my whole navbar content to the left and I am not sure how to fix it. Could someone maybe tell me what I can do to fix it? https://play.tailwindcss.com/8CmWYbIFhB [You may need to move the code section to the left to see it]
Thanks
Is minestatus down for anyone else too?
what do you want it to look like?
anyone know how to check if a chunk contains a structure, in a blockpopulator?
basically want to just not do anything in that chunk if it contains a structure
I actually did something similar to this recently, basically what I did was check if a chest has a loot table, but that won't work if the chest has already been opened
(This wasn't with a block populator though, so idk if you could convert it to work with that)
yeah that wouldn't work
not all chunks in a structure have chests
might just have to go through all the blocks and check if they're not grass, stone, etc
it must be possible though
even if it means using nms
since it works for the end structure (achievement)
idk what its called
How did you do it without nms?
L45
Oh nice, I guess it’s a bit easier because you only have to check in the populator and not after the chunk has already been created
yeah was just hoping there'd be some way to see if a structure was in the chunk already
That would be very nice
what is that @wheat carbon
Did you fix it? Otherwise when I’m at PC I can help
Like this, so the navbar itself is centered. The Text, in this example "Test", should still be on the right side tho, without moving the whole navbar to the left
unfortunately not
Has anyone here user react-native? If so, then why is this popping up?
It is inside of a class component constructor
to give you an idea
thats how I'd do it quick and easy
Cool I will take a look when I am home, is this just playground you created or did you just "fix" my solution
a playground
I’m working on a vehicle plugin. What is the best way to create smooth movements for the vehicle? I have a way in mind which is to change its velocity.
Velocity is a good way to start. But with players its hard to keep smooth movements. (in relation to the players pos)
lil plugin i'm working on
trying to get back in coding groove
cuz uhhh
yeah
bit rusty after over a year of not coding
weak
anyone here can help me with my question i asked in #general-plugins pls ?
noone 😦
This is #development, most of us here have little to no knowledge regarding DeluxeMenus, which is why there are separate channels for the different kinds of support
true
🤣 Ikr
Id rather do anything code relate than memorize 50 pages of theory until monday LOL
Idk how people can finish uni in these conditions
kotlin = is typing
?
?
stop that right now
u mad? 
😡
Custom models?
Cause if so, you could send packets of the player holding/wearing an item that uses a custom vehicle model (or u can’t, idk, I’m not great with packets or resource packs)
Mysticat did something similar when making the player for his 2D Minecraft video
java.lang.IllegalArgumentException: Invalid UUID string: what this be?
how can an uuid be invalid?
"sex" is not a valid uuid string
16:29]Brister Mitten: "sex" is not a valid uuid string is not a valid uuid string
the issue is that the uuid it's getting is literally an uuid
lol
not sex
well then please provide the context rather than just saying the error message
good point. 🤔
so
{"data": {
"balance": 0,
"last-join": 1670008885057,
"uuid": "03cbffb2-3027-4816-9333-4690b4bc7a01"
}}
``` this is currently stored in a json file
and when deserializing I am getting the uuid string and using UUID.fromString() and then creating my object
Show code


