#help-development

1 messages · Page 633 of 1

inner mulch
#

https://prnt.sc/CFJruN8fA4lD
why does this not work

                    SocialPlugin.getInstance().randAuswahl.RandSelection(player, "Auswahl: Rand");
                    SocialPlugin.getInstance().hashMap.replace(player, "Rand");
                }```
kind hatch
#

I mean, I run Linux Mint 21.2 with several java versions installed and it compiles just fine for me.
I run BuildTools with Java 8 manually if I ever need to build older versions.

kind hatch
inner mulch
inner mulch
#

PDC what?

kind hatch
#

You should be using the PDC anyways to compare custom items. At least it makes everything easier to work with.

#

?pdc

wet breach
#

well its either that or their methods don't respond with something?

inner mulch
#

the stuff after the if sentence works, but apperently the if sentence is false

#

every time i click it

cinder abyss
#

Hello, how can I make a natural brightness for my block display ?
I tried this :```java
public static Display.Brightness calculateBrightness(Block block){
byte max = Collections.max(Arrays.stream(BlockFace.values()).map(face -> block.getRelative(face).getLightFromSky()).toList());

return new Display.Brightness(max, max);
}```But the result is not really accurate

inner mulch
#

doesnt it work if you dont set the brightness at all?

young knoll
#

Yeah just leave it default

narrow flare
#

I have a question about hypixel the box is a customHead on an armorstand?
I made a custom head on an armorstand and it is smaller than the hypixel custom head why?
#help-development message

narrow flare
#

1.19.4

inner mulch
#

why not use displayitem entity?

#

you can change the size on this one

modest bolt
#

is there a way to run a task from inside itself?

#

this.runTask() results in an illegalstateexception which makes sense

inner mulch
cinder abyss
#

so I got a black display...

narrow flare
#

with that ?

        item.setPickupDelay(Integer.MAX_VALUE);
        item.setVelocity(new Vector());```
hybrid spoke
inner mulch
narrow flare
cinder abyss
pure dagger
#
  1. How to get advancement title (like "Diamonds!" or "Stone Age")
  2. Why doesnt advancement.getDisplay(); work?
inner mulch
cinder abyss
#

'cause there is a block inside

young knoll
#

Ah

#

Don't have a block inside then?

young knoll
#

Use a transparent block then

cinder abyss
#

I want to make a custom block using customModelData

cinder abyss
young knoll
#

okay?

cinder abyss
#

for example

cinder abyss
# young knoll okay?

Here is the results :java System.out.println(max);// 0 System.out.println(block.getRelative(BlockFace.UP).getLightFromSky());// 15 System.out.println(block.getLightFromBlocks());// 0 System.out.println(block.getRelative(BlockFace.UP).getLightFromBlocks());// 0 System.out.println(block.getLightLevel());// 0 System.out.println(block.getRelative(BlockFace.UP).getLightLevel());// 15And here is my block :

nimble oxide
#
[19:39:50 ERROR]: Error occurred while enabling HytteMiner v1.0 (Is it up to date?)
java.lang.NullPointerException: null
        at com.marqus.hytteminer.HytteMiner.onDisable(HytteMiner.java:77) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:323) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at com.marqus.hytteminer.HytteMiner.onEnable(HytteMiner.java:29) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:407) [patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:359) [patched_1.8.8.jar:git-PaperSpigot-445]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:318) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:203) [patched_1.8.8.jar:git-PaperSpigot-445]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) [patched_1.8.8.jar:git-PaperSpigot-445]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_312]

Whats the problem here?

tender shard
#

line 77 in HytteMiner

slate mortar
cinder abyss
slate mortar
#

fuck you alex

#

i had one job

cinder abyss
tender shard
#

it's onEnable not onDisable

#

oh wait

#

huh

#

why does it call onDisabe while enabling

slate mortar
#

alex please, go sleep

tender shard
#

setEnabled -> onDisable

cinder abyss
#

so it's onDisable

tender shard
#

onEnable calls onDisable lol

slate mortar
#

line 77

#

wait what

#

oh my

cinder abyss
slate mortar
#

what did i just see

nimble oxide
#
package com.marqus.hytteminer;

import com.marqus.hytteminer.Commands.HelpCommand;
import com.marqus.hytteminer.DatabaseManager.DatabaseConnector;
import com.marqus.hytteminer.License.AdvancedLicense;
import com.marqus.hytteminer.Listeners.DbStatementListener;
import net.luckperms.api.LuckPerms;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;

import java.sql.SQLException;

public final class HytteMiner extends JavaPlugin {

    public boolean dbStatement;
    private DatabaseConnector database;
    private static HytteMiner instance;

    @Override
    public void onEnable() {
        saveDefaultConfig();

        //HolographicDisplays implements
        if(!Bukkit.getPluginManager().isPluginEnabled("HolographicDisplays")) {
            getLogger().severe("HolographicDisplays er ikke installeret eller aktiveret");
            getLogger().severe("Dette plugin vil blive deaktiveret");
            this.setEnabled(false);
        }


        //Listeners registrering
        getServer().getPluginManager().registerEvents(new DbStatementListener(), this);

        //License Registering
        if(!new AdvancedLicense(getConfig().getString("license"), "http://license.marqusdev.dk/verify.php", this).register()) return;

        // Main instance
        instance = this;

        // Database
        database = new DatabaseConnector();
        try {
            database.connect();
        } catch (SQLException e) {
            dbStatement = false;
        }


        // load
        getCommand("hytteminer").setExecutor(new HelpCommand());


        // Config fil

        // String car = getConfig().getString("car");

        // LuckPerms API
        RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
        if (provider != null) {
            LuckPerms api = provider.getProvider();

        }

    }


    //main instance method
    public static HytteMiner getInstance() {
        return instance;
    }

    @Override
    public void onDisable() {
        // database stop connection
        database.disconnect();


    }
}
slate mortar
#

?paste

undone axleBOT
cinder abyss
#

@nimble oxide database is null

icy beacon
#

when a plugin gets disabled in onEnable, and something in onDisable uses a value that may not have been yet initialized (because onEnable did not go through), an error will arise in onDisable

nimble oxide
#

