#help-development

1 messages · Page 751 of 1

vast raven
#

so you must have a good reputation to sell something where there is a competition

wet breach
#

$1 more then me but i am most likely getting a promotion and raise next month lmao

echo basalt
#

you live in the states

wet breach
echo basalt
#

it doesn't take that much effort to make 25/hr there

vast raven
echo basalt
#

Just like a degree

#

Reputation helps a bit

wet breach
#

Most of my money i have ever made is because i either knew someone or someone knew me

echo basalt
#

Connections help a bit more than reputation

vast raven
#

I personally think could be enough for a certain small age

echo basalt
#

oh yeah btw frosty I drove a car for the first time today

#

well "first time"

#

more than going back n forth and stalling that bitch 4 times

vast raven
#

25/hr is a small payment amount

echo basalt
#

Which is about..

#

5-6x min wage here

vast raven
wet breach
vast raven
#

not ever they pay you for each hour if you're not working all time

wet breach
#

40 hours a week

echo basalt
#

didn't play with gears

#

I suck at controlling RPM, it's way too sensitive

#

and clutch is way too heavy, can't really control it 100%

#

the one thing I'm really smooth at is braking

winged anvil
#

yo

#

i wish my shit was manual

#

manual 350z would go so hard

echo basalt
#

given this is my dad's shitty car and I was on a dirt road, apparently first gear likes doing that shit where it goes in bursts

#

or waves

#

whatever

#

it's called "this car is shit"

wet breach
vast raven
echo basalt
#

I find a hard time getting a steady RPM

#

Not much about shifting

vast raven
#

I mean you can maybe earn more than this

echo basalt
#

I legit just had clutch engaged all the way in

#

and started playing with the accel

#

1k, 1.2k, 1.4k, 1k, 1.2k, 1.4k, 1.6k, ...

#

just trying to be consistent with it

#

in reality I'd aim for 1.4k and do 2k

#

better than the 4k I was going when I went back n forth on my parking lot lmao

wet breach
#

Well typically you know you need to shift if you hit 3k rpms but you can wait till 3.5k-4k except 1st gear you want to shift around 2.5k

echo basalt
#

but yeah I did a couple laps around a dirt road

#

nothing special

#

there was a big hole, I'd try to avoid the big hole, go into the road, back to the dirt thing, stop at X location etc

#

next week I'll prob try shifting into 2nd

wet breach
#

Stopping is not hard. You dont need to go through the gears for stopping unless you want to ease into it to avoid brake wear but the trade off is clutch wear

#

Just stick it in neutral. Also when stopped for prolonged periods dont hold the clutch down

#

Stick it neutral and release clutch. Holding the clutch down for prolong periods will burn the clutch out

#

This is because the fly wheel is still spinning as well as the trans shaft. But the clutch plate isnt spinning since the clutch has it pulled away

echo basalt
#

so the clutch was p much melting

#

also it was a diesel car

#

it loves to stall if I go below 95% clutch power and have no gas whatsoever

wet breach
#

Motor type doesnt matter with the transmission

echo basalt
#

eh true

#

but ppl say diesel stalls a lot easier

#

p sure driving schools use diesel here for that reason

#