Waait, it worked without before

tender shard
#

what's that?

nimble oxide
#

its my database

slate mortar
tender shard
#

no, what's this huge piece of code?

#

we asked for line 77

slate mortar
#

i pasted it

icy beacon
nimble oxide
#

so whats the problem?

cinder abyss
#

there isn't any database connected

nimble oxide
#

but it worked out before tho without any database information?

icy beacon
#

if(!new AdvancedLicense(getConfig().getString("license"), "http://license.marqusdev.dk/verify.php", this).register()) return;

slate mortar
#

i mean, it shouldnt be null tho

icy beacon
#

why are you returning

#

instead of shutting down the plugin

rare rover
#

Is there any "rules" on code that runs every tick?

icy beacon
nimble oxide
slate mortar
#

doesnt look like its supposed to be null on disable lol

rare rover
icy beacon
rare rover
#

I'll be looping 100000 times every tick actually

icy beacon
#

if the license is not valid, the method will not initialize the database

nimble oxide
cinder abyss
#

@nimble oxide you are disabling your plugin before initializing your database

nimble oxide
#

its not hooked up with the database bro

icy beacon
#

because you early returned

cinder abyss
#

that's why database is null

icy beacon
slate mortar
#

oh yea

#

maybe

nimble oxide
#

wtf

cinder abyss
slate mortar
#

does your license stuff return?

nimble oxide
#

cmon let 1 people help, 5 people is fucking frustrating a confusing

cinder abyss
icy beacon
#
if(!new AdvancedLicense(getConfig().getString("license"), "http://license.marqusdev.dk/verify.php", this).register()) return;
database = new DatabaseConnector(); // THIS LINE IS NOT FUCKING CALLED IF THE LICENSE IS INVALID
kind hatch
#

Or move it to the @onLoad() method.

tender shard
#

this license stuff isnt allowed on spigot anyway

nimble oxide
#

its for my own server

tender shard
#

also don'T you have an ssl cert?

nimble oxide
#

if people gets my plugin

remote swallow
#

oh its him

slate mortar
#

there's everything wrong

cinder abyss
nimble oxide
#

it works fine.

slate mortar
#

and is disallowed by the rules

nimble oxide
slate mortar
#

like i said, everything wrong right there

cinder abyss
nimble oxide
slate mortar
#

i mean

#

yes, but i suppose that' what you wanna do, no?

icy beacon
# icy beacon ```java if(!new AdvancedLicense(getConfig().getString("license"), "http://licens...

instead of returning, do this:

if(!new AdvancedLicense(getConfig().getString("license"), "http://license.marqusdev.dk/verify.php", this).register()) {
  Bukkit.getLogger().severe("The license is invalid");
  getServer().getPluginManager().disablePlugin(this);
  return;
}

however even THIS is wrong, because you STILL!!!! have not initialized your database if the license is invalid. so instead, initialize the database BEFORE!!!!!!!!!!!!!!!!! you check for license.

slate mortar
#

why would you make a license system otherwise lol

nimble oxide
#

Please wake up.. Jeez, I said it was for my own server, if people gets my plugin, so they cant use it-

#

Thanks for the help though, but 5 people fkn saying something different is extremely confusing.

icy beacon
slate mortar
#

lol

cinder abyss
nimble oxide
icy beacon
#

yeah so what's the point

nimble oxide
#

Just an extra security lol

slate mortar
#

theres no point

icy beacon
#

securing a jar file 😭

nimble oxide
#

its not everyone who knows how to decompile a plugin?

slate mortar
#

what?

#

bro

icy beacon
#

if someone went to the lengths of getting your privately stored plugin

#

they probably know a bit about decompiling

slate mortar
#

welcome to the internet

nimble oxide
#

yeah sure, but they would had to get it through my file manager first lol

slate mortar
#

you just open the jar in this program, and they got your code lol

slate mortar
cinder abyss
nimble oxide
#

why are you caring so much about my stuff, jeeez,

icy beacon
slate mortar
#

there are web tools? fancy

icy beacon
nimble oxide
#

yeah but that is useless

cinder abyss
icy beacon
#

i feel like you already understand that you don't need a license system but you are arguing for the sake of the argument

cinder abyss
#

(ZBLL will get angry)
(grrr)
(🦁)

slate mortar
nimble oxide
#

It's alright, if you say so, I cant change yours opinion.

slate mortar
#

as we can see here

icy beacon
cinder abyss
#

WELLL

#

so

slate mortar
#

oh

cinder abyss
#

dev help

slate mortar
#

my bad

#

i'm garbage lol

icy beacon
cinder abyss
nimble oxide
icy beacon
#

i bet you aren't even obfuscating it (spoiler: obfuscating it will probably slow them down another 45 seconds)

cinder abyss
#

I want the display's brightness to be natural

cinder abyss
nimble oxide
#

Thanks, bye.

icy beacon
#

checks out

#

(jk i'm also 15)

cinder abyss
#

and ????

nimble oxide
#

Wtf is your problem, you really got a 10 year olds mentality, holy.

cinder abyss
#

15 yo, no problem, he wants to code

slate mortar
slate mortar
#

either your license-check or you holodisplay stuff is the reason

nimble oxide
#

might be cause the license wasnt at the bottom

cinder abyss
#

so do that and stop arguying

slate mortar
#

one of them fails, and then returns/disables the plugin
can't say which one, but as we were seing an error about "onDisable", i'd say it's your holodisplay shit

nimble oxide
cinder abyss
slate mortar
#

:(

nimble oxide
#

oh yeah, put it at the top

tender shard
#

lol nobody wants to steal code from a plugin that doesn't even enable

#

I mean cmon, it's a simple NPE and it exactly tells you in which line the problem is

slate mortar
#

oh my holy

icy beacon
#

i wonder if he blocked me 🤔

#

gonna keep working

nimble oxide
#

I didnt

remote swallow
#

if you need to come here to fix a simple npe, i dont think anyone would want to steal the code

#

let alone its on 1.8

slate mortar
#

lemme guess

#

you're using a paper server

nimble oxide
#

Not working tho lol

remote swallow
pure dagger
#

wha

slate mortar
#

are you using a paper server?

#

cuz paper has a bug with spigot plugins, where the advancementdisplay leads to an NPE, if that's your issue

nimble oxide
#

yeah

kind hatch
# pure dagger .

Because you need to use AdvancementDisplay#getTitle()
Not just #getDisplay()

nimble oxide
#

im on paper

slate mortar
#

what

#

didnt mean you lol

pure dagger
#

im not using paper

nimble oxide
#

oh its for Shadow

slate mortar
#

if you want the title

#

sec

#

?jd

slate mortar
#

you want AdvancementDisplay#getTitle

pure dagger
#

why cant i String.valueof this advancementDisplay

#

why error

slate mortar
#

wha...

#

you know java syntax right?

slender elbow
#

i mean, you can, it just won't give you anything remotely useful

slate mortar
#

okay

pure dagger
#

yeah but its giving some weird error

slate mortar
#

what do you want to achieve

pure dagger
#

i think

#

nothing i was just testing it

slate mortar
pure dagger
#

?

#

String.valueOf(advancementDisplay);

slate mortar
#

oh nvm

#

i misread it then ahhaahaha

#

but yea, it still wont give you anything useful

#

probably itll give you smt like AdvancementDisplay@225i5v or smt

slender elbow
#

get the display from the advancement, then get the title from the display

#

getDisplay, getTitle

slate mortar
#

getdisplay isnt a thing

slender elbow
#

on advancement

slate mortar
#

ah nvm

icy beacon
slate mortar
#

but if you want the actual advancement title (as it shows in the advancements-gui) you usually want to use the AdvancmentDisplay

#

tell me smt new

icy beacon
#

xD

remote swallow
#

it looks cool

icy beacon
#

oh

#

Rize

remote swallow
#

the timer one

icy beacon
#

i don't think it's free but i got 3 months from coding with lewis link

remote swallow
#

smh

icy beacon
#

xd

#

idk what i'll be doing after the 3 months because i can't pay internationally and rize really helps me be productive

remote swallow
#

how much data do you require

icy beacon
#

wdym?

remote swallow
icy beacon
#

oh

#

well i love the tracking that it does

#

and break/unfocus reminders

#

session timer? eh, i have wakatime

#

e.g. yeah i'm loving it

remote swallow
#

seems like it might make me code more

#

when actually coding

icy beacon
#

and this

icy beacon
young knoll
#

Is this just fancy wakatime

remote swallow
#

pretty much

icy beacon
#

with some gimmicks

#

wakatime is more for tracking specifically working on my projects

#

rize is overall time spent at the pc, with break reminders, and it monitors what i do exactly

#

e.g. see the screenshot above

pure dagger
#

some weird error

remote swallow
pure dagger
#

NoSuchMethodError

#

whats going on

icy beacon
tender shard
slender elbow
#

mfw compiling against paper but running spigot duke

kind hatch
pure dagger
#

what :c

slender elbow
#

full stacktrace?

tender shard
#

instea of only giving us one word out of the probably 30+ lines long stacktrace, you are supposed to send all 30 lines

quaint mantle
#

s

quaint mantle
remote swallow
pure dagger
slender elbow
#

advancementdisplays didn't exist before 1.19

slender elbow
#

you're running 1.18.2 apparently

pure dagger
#

reeeeaally

slender elbow
#

yes really

remote swallow
pure dagger
#

so how do i do that 😦

icy beacon
#

:>

remote swallow
#

enjoy the month if it actually gave it you

icy beacon
slender elbow
#

run 1.19+ server if you want to use advancement displays

#

or use nms if you want to run 1.18

#

the world is your oyster

pure dagger
#

ok

#

thats badd

near mason
#

which packet to use to change the block state of BlockDisplays

icy beacon
#

or modify your spigot to include the advancementdisplay patches

pure dagger
#

cant i get this from the advancement message? because im doing it in advancement event

icy beacon
#

xD

pure dagger
#

thats probably a way

quaint mantle
icy beacon
#

they should sponsor me now. smh

quaint mantle
#

on fonam

icy beacon
#

words

#

without reading the code too thoroughly, i assume that if (userData == null) check fails?

pure dagger
#

kinular

remote swallow
#

this hurts

vast ledge
#

WHY

#

It hurts

remote swallow
#

i have to convert my 80% in config to an int removing the % to divide it by 100 to convert it back to astring so the double will accept it

vast ledge
#

Im not even doing it, but i still hurts

near mason
remote swallow
#

painful stuff

slender elbow
#

parseDouble(s.substring) / 100?

icy beacon
#

bungeecord: in ChatEvent, how do i get the sender's uuid? event#getSender() returns Connection which does not have that field

remote swallow
slender elbow
#

??

slender elbow
#

why do you need an int lol

modest bolt
#

this is a stupid question... I'm making a bleed effect, and it keeps on proccing itself

remote swallow
#

ignoreme

modest bolt
icy beacon
icy beacon
modest bolt
#

source as in the entity that dealt the damage?

icy beacon
#

oh wait nvm

#

but yes

#

you can do that too

modest bolt
#

but I still want the damage to belong to the player who applied the bleed

#

i was thinking how I can mess with metadata, but rn im just using it to implement the bleed timer

#

which is working pretty well, except 1 hit and u bleed forever lol

#

I want hits with a sword to always reset the bleed

austere cove
# icy beacon seems right ty

idk if that event can be called with a Server instance as connection (which doesn't have a unique id).
Same goes for PendingConnection but that implementation does have a #getUniqueId() so you might as well cover it ig

icy beacon
#

i'll find out when testing xD

nova notch
#
ItemStack sword = new ItemStack(Material.WOODEN_SWORD);
        net.minecraft.server.v1_19_R3.ItemStack nmsSword = CraftItemStack.asNMSCopy(sword);```
`Cannot resolve symbol 'v1_19_R3'`
Why is it specifically that part that isnt working?
icy beacon
#

well you probably don't have that package

#

what do you have in your pom?

nova notch
#
            <id>spigot-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>```
```<dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.19.4-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>```
icy beacon
#

?nms

icy beacon
#

first of all use remapped

nova notch
#

ok

#

i just got it from a tutorial

#

guess its outdated

icy beacon
#

no, or yes, but using raw nms is pain, remapped makes it a bit less painful

modest bolt
#

any ideas on how to impl the bleeding thing?

icy beacon
#

you can add pdc to the player who's bleeding, and everytime you damage, call the damage method without a source

#

you say "you want the damage to belong to the player" what exactly do you want?

modest bolt
#

what's a pdc?

icy beacon
#

?pdc

modest bolt
icy beacon
#

well you want a source but what do you want from that source

#

you have a source, ok cool, now what?

modest bolt
#

well won't it display a death message if someone dies to the bleed?

remote swallow
#

no way

remote swallow
#

elgarl in a voice channel

icy beacon
eternal oxide
#

mis clicked

modest bolt
#

is there a way to put metadata on a damage event?

nova notch
icy beacon
#

you don't put it in your project

nova notch
#

what do i do with the folders it made then

icy beacon
#

run buildtools anywhere on your pc. it will automatically add it to your local repo

#

?bt

undone axleBOT
icy beacon
#

technically not on your pc though

remote swallow
#

why does this feel wrong

#

like very wrong

austere cove
#

what are you trying to do

remote swallow
#

exactly what it does, check if a config option is true and check if something equals run a method and return, if not lowercase the result and check if it equals

#

it works how it should it just feels wrong

austere cove
#

cos it's not that clean

@Override
public void handleChat(@NotNull AsyncPlayerChatEvent event) {
  boolean caseInsensitive = gameConfig.getBoolean("case-insensitive");
  String input = event.getMessage().trim();
  String answer = ...;
  if (caseInsensitive ? input.equalsIgnoreCase(answer) : input.equals(answer)) {
    win(event.getPlayer());
  }
}
#

doing chat games?

remote swallow
#

yeah

#

adding a new one

austere cove
#

I still need to update mine 👀

remote swallow
#

you have a chat game plugin?

austere cove
remote swallow
#

kek

austere cove
#

terrible code that I've been meaning to update

remote swallow
#

it has the exact same name as mine

austere cove
#

for years now

remote swallow
young knoll
#

Wow epic is copying

remote swallow
#

no

#

chances are this will work first time

#

im gonna say like 10

#

it didnt work

#

bc i didnt know how substring worked

nova notch
# undone axle <https://www.spigotmc.org/wiki/buildtools/>
[ERROR] Failed to execute goal on project Frontier: Could not resolve dependencies for project me.frontier:Frontier:jar:1.0-DEVELOPMENT: org.spigotmc:spigot:jar:remapped-mojang:1.19.4-R0.1-SNAPSHOT was not found in https://repo.papermc.io/repository/maven-public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of papermc-repo has elapsed or updates are forced -> [Help 1]```
i can put my whole pom in pastebin if needed cus idk whats going on
remote swallow
vast ledge
#

Look at my beautiful code

remote swallow
#

i fuckin hope that class doesnt exist after the player leaves the server

vast ledge
#

Laughs like a maniac

#

I like ram leaks

#

theyre fun

#

😄

remote swallow
#

can you guess the word

vast ledge
#

fuck this

#

cus u got annoyed?

#

or

kind hatch
remote swallow
#

it was wooden pickaxe

vast ledge
#

oh

kind hatch
#

Close

vast ledge
#

yea

#

pretty close

remote swallow
#

you could guess this right

vast ledge
#

Iron Di**o

#

Iron Pickaxe**

kind hatch
#

Igor Porridge

remote swallow
#

this isnt at all obnoxious is it

young knoll
#

tf

round finch
#

Can we stop English people using pik to describe pickaxe

#

Pik in Danish is pen...is

remote swallow
#

not distracting at all

vast ledge
#

def not

eternal oxide
round finch
#

Pic would make more sense

chilly hearth
#

E

eternal oxide
#

still not English

chilly hearth
#

Hey guys I back 😁😁😁

remote swallow
#

cant say i see many use pik

eternal oxide
#

pic is an abreviation for picture

round finch
chilly hearth
#

Can j pls use colors

#

U*

remote swallow
#

isnt it sendMessageEmbeds

opal juniper
#

Colours

remote swallow
#

yeah

#

the method

#

isnt it sendMessageEmbeds

#

not sendMessage

quaint mantle
#

Can YML files have multi line strings? Idm the <break> but visually it looks horid

kind hatch
#

Yes, but the syntax looks ugly.

quaint mantle
#

show

remote swallow
#
key: |
    "smthing"
#

iir

#

c

round finch
flint coyote
#

there's multiple ways

kind hatch
quaint mantle
#

And then when I use getString it returns a string or string list?
Im jsut looking for a string no string list

remote swallow
#

should become a single string

opal juniper
quaint mantle
#

like this?

remote swallow
#

use the method sendMessageEmbeds

#

not sendMessage

#

it will fix your error

quaint mantle
#

null > <none>

novel bay
#

Hey this is kinda long but I've got a question

I have a plugin where when a player dies they drop a knowledge book that is named "Soul (playername)". The plugin was coded for 1.19.2 and works perfectly fine in that version, but upon updating it to 1.20, the knowledge book is no longer named a "Soul", and rather it is named "Knowledge Book".

I've tried pretty much everything I can think of (which isn't alot), but I simply can't get it to work.

The plugin also allows you to use that soul item to make other items that harm the player that the soul belonged to, such as an ender pearl that teleports the other player instead of the person throwing it. But the crafting doesn't work anymore, and rather than giving a "Soul Pearl (playername)", it just gives an ender pearl.

#

does anyone know how I would fix this or even what is wrong

chilly hearth
#

?learnjava!

undone axleBOT
novel bay
#

I have no idea what that means

#

someone else coded it for me

#

but they aren't responding to me anymore

young knoll
#

?nocode

undone axleBOT
#

It’s hard to answer a programming question without code
Oh no! You ran into a problem. But no worries, people are willing to help, but first they need to see your code. This is because otherwise, they would be providing help based on guesses instead of concrete knowledge. Whether it be a compile error, runtime error, or an unexpected output, I'm sure that if you were to provide code, you'd receive a quick solution.

grim oak
#

was that to me?

young knoll
#

no

spare hazel
#
<dependency>
            <groupId>com.github.MilkBowl</groupId>
            <artifactId>VaultAPI</artifactId>
            <version>1.7</version>
            <scope>provided</scope>
</dependency>

this does absolutely nothing. any idea why?

kind hatch
#

Did you reload your pom?

hazy parrot
#

What are you supposing it to do

spare hazel
round finch
kind hatch
spare hazel
# kind hatch yes

when i reload maven, it happens in a millisecond. something shows at the bottom and disappears instantly

#

is that a bug?

remote swallow
spare hazel
#

jitpack

remote swallow
#

is jitpack down

tender shard
#

did jitpack ever work properly?

remote swallow
#

when it started probably

spare hazel
#

i had this dependecy downloaded

tender shard
spare hazel
tender shard
#

what do you expect it to do?

spare hazel
#

Load The "Economy" Class Properly

remote swallow
#

have you reloaded maven

tender shard
spare hazel
#
package com.amirparsa.hypixelutils;

import net.milkbowl.vault.economy.Economy;
import org.bukkit.plugin.RegisteredServiceProvider;

public class EconomyController {

    private static Economy econ = null;

    public static boolean setupEconomy() {
        if (HypixelUtils.getInstance().getServer().getPluginManager().getPlugin("Vault") == null) {
            return false;
        }
        RegisteredServiceProvider<Economy> rsp = HypixelUtils.getInstance().getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp == null) {
            return false;
        }
        econ = rsp.getProvider();
        return econ != null;
    }

    public static Economy getEconomy() {
        return econ;
    }
}
#

it worked on my other plugin

tender shard
#

which error do you get when you run mvn package?

#

also why do beginners always call their plugins HypixelWhatever

spare hazel
#

nvm maven reloading started working again
wait for a bit

spare hazel
#

And I Need Vault For Removing Half Of The Players Balance On Death

remote swallow
spare hazel
#

Everything Got Fixed

spare hazel
remote swallow
#

its still just copying a plugin

spare hazel
#

Hypixel Modifies The Server Software
And They Dont Use Plugins
And That Means Its Not Copying Plugins

remote swallow
#

i somehow doubt they would bake all of the stuff into the software

#

they modify the software to support versions, they still use plugins

#

or if you want, its called being unoriginal

spare hazel
remote swallow
#

no it really isnt

spare hazel
remote swallow
#

instead of having an api, they can use to also access other plugins, they get forced to use interals which half the time are a lot harder to work with

#

@echo basalt can even say that hypixel use plugins over baking gamemodes into the software, some of the features might be added to software

#

entire game modes arent

echo basalt
#

The proper easy solution is to just intercept item packets and add the lore

#

So you don't break item equality checks

#

Or have to do funky logic

#

And it also allows the ability to update the lore with server updates as there is no data conversion happening

echo basalt
#

You got literally no proof they don't use plugins

#

Fun fact: Hop in a hypixel loby and run //

#

It'll tell you that you don't have permission

#

They run worldedit in the lobbies

#

They also run a fork of citizens

#

The author of citizens has also said that hypixel devs used to chill around there and ask for help but have decided to make their own fork

#

They're also around in the arceon discord server

#

So quit spreading lies :)