mine has a mediocre audi :(

#

saw a driving school mercedes s-class today

#

no clue what model though

wet breach
#

Since no spark plugs

echo basalt
#

Idles at 800

wet breach
#

Yeah gas engines idle between 1k-1.5k lol

smoky oak
#

uh dev question, how can i see a Potion's level? PotionType doesnt seem to have a method to query which level it has

#

neither does PotionEffectType

echo basalt
#

getAmplifier

smoky oak
#

on what?

#

its not on Type, EffectType, or PotionData

#

bleh wtf is this doing in PotionData

upper hazel
#

I'm making a plugin to protect creative mode(canceling events). The result is a lot of classes that execute the cancel logic with repeating code. What is the best thing to do in this case? Inheritance or a separate class that will remove the repetition of code

pseudo hazel
#

separate class

wraith dragon
#

^^ any experts in nms?

chrome beacon
wraith dragon
#

also is it possible to just make it move like a normal bat

chrome beacon
#

I recommend just spawning it in the world

#

Let the server take care of that

wraith dragon
#

nms

chrome beacon
#

You can hide entities

wraith dragon
#

1.8.8

chrome beacon
#

You can do that

#

with some extra work ofc

wraith dragon
chrome beacon
#

You'd need a packet listener

#

so yes but I recommend using ProtocolLib or PacketEvents

wraith dragon
#

is there some sort of tutorial already made?

#

or a resource?

#

@chrome beacon

#

sorry for ping

chrome beacon
#

🤷‍♂️

granite owl
#

prob dumb question but @EventHandler is making use of the observer pattern and registers the obserable function pointer to the observer that is the bukkit server?

#

also if so, how does it automatically detect the correct event based on the functions signature

quiet ice
#

Wha?

#

It does nothing with function pointers. You can imagine it as if bukkit creates a method that is as follows:

void exec(Event e) {
  handler1.method4737(e);
  If (!e.isCancelled()) {
     Handler2.method5837(e);
  }
}

The generated method that is called depends on the event that is executed

shadow night
quaint mantle
#

Can you detect TAB key

quiet ice
#

When registering the listener the type hierarchy of the parameter is walked and it is checked wether a handler list for the type exists, if it does the listener is added to the list. This causes aforementioned synthetic executor to be discarded and regenerated.

quiet ice
shadow night
#

¯_(ツ)_/¯

quiet ice
#

Note that bukkit doesn't actually generate a synthetic method, but paper does.

shadow night
#

I wonder what all of that wizardy means

quiet ice
#

For our sake it is pretty much the same - bukkit simply invokes it via reflection/MethodHandles instead of a direct call

quiet ice
shadow night
#

Is it possible to build bukkit/spigot for a snapshot

quiet ice
quiet ice
#

Afaik there have been spigot snapshot builds in the past

shadow night
#

Does that mean I'll have to manually write and fix patches

orchid gazelle
#

Yes

quiet ice
#

Perhaps paper can do builds for snapshots

#

But that only in the future

quasi flint
quiet ice
#

Performance

#

It uses reflection when method handles should be used

orchid gazelle
#

CMarco be like:

shadow night
#

Does reflection in java reflect light?

orchid gazelle
#

Yes

#

If you make a class called Light.class

shadow night
#

Well, interesting

orchid trout
#

🦐

orchid gazelle
quiet ice
#

Furthermore it may not be thread-safe and it rebuilds ALL handlers even if only rebuilding a part may be sensical

quiet ice
orchid gazelle
#

Sadly not

#

I wish that one day mojang will send all keypresses to the server

shadow night
#

Well, both sides actually

orchid gazelle
#

I know

#

But client side is client side

shadow night
#

But I don't think the client sends any key presses to the server

orchid gazelle
#

No it does not

#

Thats the entire issue

quiet ice
#

I mean due to latency it makes little sense anyways

shadow night
#

Who causes latency

orchid gazelle
rough drift
orchid gazelle
#

If I just want a key for example open GUI xy, latency is not an issue

rough drift
#

I swear I had an event library

quiet ice
#

Yeah for singular keystrokes yes - for continuous key-presses no

orchid gazelle
shadow night
#

Something I thought of
Keep the game like it is, handle the stuff on the client side but send a keypress started and keypress stopped packet

quiet ice
#

But people would only use it for anticheats that are pretty garbage anyways

orchid gazelle
#

This could bring innovation

quiet ice
#

Also you'd likely want to rebind keys and such

orchid gazelle
#

No popular servers currently are innovative. We need innovation.

rough drift
#

CMarco style

quaint mantle
# quiet ice No.

hmm what is the event, where the client request the data required

#

to fill the tab

rough drift
#

We need a join message 56 pixels to the right

shadow night
orchid gazelle
orchid gazelle
#

With defaulted key for example to K

quaint mantle
orchid gazelle
shadow night
orchid gazelle
#

PuttPartyMC

shadow night
#

Oh, right

orchid gazelle
#

Server - Client: I want a hotkey for "open GUI xy". Then it registers it to the keybind menu and defaults to key xy

quiet ice
#

People are afraid of it

orchid gazelle
#

People are stupid

shadow night
quiet ice
#

My genius never-done-before claim plugin recieved little attention due to that for example

orchid gazelle
#

Because people are stupid

#

And because there is no way to promote it for you

shadow night
#

Imagine buying ads for a spigot plugin

quiet ice
#

Well it was paper-only because it used a hefty amount of adventure, so it wasn't available on spigot and hence few would even know how to download it

quaint mantle
#

I think this is ok

#

The only thing that I could maybe improve

#

is follow the srp but idk

#

yeah I might do that

#

cause in the same class I have the implementation (the actual abilities and stuff) the names and reference names etc

quaint mantle
#

how to make a minecraft slushie

main dew
#

Are there rainbow tables for {OfflinePlayer:%s} md5 (minecraft offline player uuid)?

wet breach
#

Rainbow tables?

#

Why would you need rainbow tables

lost matrix
#

Ah Songoda

rough drift
#

I got DM'd by them actually (Now Craftaro)

#

didn't go trough though

orchid trout
#

marketing is op

#

they should nerf it

meager wolf
#

When i rebuild the project i get
Module sleepforce sdk does not support source version 1.5

main dew
meager wolf
chrome beacon
#

?img

undone axleBOT
#

Can't send images? That's because you're not verified! Use !verify to complete verification.
Alternatively, you can upload screenshots to any image hosting site and share the link.

Here's some screenshot utilities that can use to upload images.
Lightshot: https://prnt.sc
Imgur: https://imgur.com/upload
Flameshot: https://flameshot.org

meager wolf
#

!verify

undone axleBOT
#

Usage: !verify <forums username>

meager wolf
#

Zzzx i dont have forums acc

chrome beacon
#

Now read the whole message

quiet ice
chrome beacon
#

?paste

undone axleBOT
wide dune
chrome beacon
#

unmapped 💀

#

Do yourself a favor and use mojmaps

#

?nms

wide dune
#

😢

wet breach
# lost matrix Ah Songoda

except they didn't create a majority of that stuff, scammed the people of paying that did do the work, constantly lied to both customers and employees. Yes they were successful for a time in scamming their way which is no different then anyone else who does scams.

#

probably wouldn't really use them as an example lol

undone axleBOT
#

"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.

twilit creek
#

Simple question, where in the NMS code or general Bukkit Code is the CraftBukkit Constructor called? I didnt see anything where it gets initialized on server startup.

river oracle
#

Their is a patch for the main class

#

You'd need to follow the instructions on stash to setup the environment and look in Main

#

Alternatively you can just decompile your spigot jar and look at the Main class

river oracle
#

You could also look at the Main.patch file

mortal hare
#

no

#

just no

river oracle
#

Sounds like a security risk

#

Let's do it

mortal hare
#

Imagine server receiving unsent messages, just because someone typed it in server chat but never sent it

hushed scaffold
#

That'd get me banned everywhere

young knoll
#

If they added something like that

#

The server would have to subscribe certain keys

#

And clients would need to be informed

#

And it would 100% have to only work when the game window is focused

shadow night
#

Minecraft: Keylogger Edition

twilit creek
# river oracle You could also look at the Main.patch file

The only thing if i follow the code is this in MinecraftServer.class but its Deprecated:

@Deprecated
public static MinecraftServer getServer() {
return (Bukkit.getServer() instanceof CraftServer) ? (MinecraftServer)((CraftServer)Bukkit.getServer()).getServer() : null;
}

young knoll
#

What are you looking for?

twilit creek
#

Where CraftServer get initialized.

#

In the src

young knoll
#

Ah

#

It's done in PlayerList iirc

#

Yeah, first line of PlayerList constructor

#

this.cserver = minecraftserver.server = new CraftServer((DedicatedServer) minecraftserver, this);

lost matrix
twilit creek
young knoll
#

It is

#

That initializes it

#

this.cserver = minecraftserver.server = new CraftServer... notice how it assigns both

twilit creek
#

ohh i see

#

But now is the question where PlayerList gets initialized. haha

#

or better DedicatedPlayerList

#

because it extends from it

lost matrix
#

What exactly is your plan here?

twilit creek
#

Have a plan for my server with it

thorn saffron
#

How to make my plugin support all version (1.16.5+)?
(Sorry I'm begginer developer)

lost matrix
thorn saffron
#

if my plugin support 1.16.5 it can support 1.17, 1.18 and like that?

young knoll
#

yes

thorn saffron
#

COOL!!

orchid trout
#

i have LinkedHashMap how do i get like the number 10 key and value from the top

lilac dagger
#

Loop through

lilac dagger
#

Just because it has ordered access does not mean it also has random access

#

sadly

lost matrix
#

I mean it has. But by its actual keys.

lilac dagger
#

I guess yes

#

But in the linked aspect of it

lost matrix
#

No linked data structure has random access 🤔

lilac dagger
#

Linkedlist in java does impl it

#

Doesn't mean it isn't still looping

lost matrix
#

Yeah, bc List compells it. But all it does is iterate from the top and increment an index.

lilac dagger
#

Ye

lost matrix
#

Myeah, but you should be fine with what Java provides.
Needing index access on a LinkedHashMap sounds like a design problem to me.

slate tinsel
#

Can I change the direction a falling sand block looks at, i.e. if it is set as a passenger on an armor stand

lilac dagger
#

I think so

#

Change the yaw of the falling block

sick edge
#

Hi! I have a scheduleSyncRepeatingTask that counts down a float every 1 Tick. It always subtracts 0.05F but for some reason I get really long weird floats and it never hits 0. Am I get java precision errors or what is happening?

young knoll
#

yes

#

Floating point errors

sick edge
#

Can I somehow prevent this while still having a "small-stepped" timer

compact haven
#

just manually canc the task when your float is less than .05?

sick edge
#

Yeah good idea

young knoll
#

Either that or use an int and just divide to get the output

quaint mantle
lost matrix
quaint mantle
#

That's just a test

#

But to be honest, for the amount of things the plugin does internally, it's quite fast

lost matrix
#

Its a nice first result 👍

quaint mantle
#

Probably right now with 10 players the server tps would fall to 5 or 7.5

lost matrix
#

Why do you have to do so much internally? With the hasLineOfSight and hidePlayer methods this
should be possible in a few lines.

quaint mantle
#

So yes, I implemented my own "hasLineOfSight"

lost matrix
#

I see, well then keep going until its done smileybolb

#

Btw my first try at improving the performance would be a dynamic polling rate depending on the distance of the two players
and disable it completely for the case that they are outside of the entity tracking distance.

smoky oak
#

?paste

undone axleBOT
smoky oak
#

server crash follows

lost matrix
#

Looks like you have a datapack which messes up your world?

smoky oak
#

smile

slate tinsel
smoky oak
#

that world never had a single datapack in it

#

ever

#

like the folder literally never contained one

lost matrix
#

Did you get this world from somewhere?

smoky oak
#

no

#

its generated locally from a seed

lost matrix
#

I have literally never encountered such an error from the mc server.
One reason could be a faultily saved world after the jvm was forcefully stopped while writing to the world file.

smoky oak
#

i dont recall that happening

#

iJ freezes from time to time but thats about it

#

oh

#

i do recall my computer crashing

#

maybe i had the server n

#

i... cant remember. i dont think it did but im not sure

#

welp, delete level.dat i guess

chrome beacon
smoky oak
#

wtf is 'random_sequences'

sterile sapphire
#

Yo

#

Can someone make a plug-in for me?

lost matrix
smoky oak
#

this channels not meant for recruiting im afraid

#

(cough cough nudge nudge make one md_5)

#

its one of the most frequent asked questions here

eternal night
#

services section exists ?

#

?services

undone axleBOT
echo basalt
#

ehh

sterile sapphire
echo basalt
#

what if we had a #recruit channel

sterile sapphire
smoky oak
#

have you seen that illusion

shadow night
pseudo hazel
#

thats what the service link is for though?

sterile sapphire
smoky oak
#

its just 'computer degree' 'we are aspiring... (read: no pay)' '7+ years of experience', 'one person should be an entire it department'

echo basalt
#

all I know is that I'm feeling happy that I got a random message pinned

smoky oak
#

we need a more laid back easier to use channel

shadow night
echo basalt
sterile sapphire
smoky oak
echo basalt
#

lmao no

#

send me the post

#

if the pay is good I might troll them a bit

shadow night
#

I wanna make a java ide that will be accessible from the browser so people can dev from their mobile devices

smoky oak
#

oh thats just my general experience scrolling through there

smoky oak
#

@sterile sapphire check dms

sterile sapphire
#

Alr

echo basalt
#

like this is pretty standard

shadow night
smoky oak
#

i think so

smoky oak
shadow night
pseudo hazel
#

i would qualify if not for the nms stuff

echo basalt
shadow night
#

I have some experience in nms

pseudo hazel
#

but im sure nms isnt hard

echo basalt
#

half the times these requirements are very very loose

#

as in

pseudo hazel
#

just a little annoying

echo basalt
#

I've got 7 years of experience, a degree, full knowledge of NMS but I'd prob get rejected

#

or lowballed

#

because my website has lorem ipsum or some BS excuse

quaint mantle
echo basalt
#

ehh no

shadow night
#

I started learning java by coding forge mods because I thought it would be as easy as learning js by coding discord bots lmao

shadow night
echo basalt
#

I've always had interest in java as a kid

#

decided to learn so because I got in an argument over a buggy plugin that "could not be fixed"

#

so I made my own plugin that fixed it

#

was some anticheat incompatibility with slimefun

shadow night
onyx fjord
quaint mantle
shadow night
onyx fjord
#

ofc

quaint mantle
#

First things first, optimization

onyx fjord
#

i recommend looking at spark

lost matrix
# onyx fjord ofc

I would be very surprised if you came up with a ways to track that

onyx fjord
#

to get accurate profiler data

onyx fjord
#

anticheataddition for example

#

its open source aswell

quaint mantle
#

MaybE?

echo basalt
#

there's 100% a mathemathical way of doing it

quaint mantle
#

Of course

#

Everything is maths

#

Even language 🗿

lost matrix
#

Yeah, i dont believe that. You can literally use a free cam on your client and the server would have exactly no idea about it

quaint mantle
#

Btw, how does freecam work?

lost matrix
#

Just because the player is rotated in a certain direction, doesnt mean the client also looks into that direction

eternal night
#

I mean, the only magical way againts freecam would be the server literally only sending the blocks it thinks the client can see

lost matrix
eternal night
#

which, my god that would be terrible

quaint mantle
#

No way

eternal night
#

chunk gen is server side

shadow night
eternal night
#

the server send the client a chunk packet with all blocks of the chunk

eternal night
#

changes to the chunk after sending are communicate via e.g. single block or multiblock packets

quaint mantle
#

So if the client exploits it, it crashes 😈

eternal night
#

but the client always has a full "copy" of the chunk state locally

lost matrix
#

It would be hilarious if the server would just hog the clients resources for chunk generation.
"Oh you dont use those cores? Let me generate random chunks in there. And mine some crypto while im at it"

onyx fjord
#

oh and theres an anti xray plugin (for paper antixray) that also calculates 3rd person

echo basalt
#

make a mod for it

#

and then the client just generates a ton of diamond blocks lmfao

quaint mantle
maiden thicket
#

when will clients send keyboard input data to servers

#

sadge

quaint mantle
#

It's a bad idea

echo basalt
#

they send every time you press the offhand button

maiden thicket
#

i dont mean movement input

orchid trout
maiden thicket
#

or like

#

minecraft keybinds

onyx fjord
#

F is enough!

maiden thicket
#

i mean just keys pressed while the game is in focus

echo basalt
#

yeah F is enough

quaint mantle
echo basalt
quaint mantle
#

Or just make as FiveM does, to send the client a set of custom keybidings the client can set

onyx fjord
#

minecraft generally isnt rly mod friendly

quaint mantle
#

Oh wait

#

Datapacks!

#

I don't know if they can do that

onyx fjord
#

and thats not the focus

#

at least not in the "modern" era of minecraft

quaint mantle
#

I guess someone could make a mod for what you need

#

But...

shadow night
#

Pee

quaint mantle
#

That would require client setup

#

Which no one likes

young knoll
#

Spout 2.0

echo basalt
#

what if we made a custom client

#

and a custom gamemode

quaint mantle
#

The new gamemode, harder than hardcore

#

It has the same as minecraft, but with a spicy touch 😈

#

Now, talking seriously, let's make SpigotCraft

#

The official spigotmc minecraft client

shadow night
#

Client sided plugins?

young knoll
#

That's called fabric

shadow night
quaint mantle
#

Not client side plugins

#

Integrated code for the client

#

That can be used by spigot

hybrid turret
#

I'm currently running into a more complicated issue with my inventory-saving-thing/vault-system.
I managed to serialize and deserialize it using a byte-Array.
Now I have x yml files called vault_x.yml in a folder that is unique to the player that created the vault.
So basically the vaultId now is a single-digit int (so x).
I accomplished this by creating an instance of a class that handles the vaults with the values needed and then save/load/create the vault. (the file with the number is created upon creating the object)
Now I need to save the vault from a InventoryCloseEvent-Listener.

The problem now is the number.
I can't really give the number to the Listener since I would have to add a variable outside of the onCommand()-Method which isn't unique to one command-execution, iirc, since the method is only being called and not a new instance created each time the command is executed.
So when one player opens Vault 0 and another player opens Vault 1 the number will be one.
But when the first player then closes his Vault 0, the plugin will save to Vault 1 since the number is 1.
How do I fix that?

young knoll
#

That's called spout

#

It died tho

remote swallow
#

fabrigot

quaint mantle
remote swallow
quaint mantle
#

Just why

#

It's a bad idea to mix plugins and mods

subtle folio
#

says who?

quaint mantle
#

Me, the guy who is always right

#

||obviously joking||

subtle folio
#

hi ego /s

lost matrix
hybrid turret
#

uhm

quaint mantle
hybrid turret
#

no. i tried that. didn't understand shit, then left it.

#

since spigot has yaml integration

lost matrix
# hybrid turret uhm

I sure hope you created a system like that and dont have all your code bunched up in command and listener methods.
Commands and listeners should only contain a few simple lines of code and mainly call methods from manager classes.

quaint mantle
#

Yes, but yaml is not for storing data

hazy parrot
#

neither is json

quaint mantle
#

It is

hybrid turret
quaint mantle
#

It's not relactional, but stills

hybrid turret
#

ironically it's currently called VaultUtils (which dosen't make sense since it's not a Utility class)

#

if you step by step explain to me how i would serialize that shit, sure lmao

#

because i sure didn't understand in my hours of research, i don't even know why lol

hazy parrot
quaint mantle
wooden hearth
#

Hey, I have a question, if I wanna make a custom crate plugin with animations should I hard code the animations or should I make it randomly generate the patterns?

quaint mantle
#

But json is used by some databases (obviously that doesn't make json a database) but I hope you get into my point

wooden hearth
quaint mantle
shadow night
hybrid turret
#

Yeah but I don't quite get what it means lol

#

the map part

#

What to do with the map

quaint mantle
#

Anyway, json is still a good option to go (not the best of course)

lost matrix
maiden thicket
echo basalt
#

keylogger

maiden thicket
#

i mean

shadow night
maiden thicket
#

ur game is focused

#

meaning

echo basalt
#

still

maiden thicket
#

only game input would be sent

#

why are u typing sensitive info while logged into the server while tabbed into minecraft

hybrid turret
pseudo hazel
hybrid turret
#

.paste

#

not?

#

uhm

rough drift
#

!paste

#

?paste

undone axleBOT
rough drift
#

there

hybrid turret
#

thanks

hybrid turret
#

won't i need to store that map as well?

#

wait

lost matrix
rough drift
#

Are loot-table keys like NamespacedKey.minecraft("zombie") or do they use different IDs?

hybrid turret
#

ic i'll try to wrap my head around it

quaint mantle
worldly ingot
#

Sending key strokes across a network is a bad idea, full stop, no questions asked. This is not a Minecraft exclusive issue

pseudo hazel
#

yeah put an exe in your respurcepack

worldly ingot
#

In a game you're often sending the actions that occur as a result of said key presses

#

I wrote an optional mod for VeinMiner that lets people press a keybind to activate vein mining, but the solution to that wasn't to send the key that was pressed and check it on the server, but rather a packet to enable and disable the state of vein mining

orchid gazelle
#

Thats literally what I said earlier

#

Let a resourcepack have custom keybinds like enable, then let the client send this packet

young knoll
#

Server registers a keybind with a namespaced key and default key

orchid gazelle
#

Yes

young knoll
#

When the client presses it a packet with the namespaced key is sent to server

orchid gazelle
#

Yes

shadow night
#

What is a namespaced key

orchid gazelle
#

"enable xy"

remote swallow
#

mc uses it for blocks

young knoll
#

mc uses it for everything

orchid gazelle
#

Mapping to key Shift+V for example

worldly ingot
#

wot. Server doesn't register keybinds

shadow night
#

My brain is boiling rn

remote swallow
#

minecraft:barrier

young knoll
#

I mean, how else would servers add custom keybinds

worldly ingot
#

It can't

#

It doesn't

orchid gazelle
#

(Sadly)

remote swallow
#

choco it could

#

you vibe vacuum

orchid gazelle
#

No

#

yes

#

I mean

#

Mojang has to do it

worldly ingot
#

I sincerely doubt that would happen lol

orchid gazelle
#

But those lazy mfs probably won't :(

young knoll
#

The main issue is you'd still know the default key for the keybind

worldly ingot
#

It's not a laziness thing, it's a "This doesn't make sense for us to do" thing

orchid gazelle
#

it's literally a feature for modding

worldly ingot
#

They have no reason to add that sort of detail because anybody capable of modding the game will likely use plugin messaging to send actions, not keybinds

orchid gazelle
#

?

#

This is not possible yet

remote swallow
#

it is

#

you create a client mod

orchid gazelle
#

wow

worldly ingot
#

You do precisely what I did

remote swallow
#

mod sends a packet to sever when pressed

#

server handle packet

orchid gazelle
#

I don't care about client modding at this

#

Ofc that would work, obviously

#

But thats garbage

worldly ingot
#

You're not going to have a server-sided only solution

orchid gazelle
#

We need it Vanilla

orchid gazelle
#

Thats my entire point

remote swallow
#

wonder how hard it would be to make a generic mod that would accept a packet from server when someone joins, register keybinds then send them back

young knoll
#

Easy

orchid gazelle
#

Not hard

young knoll
#

But client mods don't really work

#

Otherwise spout would still be alive

orchid gazelle
#

^

remote swallow
#

it would be like veinminer

#

you can do it without the keybind you could just also install the mod and now you can customize stuff

orchid gazelle
#

And guess what? Not everyone installs the mod

remote swallow
#

and that wouldnt matter

orchid gazelle
#

So client mods suck for servers

remote swallow
#

the client mod would be quality of life

#

not required

orchid gazelle
#

Yes but im talking about shit where it is necessary

remote swallow
#

if you want to customize it you install it, if you dont want to or know how to do you dont have to

#

@worldly ingot when does veinminer compat come to modrinth

worldly ingot
#

tf? Never KEKW

orchid gazelle
#

Wait, did Choco dev the veinmeiner mod?

remote swallow
#

why not

#

he did the plugin

#

that has the compat mod

worldly ingot
#

Not the original Forge mod

orchid gazelle
#

Oh ok

remote swallow
#

choco why no modrinth

#

you can get money from downloads

worldly ingot
#

I don't really wanna

#

I don't need the money

orchid gazelle
#

Who tf uses modrinth

remote swallow
#

give it to spigot then

remote swallow
shadow night
remote swallow
#

most people who download mods through their launcher too

orchid gazelle
#

I can count 100 people that use curseforge and not even 5 that use modrinth

remote swallow
#

i now prefer to use modrinth where i can

shadow night
#

Modrinth really be better

orchid gazelle
#

Sure but still nobody uses it

#

Globally speaking

remote swallow
#

yes they do

shadow night
orchid gazelle
#

Crazy, never saw that

shadow night
remote swallow
#

sodium doesnt use curseforge anymore because modrinth isjust metter, 26 million downloads on curseforge, 5 mil on modrinth

eternal night
#

just the fact that modrinth API is soooo nice

#

like thank god

#

it makes this so fantastic to download from

remote swallow
#

modrinth gui is also just better

pseudo hazel
#

and the site looks neat

orchid gazelle
#

It may be 1000x better but yet I never encounter people using it

shadow night
#

Smart devs post on both sites for extra profits

remote swallow
#

way easier to get the version you want without going through 90 pages

shadow night
orchid gazelle
#

Can I upload modpacks on modrinth?

remote swallow
#

yeah

pseudo hazel
#

the best download platforms are the ones you spend the least amount of time looking at

shadow night
#

Curseforge is slow

subtle folio
#

you could make presets for animations,

#

but randomness can look nice as well when controlled

wooden hearth
#

Yeah I was thinking to make presets for the animations

alpine swan
#

would this remove the itemstack from where it currently is and place it in the slot, or would it copy and paste the itemstack into the slot, or can a single itemstack just live in 2 slots at once?

quaint mantle
#

"setHelmet"

atomic niche
#

Why do powered minecarts still exist?
Why doesn't mojang either:

  • Make them less jank
  • Remove them, just as jeb hinted in 2016.
remote swallow
#

power minecarts? you mean the furnace ones?

atomic niche
#

yes

sterile sapphire
#

Good for big power furnaces system

atomic niche
#

Good for big headaches

remote swallow
#

they dont seem very jank and dont have any reason to remove them

#

useful for transporting mobs up a hill without spending a ton of gold

atomic niche
#

They are legacy entities

#

Interacting with them with code is painful

#

they were implemented before physics; they don't accept vectors

#

Their teleportation is painful

#

the only way to control them is through nms or a paper patch

remote swallow
#

they have velocity methods

atomic niche
#

They do, but the methods one needs to use only exist for powered minecarts; not for normal entities.

#

and they are not wrapped in upstream; just in paper

#

PushX() and PushZ() are stupid methods.

remote swallow
#

entity have getVelocity and setVelocity

atomic niche
#

Yes, but not powered minecarts

#

they are old entites that ignore normal velocity

#

they just do their own thing

remote swallow
#

they literlaly do

#

use ur eyes

atomic niche
#

Look at the actual implementation

#

Last I looked, it inherits it, but then proceeds to ignore it.

#

For example, if you setvelocity of a moving powered minecart to 0, it will keep moving because it uses an internal Push method instead

#

Velocity works for all other entities in the game

young knoll
#
  • Not display entities
atomic niche
#

it's just powered minecarts that don't work since they are ancient and implemented in a terrible way.

atomic niche
#

In any case, a powered minecart should accept velocity. It doesn't, or at least doesn't consistently, since velocity is overridden by an ancient PushX PushZ SetFuel system that nobody uses and that everyone hates.

#

Also, while ranting about them, even from a gameplay perspective, it's outdated.

They only accept coal and charcoal since, last time the entity was touched, coal blocks didn't exist in the game.

valid burrow
#

Ive asked this question before but i didnt get the answer i was hoping for. I am trying to make a "reset" system for a arena that basically saves the way the arena looks before the fight and then repairs it after. Its important that i can do this WITHOUT removing the players from the world or the locatíon

#

any ideas?

worn tundra
#

Curious on where you want the players to be during the reset

valid burrow
#

the players are going to be teleported to a "spawn" location from which they can reenter the arena

#

but for this to happen as smooth as possible i want that all to happen in the same world

#

probally also good to add that the arena isnt thaaaat massive

#

at least the part that needs to be reseted

valid burrow
worn tundra
#

You can use the worldedit schematics api

#

ig

hushed scaffold
#

i wish i knew about schematics api

valid burrow
#

arlight ill check that out thx

worn tundra
#

teleport the players away & paste it

hushed scaffold
#

i was making shit that needed structures to be pasted and instead of using we schematics i tried to make my own schematic system

#

so much regrets

valid burrow
#

damn

hushed scaffold
#

exclamation on tried

valid burrow
#

omg fk discord they stole my developer badge

hushed scaffold
#

l

valid burrow
#

my bot has been running for 3 months straight and they just take my badge

#

sadge

uncut needle
#

Can I make my plugin that works for servers also a library in one jar

valid burrow
#

tut from 6 years agio good enough for worldedit api?

remote swallow
#

world edit api is easy enough once you figure out how it works

valid burrow
#

yh but did it like

#

change

#

during the past 6 yearsa

remote swallow
#

not really

#

well not that i know of

valid burrow
#

alright

remote swallow
#

it might have, idk if it did

worn tundra
#

huh

#

if you wanna dev you gotta do them docs

valid burrow
#

i know 😭

distant wave
#

do you guys save NamespacedKeys?

young knoll
#

Save them where

opal carbon
#

in a variable

#

id assume

#

🙂

opal carbon
young knoll
#

Yeah I have a class with them all held static

opal carbon
#

like if its a one time namespaced key then ill just instantiate it once and let it die

valid burrow
#

it tells me i need to use BlockVector3 what ever that is but i cant

remote swallow
distant wave
opal carbon
#

yeah exactly

valid burrow
opal carbon
#

that is something you could do

#

i dont see any reason that wouldnt work

valid burrow
#

this seems to be outdated what is it today

echo basalt
#

ClipboardFormat

valid burrow
#

what is the difference between a region and a CubiodRegion

#

and which one do i use

remote swallow
#

region could be different shapes

#

cuboid region would be a cuboid

valid burrow
#

how would one define a region that is not cuboid

brazen badge
#

some articles for multi-version plugin compatibility?

wet breach
echo basalt
#

didn't songoda get banned for like

#

some pretty fucked up stuff

wet breach
#

yes

echo basalt
#

how the fuck does she have 18k instagram followers what

lost matrix
echo basalt
#

19 likes

#

straight up botted

lilac dagger
#

Lol

grand flint
lost matrix
#

It can not and i never did compare them

echo basalt
#

her blog is just the depiction of mental instability goddamn

#

pass null

#

inventoryholders are a weird thing

#

avoid using them

lilac dagger
#

I never used inv holders

#

Hashmaps are better

lost matrix
wet breach
grand flint
#

Songoda has some nice plugins though

#

Quality plugins

#

So for me their advertising techniques isn't really a point

lost matrix
#

Their plugins where pretty trash last time i checked them (when they where still on spigot).
The only thing they did properly is the plugin page design. Thats my whole point.

valid burrow
# echo basalt ClipboardFormat

i dont wanna be annoying but does anyone mind explaining me how to exactly use that? i really dont understand anything they say in the documentation

grand flint
#

Isn't songoda a development team?

grand flint
#

Especially their premium plugins

valid burrow
#

this is where im at rn

wet breach
#

not who you are trying to fool

lost matrix
grand flint
echo basalt
lost matrix
#

Sure, two actually. PlayerItemConsumeEvent and EntityPotionEffectEvent

#

Wait, where did the question go

grand flint
#

They work expectationaly well and do not have any issues with optimization

echo basalt
#

bros schizhophrenia is showing up

lost matrix
#

You shouldnt

wet breach
#

hardware can do a lot to hide non-optimal stuff just fyi

lost matrix
#

No software is ever optimal to be fair

echo basalt
#

true

wet breach
#

sure, but that isn't what I am referring to

grand flint
#

It is optimal enough for a minecraft plugin compared to some

echo basalt
#

can't wait to release my skyblock core and blow up everyone's internet connections with the way I'm handling database io

wet breach
#

I actually almost worked for Songoda. I was part of all the chats and got to see all the inner workings

#

it is the reason I know so much

lost matrix
#

I mean, did you follow the convo? They are scamming, botting scumbags who exploit their devs and customers...

wet breach
#

They are literally a terrible person. Only reason I didn't get caught up in the dev stuff is because she failed to pay me on top of failed to give me anywork. And then when she tried to give me work couldn't even explain what it was that she wanted me to do

#

so I was like whatever this isn't good at all XD

echo basalt
#

cmarco is literally money driven istg

#

bros whole personality is praying to god he makes more money than the day before

slender elbow
#

you'll make more money in a week at McDonald's than making plugins

dry hazel
#

true

echo basalt
#

You need to be REALLY good to make more money making plugins than at a real job

valid burrow
#

its definetly better then just learning

lost matrix
#

Look for a dev spot. Thats pretty much where proper income can be made.
Otherwise: Follow the advise i gave earlier, using songoda as a prime example.
Design appealing plugin pages, with vibrant colors, round corners and moving imagery.
Update with small improvements to push your plugin to the front page often.

jagged bobcat
#

Update with small improvements to push your plugin to the front page often.
This is the problem with spigot's plugins website. There is too much junk there and updating your plugin 4 times a day will make it go up instantly.

Is there really no limit/day?

valid burrow
#

yall we should bring the idea of owning your own minecraft sever into peoples heads again. More people want a server = more jobs for us

echo basalt
#

I keep saying to marco

#

make good content in the first place

#

and people will come

#

bro replies with a measuring tape plugin

lost matrix
#

Myeah thats not entirely true. The market is saturated and a consumer which visits other places, uses spigot as well with a very high probability.

jagged bobcat
#

Spigot seems outdated on the website compared to other websites.

valid burrow
#

well then do something about it

echo basalt
#

So you have no good intentions is what you're saying, exclusively profit driven

valid burrow
#

im sure if you send md a updated version of the website he will replace it

jagged bobcat
valid burrow
#

btw yall know how much hypixel pays their devs? these guys making a fortune

echo basalt
#

the same way releasing free products isn't slavery

jagged bobcat
pine sandal
#

Got a question, since I haven't been able to find it. Is there an API for finding or checking for structures in the world? I found the API for generating new structures or making structure but none for locating or checking for existing ones.

echo basalt
#

You're putting your greed above your morals and making a genuinely bad product rather than trying to benefit the community

#

And people catch on to that

#

If they want to pay someone to hook into your plugin they can't

valid burrow
echo basalt
#

All you're doing with obfuscation is hiding your lousy code

valid burrow
#

im sure you can acsess that somehow

jagged bobcat
#

nvm

echo basalt
#

All you're doing by licensing free stuff is being predatory with who can work with you

#

PlaceholderAPI succeeded because it is free, open source and genuinely a decent product

#

They pay for the web hosting for their ecloud system

pine sandal
wet breach
#

API's don't have to be free

valid burrow
echo basalt
#

What I'm saying is that the FOSS model is one of the few things that work in this case

#

You either make something revolutionary or you make something for free and pray you get donations

onyx fjord
#

what is the default value for extra in spawnParticle?

echo basalt
#

If you want money make commissions

wet breach
#

I am not sure what you are going on with rate limits. Anyways, API's that cost money can't be some lousy made thing. They need to solve a problem or make it easier to do something that is otherwise annoying or difficult to do.

pine sandal
echo basalt
#

No paid product grows if you don't have an audience

pine sandal
#

At least that I can find

echo basalt
#

You don't grow an audience by making shitty plugins and paywalling everything

#

Correct

#

You can try a freemium model where you make something great for free and any additional content is paywalled

valid burrow
#

ImIllussion im sure you wanna tell me how to do this rightttttt :DDDDD

echo basalt
#

Give them 95% of the experience and charge for the other 5%

#

That's what you think

wet breach
#

or solve an actual problem that no one else is

echo basalt
#

Your ego is so fucking high that you'd rather believe that the world is wrong rather than believing that your strategy is flawed

valid burrow
#

do i even have to use clipboard? i have like 0 idea what im doing rn

young knoll
#

Stop feeding the troll

#

¯_(ツ)_/¯

echo basalt
echo basalt
#

You can get a clipboard by reading a file, or creating one from a region in case you want to save it to a file

#

ClipboardFormats.WHATEVER.read(file)

#

etc

echo basalt
#

To create a clipboard, you grab the region and construct an impl

#

iirc it's BlockArrayClipboard

#

don't quote me on this

young knoll
#

It is

wet breach
valid burrow
#

theres like a million

echo basalt
#

we are now talking about how your beliefs don't align with your actions

#

and your way of conducting business

valid burrow
#

BlockArrayClipboard clipboard = new BlockArrayClipboard(region); just found this does that also work?

young knoll
#

Yes

#

That’s what we said to do

valid burrow
#

oh sorry

wet breach
#

well at least you are making progress 🙂

valid burrow
#

i overread that

#

mb

pine sandal
#

I am still digging around the Bukkit API hoping I missed something because I really don't want to have to use NMS to be able to see if a BlockPos is inside of a specific structure type.

young knoll
#

Sadly we don’t have an api for placed structures yet

#

I should finish that

pine sandal
#

Yea, was trying to check if an entity was in an existing structure's bounding box. Might be able to get those to do what I want.

valid burrow
#

it trows a filenotfound exeption on line96

#

im trying to create a file not read one

#

am i sloq

chrome beacon
#

use plugin#getDataFolder to get your plugins folder

valid burrow
#

like this?

chrome beacon
#

Pass as two arguments

#

don't concat the folder with the string

valid burrow
#

alöright

#

so like this?

#

nvm got it to work

#

thy

#

thx

remote swallow
#

remove the start slash

patent trench
#

java.io.IOException: The process cannot access the file because another process has locked a portion of the file

public static void backupWorld(File source, File destination) {
        if (source.isDirectory()) {
            if (!destination.exists()) {
                destination.mkdir();
            }

            String files[] = source.list();

            for (String file : files) {
                File fromFile = new File(source, file);
                File toFile = new File(destination, file);
                backupWorld(fromFile, toFile);
            }
        } else {
            try {
                InputStream in = new FileInputStream(source);
                OutputStream out = new FileOutputStream(destination);

                byte[] buffer = new byte[1024];
                int length;

                while ((length = in.read(buffer)) > 0) {
                    out.write(buffer, 0, length);
                }

                in.close();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

Is there a way around this? I only get this error when the server is running so it's the only process that could be in use. When the server is offline, I am able to copy the file:

#

I'm essentially just trying to copy the world file to a backup folder (and later, vice versa).

#

I am using Multiverse Core. Could this have something to do with it?

lilac dagger
#

do it on server load

#

any other time the backup i think cannot be done

patent trench
# lilac dagger do it on server load

Hm... I kinda need to do it outside of server load. I'm making a game system and want to revert the world to a backup when the game is finished.

lilac dagger
#

then it might be better to unload certain chunks, and swap them from backup

chrome beacon
#

also you can use try with resources

#

Make sure to fully unload the world before replacing any files

trim lake
#

Can I cancel other plugin event? I dont have access to source code of that plugin.

#

Its custom event in that plugin

lost matrix
trim lake
#

Hmm, maybe I can just listen do custom event instead idk if that is possible, but should be. But there is no API for plugin

lost matrix
eternal oxide
#

If it's a custom event fired by that plugin you can only cancel it if it implements cancellable

echo basalt
#

can't you like

#

unsubscribe listeners

trim lake
#

I will need to take a look on that if It is cancellable. If not it will not be possible. Sometimes when I ask question, solution come in my mind xD thanks. Something new I learnt by explanation. Thanks a lot!

wraith ocean
#

hi who know i get getConfigurationSection from multiple file .yml player

eternal oxide
#

?configs

undone axleBOT
wraith ocean
#

yes

#

i create every player join file uuid.yml

#

how i can get the kills and deaths to sorted for leaderboard

lost matrix
wraith ocean
#

ik but i want to learn

#

how i essentially iterate?

lost matrix
# wraith ocean how i essentially iterate?
File userFolder = ...;
File[] userFiles = userFolder.listFiles();
if(userFiles == null) {
  // Do something
}
for(File userFile : userFiles) {
  // use each file
}

But thats some basic java you should be able to just get with a quick internet search

sterile token
short pilot
#

so minecraft is one threaded with servers, how can i make my database calls asynchronous then?

sterile token
#

I mean i adopted GPT as native navigator

short pilot
#

or like

#

account for the one threadedness when using databases

sterile token
lost matrix
#

Actually... i should write a guide for that. Maybe tomorrow.

short pilot
#

interesting

warped shell
#

I created some Shapeless Recipes and registered them to the server, I also discovered them for all players, but while the recipes work when manually crafting them, they do not show up in the Crafting Menu unless I select all recipes. The recipe output is enchanted and the ingrediants have lore

karmic phoenix
sterile token
#

have you checked your data is created in the tables?

karmic phoenix
#

No data created.

echo basalt
#

hmm

#

data in the main thread

#

fun

#

don't think you're loading the mysql driver

karmic phoenix
#

wait am I supposed to add it in pom.xml?

sterile token
#

What can cause my friend getting said the repo trying to clone was not found. When it perfect works for another friend

karmic phoenix
#

How do I even add the driver?

#

I found this:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
wet breach
#

there is a map for registered structures

#

and an api to search for structures in the world folder, datapack etc

karmic phoenix
#

Will this do?

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
karmic phoenix
#

I added it into the DatabaseManager class

wet breach
#

are these not sufficient?

storm crystal
#

whats the difference between calling a method and doing instance of it and then calling object

wet breach
pine sandal
# wet breach are these not sufficient?

They don't let you find existing strucutres very easily in a way that won't bog down the server. (For example if I wanted to give someone an effect is they were inside on one of the structures.)

wet breach
#

so it wouldn't make sense to make a new instance of it, instead you want to manipulate the one already there

pine sandal
#

It also doesn't seem to have a good way of getting the bounding box of a structure. (Not sure if there is a way to go between the 2 Structure classes Bukkit has)

wet breach
#

and you are right, its not efficient

pine sandal
#

I was the one that original asked about it so I was replying xD

wet breach
#

oh ok

#

yeah you are right they are not efficient but that is because mojang implemented an inefficient method for it

#

spigot attempts to not introduce too much in terms of customizations or bypassing the vanilla mechanics

pine sandal
#

Mojang has a good method for it tho. As I am currently using it in NMS code

karmic phoenix
#

I tried it, still nothing is saving.

storm crystal
#

oh yeah one more question

#

I dont get one line that says this.variable = variable

#

when I see it in class where you have methods and constructor

wet breach
#

when the term this is used it refers to the variable specifically declared in the class, and the variable on the right refers to the one declared in the method

storm crystal
#

Also whats the point of constructor, cant you just define variables inside class and call it a day?

wet breach
#

public class something {

private Something plugin;

public void doSomething(Plugin plugin) {
  this.plugin = plugin // if it was plugin = plugin java thinks you are trying to say plugin from the method equals plugin in the method, when really we want to say plugin from the class equals plugin from the method
}

pine sandal
#

There is a way, the NMS StructureManager class has a structuresAt function. Which takes a block pos and returns you a map holding structures and a longset. Which is different the the normal locateStructure method that tries to find that structure in the world out for a given point.

echo basalt
pine sandal
#

Or setting up something sort of internal state for the class object

storm crystal
echo basalt
#

Uhh no

#

Encapsulation is one of the few core principles of OOP

#

But also with a constructor you simply can't init the object without passing those values

#

With public variables there's no obligation to do so

signal kettle
#
    @EventHandler
    public void onCobaltArmorEquip(final ArmorEquipEvent event) {
        Player player = event.getPlayer();

        int amountOfArmor = 0;

        for (ItemStack i : player.getInventory().getArmorContents()) {
            if (i == null)
                continue;

            if (i.getType().toString().contains("DIAMOND")) {
                amountOfArmor++;
            }
        }
        if (amountOfArmor == 4) { // player has 4 pieces of diamond armor on
            player.setHealth(20);
            player.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 999999999, 50));
        } else if (amountOfArmor < 4) { // player has less then 4 pieces of diamond armor on
            player.removePotionEffect(PotionEffectType.FIRE_RESISTANCE);
        }
    }
}

Why the hell its work like on reverse, when I put last piece of armor then it's do nothing and when I deequip one then I get effect and after puting it again the effect get deleted

wet breach
# storm crystal Can they just be set to public?

think of it this way, there is only two ways to pass variables to other classes. Either the class asks for it or it gets told it. Its like working, sometimes your manager tells you things to do even though you didn't ask but you didn't know you need to do those things otherwise. Then sometimes you ask later for more information but you didn't know to ask until you were first told to do something or something happened during your normal duties and not sure how to proceed.

#

this is the best analogy I can give right now

#

most of the time you want to tell the classes to do something

storm crystal
#

So if I just declare x in class Something I wont be able to change it outside of class with Something.x = 5?

wet breach
#

you could but that changes it for everything

#

not just for your one thing

#

so it may not be wise to do so

storm crystal
#

How can I change its value outside of class?

sterile token
#

Its make your life easier than just trying to discover how it works

radiant latch
#

Hi, do armorstands (or other entities) need to be updated after being teleported?

radiant latch
#

The position of the entity

wet breach
#

Only thing i know that would require updating such things is if the entity is fake and thus it would be required to send some packets to inform of its new location

#

Otherwise if its an entity created using the api and thus server aware of it. It shouldnt be required to do anything else after teleporting as the server would do it for you

#

At least it should anyways

storm crystal
radiant latch
wet breach
#

Sounds like a client issue more then a server one

radiant latch
#

Yeah its likely, but i cant see how i could fix it client side

#

I think i found the issue, it seems like i was spawning the armor stands, and in the same tick, moving them to a different position, which was causing my client to be confused.

Fixed it by spawning the stand at the same place it would get teleported to.

Thanks for the help

sick edge
#

Hi, how do I change the name above the player (I also have Adventure API though paper)

drowsy helm
#

Just intercept it and modify the name value

sick edge
#

With something like Protocol Lib or what?

drowsy helm
#

Yeah you could use protcol lib

#

Few different ways you could approach it

sick edge
#

Why doesnt Spigot provide something for it 😭