#

And for further proof, they even mention other plugins in their dev blog

#

You should get familiar with || and &&

#

|| -> OR
&& -> AND

#

Here's a demo:
entity instanceof Bee || entity instanceof IronGolem

spare hazel
#

String oldDeathMessage = e.getDeathMessage();
will this call e.getDeathMessage() each time or just the time that its defined?

echo basalt
#

You call the method and assign its return value to a variable

#

So think about it

winter remnant
#

is there a way i can prevent xp orbs from spawning after breaking a specific block type

flint coyote
flint coyote
#

You can use the BlockBreakEvent since it inherits that method

cerulean yacht
#

So I thought you needed to actually keep updating your plugin in order for it to be seen on the resources page but you can just post resource updates every day without actually updating anything and have your plugin be on the first page of resources constantly?

flint coyote
#

Technically you could, yes. Having 100 versions with 200 downloads will look weird though. Also you usually provide a changelog - so you actually have to make changes

storm granite
#

Hey I want for when a player to click a component in chat, then it fills their input typing box with a string so they can copy it to clipboard

rustic grail
#

how can i trust a player upwards (cant find anything on the web)

flint coyote
#

player.setVelocity

rustic grail
#

ah noice ty

storm granite
#

it might be impossible

flint coyote
#

If you don't wanna copy it directly but let them copy it, then this is the way to go

echo basalt
#

COPY_TO_CLIPBOARD is a bit buggy with click detection from my experience

winter remnant
echo basalt
silent steeple
#

How do I make it so that when a player tramples a crop, they get blacklisted from the server, and whenever someone’s talks on chat unless I say their Minecraft ign and then say speak gets blacklisted too

echo basalt
#

my man

#

break your problem down

winter remnant
silent steeple
#

No I am making a server called SovietCraft

winter remnant
#

fear

echo basalt
#

Ideally you ask for help with a thing or two, not just saying "hey how do I make it so my plugin runs bedwars game?"

#

.

silent steeple
#

I don’t know how to get started

#

Bro I am not reading a 5000 character messages

echo basalt
#

You got a constructor in your javaplugin class

echo basalt
silent steeple
echo basalt
#

That's a short guide on how to ask for help and come to solutions faster

silent steeple
#

I have my listener

#

But what do I listen for

#

For the crop trample thing

echo basalt
#

What events are there related to trampling

silent steeple
#

Idk that’s what I’m asking

hazy parrot
#

You literally got answer

echo basalt
#

Look at NMS or research the docs

#

BlockFadeEvent

silent steeple
#

There’s no event???

#

Wtf

echo basalt
#

Are you blind

winter remnant
glad prawn
#

Say yes pls

echo basalt
#

learnjava moment

pseudo hazel
#

select the code and press delete

flint coyote
#

bruh

echo basalt
#

I can't with these questions today

silent steeple
#

Event*

winter remnant
echo basalt
#

🧑‍🦯

winter remnant
#

(i need to do some learnjava myself)

silent steeple
#

Oh it’s the BlockFadeEvent

#

That’s stupid

flint coyote
silent steeple
#

Is it not the CropTrampleEvent

winter remnant
#

that could probably work too

echo basalt
#

there is no CropTrampleEvent

winter remnant
#

:|

echo basalt
winter remnant
#

he mentioned it as if it existed

#

mb

silent steeple
#

I am going to use the CropTrampleEvent instead of the BlockFadeEvent

#

Thanks

echo basalt
#

Good luck

winter remnant
#

i should probably leave before i make an even bigger fool of myself

flint coyote
#

💀

echo basalt
silent steeple
#

?paste

undone axleBOT
hazy parrot
#

Getter on public static field hmm

echo basalt
#

I predict a "will this work?"

silent steeple
#

Can someone help

#

It’s not working

#

?

echo basalt
#

Yeah I'm done helping you

mortal hare
#

im tired of bs

echo basalt
mortal hare
#

how can i fix this

echo basalt
#

intellij dumb sometimes

mortal hare
#

is it with the recent update or what

#

it never happened to me

echo basalt
#

Happens more with the new UI from my experience

mortal hare
#

im using old one

echo basalt
#

Still happens on the old one

#

just invalidate caches and restart

#

Also make sure you imported list

silent steeple
#

I’m so confused rn

#

Why it’s not working

mortal hare
#

lemme update my intellij ultimate first

echo basalt
silent steeple
#

😭😭😭🤣🤣

echo basalt
#

monkey

silent steeple
#

I’m black…

#

Wow

#

Yeah ok man

mortal hare
#

Hi black im white

flint coyote
#

I thought you are dovidas147

mortal hare
#

to be honest im racoon

echo basalt
#

I'm illusion

#

aka snow white

silent steeple
#

Y’all racist in here

echo basalt
#

is that a question?

mortal hare
#

You're overreacting bro

lethal coral
#

what's the maximum plugin name length

mortal hare
#

we have no intend to harm

echo basalt
lethal coral
#

skript-non-playable-characters
this is going to be my plugin name

mortal hare
#

skript-npc lol?

lethal coral
#

it's already taken!

mortal hare
#

skript-npc-2

lethal coral
#

noooooo

#

I can't do that!

#

I have to be the first and the original

mortal hare
#

hexs-skript-npc

lethal coral
#

I really like skript-non-playable-characters

#

will that fit

mortal hare
#

i mean plugin names are strings

#

i dont believe they have limits

lethal coral
#

okay

mortal hare
#

apart from the int 32 bit limit

#

because they're internally stored inside the linear arrays

silent steeple
#

Skript is for noobs LOL

#

Just learn how to code

mortal hare
#

he's probably making an addon

lethal coral
#

I'm making a plugin for the noobs to access citizens and znpcs

mortal hare
#

to skript

lethal coral
#

^

mortal hare
#

skript allows you to add custom expressions and things

#

to skript language

#

via addons

#

and that's what he's doing

silent steeple
#

Skript is for noobs

mortal hare
#

Minecraft is for kids

lethal coral
#

I actually can't think of a better name

#

any suggestions dovid

silent steeple
mortal hare
#

skript-oblivion-npc

#

😂

lethal coral
#

where did oblivion come from

silent steeple
#

How do u set custom model data

silent steeple
#

Is it with ItemMeta

lethal coral
silent steeple
#

Idc

young knoll
#

it is

silent steeple
#

Ok thx

lethal coral
#

you're welcome

silent steeple
#

I was saying it to coll

#

Not u

mortal hare
#

i would name skript-oblivion-npcs

young knoll
#

Man hasn't heard of the javadocs

lethal coral
mortal hare
#

just for the memes

silent steeple
young knoll
#

Ah okay I won't answer next time then

#

No worries

silent steeple
#

No please do

pseudo hazel
#

the issue seems to come from your main plugin class though..

silent steeple
#

🐈‍⬛

#

@pseudo hazel

#

Only 6-8 weeks left

pseudo hazel
#

until what

silent steeple
#

I don’t know

pseudo hazel
#

then why did you say it

silent steeple
#

Shout out to the plates that are bowls too, my favourite type of kitchen utensil

sullen marlin
#

Sounds like it is bad at being one or both of those things

silent steeple
#

Nah u know them ones with a little curve at the edge

#

They r fire

#

It can hold soup while look like a plate

pseudo hazel
#

yes they can hold like 5 spoons of soup that gets cold instantly

#

best for noodles though

silent steeple
pseudo hazel
#

either start making sense or dont talk

silent steeple
#

Who tf you is with the bow tie on

#

I said pretty girls love Tyler

#

Your name isn’t Tyler

#

Go touch grass

#

Then speak on my name

#

U look like a geek irl

remote swallow
#

who is tyler

remote swallow
#

the name tyler gives me huge knobhead vibes

echo basalt
#

this dude is clinically insane

silent steeple
#

Fym

#

What is clinal Oy insane

remote swallow
#

you

silent steeple
#

Yeah ok bud

#

Get out

lilac dagger
#

my name contains the name tyler and i didn't even mean it

silent steeple
echo basalt
silent steeple
#

Fwickin geek

echo basalt
#

do you have a single thought going over your head?

silent steeple
#

Yessir 💯‼️

young knoll
#

Obligatory don't feed the trolls

echo basalt
#

obligatory I'm aware

silent steeple
#

@echo basalt you are a malfunctioning npc

echo basalt
#

blud swiped his library card at walmart

silent steeple
#

Nah u might’ve made the least funny joke of 2023

#

I’m not even trolling at this point

echo basalt
silent steeple
#

Robot

echo basalt
silent steeple
#

🤖

echo basalt
#

damn you didn't have to leak that pic

remote swallow
echo basalt
cinder abyss
#

Hello, how can I make a custom gui (with case at different positions...)

young knoll
#

?gui

#

aww

cinder abyss
#

thanks 😄

cinder abyss
young knoll
#

Ahh

#

Can you not follow that then?

cinder abyss
#

I founded it after posting my message

prime epoch
#
 File file = new File(Hcfcore.getInstance().getDataFolder().getAbsolutePath(), DB_NAME);
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                Hcfcore.getInstance().getLogger().log(Level.SEVERE, "File write error! (creating database)");
            }
        }

        System.out.println(file.getAbsolutePath());
        String url = "jbdc:sqlite:" + file.getAbsolutePath();
        this.connection = DriverManager.getConnection(url);```

23.07 23:25:20 [Server] [INFO] /plugins/hcfcore/hcf.db
23.07 23:25:20 [Server] [WARN] java.sql.SQLException: invalid database address: jbdc:sqlite:/plugins/hcfcore/hcf.db```
I'm really confused on what i'm doing wrong, any help will be appreciated.

river oracle
#

honestly doing that probably breaks things

prime epoch
#

i just realized i dont think i even have the driver installed

modest bolt
#

is there a class of entities that can hold items

#

ie pigmen, skeletons/wither skeletons, players, and zombies?

mortal hare
#

does snakeyaml support double precision floating point numbers inside yaml?

young knoll
#

Any LivingEntity can hold items

#

But only some will render them

young knoll
#

I don’t see why not

modest bolt
young knoll
#

It supports floats, and doubles are just floats with more bits

mortal hare
#

i mean im developing my own snakeyaml configuration wrapper which is more strict in terms of data type parsing

#

currently bukkit configuration api allows character data type to be parsed as an integer

#

which seems not really great

young knoll
#

Makes sense

#

Characters are just fancy integers

mortal hare
#

because you can probs specify 'a' and itll parse as a number

#

idk i dont like this

#

sure its useful in code

#

but not inside configs

#

if you want an integer

#

just specify as an integer

#

why confuse others

young knoll
#

I mean

mortal hare
#

also you cant really do this in java easily since you need to cast anyways

young knoll
#

The user would have to be the one to put a char in place of an integer

mortal hare
#

but in that i case i would notify the user with exception instead of throwing random shit to the end user which he doesnt understand

#

at least that's my principle

young knoll
#

You can do that if you want

mortal hare
#

also native adventure api deserialization with mini message

young knoll
#

Yeah mine does that

mortal hare
#

mini message is great

#

atlthough its a bummer i cant really do indentation with it

#

so that i can use it like html tags

#

but im not sure maybe its possible but idk

keen inlet
#

Hello, I have been trying to create a plugin that delays messages sent from the server to the client for like 500ms when the player joins the server. This is because of an annoying bug in a mod that makes it so the client doesn't receive or display (not sure which one) messages for a short amount of time upon joining. How would I go about doing this?

young knoll
#

Packet listener

#

And then just store them in a queue and send them all after the 500ms

mortal hare
young knoll
#

Shh

#

That’s no fun

keen inlet
mortal hare
#

beta 1.7.3

#

how is that even running

#

i hope you guys patch log4j exploit

#

since its probably not patched

keen inlet
#

its running Aether, IC2 and BuildCraft just fine

young knoll
#

Lol

#

Beta 1.7 didn’t even use log4j

keen inlet
#

just this aether multiplayer mod got this annoying chat issue

mortal hare
#

how were you able to run multiple mods on the same minecraft version?

#

isnt it was the time modloaders didnt exist yet?

keen inlet
#

I hate that all of these communities are on discord instead of web forums, now I have to go asking like an idiot on 100 servers until I get something I can work with because discord isn't indexable by search engines

mortal hare
#

i remember dropping .class files and deleting metadata info

#

inside minecraft.jar

keen inlet
#

also fabric on the client for optifine

mortal hare
#

optifine runs on beta 1.7.3??

keen inlet
#

yeah

#

beta is awesome

keen inlet
#

theres a new wave of modders

slender elbow
#

beta 1.7.3
fabric
uhu

young knoll
#

People have backported fabric

#

All the way to like fuckin classic

mortal hare
#

i mean fabric is backwards compatible

#

yea i knew that

#

but i thought it was only modloader

#

which was backwards compatible

#

i didnt knew that optifine literally fucking work in beta 1.7.3

#

that is actually impressive

keen inlet
mortal hare
#

but im not sure what even it would optimize in that case

keen inlet
#

its mostly for expanding the video settings

#

minecraft without mipmaps looks shit

unreal quartz
mortal hare
#

iirc there was a launcher called magic launcher which was the first one to provide mod loader functionality

#

but it was under the paywall for me since i havent owned minecraft at that time

#

and it was premium minecraft account only

#

i found it lol

young knoll
#

Incredible

inner mulch
#

How do I create Banner ItemStacks? (I want to customize the banner)
Is there a tool, or something?

twin venture
#

Hi , not sure if mysql makeing jokes on me , or is it skill issuse ..

for some reason when i close the server [ i have a save method to save all guilds] ..
it save , but when i close the server again it duplicate ..

when i close the server it duplicate :

mortal hare
#

have you made your key

#

primary?

#

it seems your id key is not marked as unique

twin venture
#

i dont think so no

mortal hare
#

set it as a primary key

#

that way it would prevent duplicates

hazy parrot
#

On duplicate works only on primary key conflict ^

twin venture
#

thank you so much , its 3 am here and my brain stoped working ..

#

haven't slept for 17 hours and counting ..

mortal hare
#

oh hey

#

its 3 am for me too

#

poland?

remote swallow
#

imagine being ahead of me

twin venture
mortal hare
#

spain ? 😄

#

although timezones do not match lol

remote swallow
mortal hare
#

i heard that spain experienced microwave temperature recently

#

and china

twin venture
mortal hare
#

oh

twin venture
mortal hare
#

im from lithuania

twin venture
#

northeastern Europe noice

#

its cold in this time of the year? i would preffer go to russia , i heared that its pretty snowyy

mortal hare
#

no

#

its kinda hot

#

but not that kind of hot

#

in summers its hot enough

twin venture
#

oh so not 50+ ? xd

mortal hare
#

but in winter its cold

#

too

#

currently 25 +-

#

but there are times it reaches 33 or 34

#

sometimes

twin venture
#

it reach 50+ and sometimes 55+ in some cities .

mortal hare
#

i cant even imagine how are you staying up in that kind of temperature

twin venture
#

hi , uhh the fix didnt work .. xd

mortal hare
#

i would probably lose consciousness after couple mins

remote swallow
#

last year when it was 40+ i was pretty much sleeping all day and awake at night

twin venture
#

removed the tables ..

remote swallow
#

been as it was somewhat cooler

mortal hare
twin venture
#

ik what's wrong ..

#

forgot a ,

twin venture
mortal hare
#

wait till you see groovy

remote swallow
#

i heard something earlier an entire ai was broken because of a comma

mortal hare
#

then it doesnt notify you that you created a wrong type of object

#

in the variable

remote swallow
#

and it wasnt found for 5 years

twin venture
#

wow

#

yes as i expected fixed it :p

mortal hare
#

groovy is the root of evil in terms of reporting problems without your code, trust me, it sucks i've spent 3 hours to debug my unit tests with Spock

twin venture
#

testing the save :p

mortal hare
#

without bs error messages

#

and all it took is to reorder the variables

#

because the initialization order wasnt incorrect

#

and in java it wouldnt compile

#

but in groovy it does

twin venture
#

uhh that's sucks

#

anyway thanks for the help

mortal hare
#

np

twin venture
#

need to go to finish the system ..

mortal hare
#

good luck

twin venture
quaint mantle
#

Does this work for a yml string ? (Not a string list just a string)

young knoll
#

I’ve never seen that syntax before

#

But you can always try it

glad prawn
young knoll
#

Huh

#

TIL

quaint mantle
inner mulch
#

how do i set the height of a textdisplayentity mounted on a player without these blank lines below the text?

echo basalt
#

I should make more interfaces

unreal quartz
#

Otherwise use > instead of |

inner mulch
inner mulch
worldly ingot
#

Yes. You can translate it upwards

inner mulch
#

how?

young knoll
#

It’s part of the transformation

#

First vector is translation

worldly ingot
#

new Transformation(new Vector3f(0, 2, 0), new Quaternionf(), new Vector3f(1), new Quaternionf());

#

That should work fine

inner mulch
#

thank you

#

i will try it

worldly ingot
#

(the first vector being the translation, so change that y value to however high you want it to be)

daring schooner
#

Sup guys, I was messing around trying to learn some NMS with Mojang Mappings.

I was trying to send a ClientboundSetEntityDataPacket with the zombie information as the player entity, to make a mob disguise type plugin.


  Zombie zombie = new Zombie(EntityType.ZOMBIE,((CraftWorld) p.getWorld()).getHandle());

 ServerPlayer serverPlayerP = ((CraftPlayer) p).getHandle();
 ClientboundSetEntityDataPacket entityDataPacket = new ClientboundSetEntityDataPacket(serverPlayerP.getId(), zombie.getEntityData(),true);

Sorry in advance for any error and i do not pretend to publish or use this. Any help is appreciated

young knoll
#

I don’t think sending the data for a different mob will yield a disguise

#

The entity data doesn’t include the type of mob

echo basalt
#

yeah there's a proper chance it can disconnect the player if entity metadata doesn't match the format

daring schooner
# young knoll I don’t think sending the data for a different mob will yield a disguise

I'm sorry i didn't explain it properly.

I'm spawning a zombie and removing the player entity. I was trying to understand what Data Watchers are in Spigot Mappings, and how they translate to Mojang Mappings.

Here`s the full code:


     Player p = (Player) sender;
            

            Zombie zombie = new Zombie(EntityType.ZOMBIE,((CraftWorld) p.getWorld()).getHandle());
            ServerPlayer serverPlayerP = ((CraftPlayer) p).getHandle();
            zombie.setPos(serverPlayerP.getPosition(0f));
            ClientboundSetEntityDataPacket entityDataPacket = new ClientboundSetEntityDataPacket(serverPlayerP.getId(), zombie.getEntityData(),true);

            for(Player a : Bukkit.getOnlinePlayers()) {
                if(p == a) continue;
                ServerPlayer serverPlayer = ((CraftPlayer) a).getHandle();
                ServerGamePacketListenerImpl listener = serverPlayer.connection;
                ClientboundRemoveEntitiesPacket removeEntitiesPacket = new ClientboundRemoveEntitiesPacket(serverPlayerP.getId(),);
                ClientboundAddEntityPacket packet = new ClientboundAddEntityPacket(zombie);
                listener.send(removeEntitiesPacket);
                zombie.setId(serverPlayerP.getId());
                listener.send(packet);
                listener.send(entityDataPacket);
            }

I cannot create the ClientboundSetEntityPacket, using the SynchedEntityData because there's not the constructor as there is for Spigot Mappings. Im at 1.20.1

#

I googled a bit, but found no useful study material about Data Watchers in Mojang Mapping

echo basalt
#

damn time to write some

young knoll
#

There’s no Boolean in the constructor anymore

daring schooner
young knoll
#

It’s just the id and the data

daring schooner
#

It asks for a List <net.minecraft.network.syncher.SynchedEntityData.DataValue<?>>

#

I cannot find where the i can get the DataValues

#

The only fuctions that return this is getNonDefaultValues()

young knoll
#

So use that?

daring schooner
#

and packDirty()

echo basalt
#

So packDirty will give you a list of all the changes since the last packDirty call

young knoll
#

I assume packDirty is anything that has been changed

echo basalt
#

and getNonDefaultValues will give you a list of.. everything that isn't the default

young knoll
#

And getNonDefault is.. well the name kinda says it

echo basalt
#

Entity data is initialized with default values and then any metadata packet just changes the internal data

#

If I don't include data, it doesn't reset to default, just stays as-is

#

So first call should be getNonDefaultValues and subsuquent calls should be packDirty

daring schooner
#

Okay, i think i got it

#

I'll run some tests then i'll bring some new feedback

#

So when i'm calling ClientboundSetEntityDataPacket I'm setting the data watcher? or I'm changing the values in it? I can't quite undestand this relationship yet

young knoll
#

You’re sending updated values to the client

echo basalt
#

The data watcher is the obfuscated name for SynchedEntityData

#

And it's just a list of values, where a value has an id, a serializer and the actual contents

#

You set it in the server, it is seen as "dirty", the dirty contents get packed into a list of "changed values" that get sent to the client

#

The client receives this list, updates the mob with the new values and renders the changes

daring schooner
#

Ok, got it