#help-development

1 messages · Page 1261 of 1

lethal knoll
#

Yes ofcourse

thorn isle
#

never had any issues with it personally

chrome beacon
#

Using the library downloader is not shading

lethal knoll
#

But you wouldn't shade in this case

#

I know

#

It's just that spigot itself uses shading for providing the libraries at runtime

#

And when you got a server running multiple plugins, depending on the same library

#

it would cause an issue

#

At least that's what I heard

thorn isle
#

that doesn't sound right

slender elbow
#

doesn't mean it isn't against it

lethal knoll
#

Well, in that case, my issue is sorted, I'll use the libraries feature 🙂

slender elbow
#

"it's not illegal if they don't see me"

kind hatch
lethal knoll
#

Thank you all 🙂

#

The libraries feature it is

kind hatch
#
In short, if you're doing something that you think we may not approve of, it's probably going to be flagged as abuse, so don't do it. If you're not sure, ask us at http://www.sonatype.com/contact/general-inquiry. The fact that you take the time to ask first sets you apart from the abusers who expect unlimited free bandwidth. Direct communication will generally enable us to help you accomplish your goals without negatively affecting the community's resource.
thorn isle
#

don't the libraries get cached anyway?

chrome beacon
#

They do

chrome beacon
# slender elbow "it's not illegal if they don't see me"

That's not quite what I meant. They simply state excessive bandwidth/requests which a plugin with a couple hundred downloads probably won't cause.

I'd say it's a bit different from Forge/Spigot/Paper etc that can get hundreds of thausands of installs

kind hatch
#

@light sinew Is the GUI showing up yet?

lethal knoll
tranquil pecan
#

Is this good or i should use the default menu feature?

lavish wing
#

Hello!
Guys, tell me please, how can I build spigot-api manually?

eternal oxide
#

?bt

undone axleBOT
pliant topaz
buoyant viper
#

but yeah, use BuildTools

#

it will generate the necessary files to manually build it

undone axleBOT
#

Usage: !verify <forums username>

umbral ridge
#

man

#

i just wanna permanently delete all these folders because it feels like bloatware

#

or move them to a different dir

barren prawn
#

Heyy, I have a Linux Vserver. I try to figure out, how i can install a minecraft server mit mods on it! I got it actually with a tutorial, but somehow, If I am in the Minecraft console I cant return to the Linux Server, do you know how i can do it?

eternal night
umbral ridge
slender elbow
#

by using spigot :pepelaugh:

eternal night
#

at least remapped and spark have system properties

slender elbow
#

at most all three do

umbral ridge
slender elbow
#

one is a superset of the other

outer elk
#

hi guys i need help
im trying to change player nametag color with scoreboard teams only work for chatcolor

#

but hex colors not working

#

someone know any method for do this?

#

or other method for customize player's nametag?

buoyant viper
#

or is spark integrated into Paper

umbral ridge
#

it's integrated

#

directory recreates if i delete it

eternal night
thorn isle
#

what's wrong with spark?

buoyant viper
umbral ridge
pastel saffron
#

When I upload an update to my plugin, the latest version isn't displayed on the next API page. I've tried deleting the update and uploading it again, but nothing. It still doesn't update. Any help?
https://api.spigotmc.org/legacy/update.php?resource=124156

I've been waiting for an hour since I uploaded the update.

umbral ridge
#

why are ItemFlag not hiding the potion effects?

paper viper
#

Which flags are you using

umbral ridge
#

is there a difference between setting item flags on ItemStack or ItemMeta

umbral ridge
#

so everything

paper viper
#

You’re on paper

#

Probably

#

Right

buoyant viper
paper viper
#

It doesn’t work on paper

umbral ridge
#

xD wil ltry

buoyant viper
#

?jd-s

undone axleBOT
umbral ridge
#

i still cant get it to work

#

stuff like that is also showing up

pastel saffron
#

When I upload an update to my plugin, the latest version isn't displayed on the next API page. I've tried deleting the update and uploading it again, but nothing. It still doesn't update. Any help?
https://api.spigotmc.org/legacy/update.php?resource=124156

I've been waiting for an hour since I uploaded the update.

paper viper
#

you have to add a dummy attribute

#

on spigot it was patched but paper not yet

umbral ridge
#

this one?

paper viper
#

Yes

#

But move to Paper discord for support

umbral ridge
#

I cant join their server

paper viper
#

why lol

umbral ridge
#

I think i got banned a few years ago

#

XD

#

i think some of the staff got pissed off and banned me without a proper reason...but yea

hard socket
#

?paste

undone axleBOT
buoyant viper
#

Rip

kind hatch
remote swallow
#

to get support for the software your using

pastel saffron
#

@kind hatch

#

Why do I get that version? I'm using the same link

kind hatch
#

Could be the cloudflare cache, but I'm not 100% sure.
Might take a while for it to propagate if that is the case.

pastel saffron
#

How strange..

kind hatch
#

Typically it's updated within 30 minutes.

paper viper
kind hatch
#

But I have seen it take 2 hours before

sullen marlin
#

The cache headers will tell you exactly

#

Updates do not need to be instant

sterile token
buoyant viper
#

holy shit ur alive?

sterile token
patent timber
#

Hi guys, I am at a loss here... I have some custom patches to change some things required for custom plugins that were developed a while ago, my developer is no longer around and can't hire another just yet, I am following this guide https://www.spigotmc.org/threads/tutorial-adding-custom-patches-to-spigot.158694/ but what do I do since I already have the .patch files at hand? I tried to add them directly into the Bukkit-Patches and Craftbukkit-Patches folders but there was an error after compilation, something about a maven repository being blocked.

#

They are intended for a 1.8.8 spigot, since that is the core that the custom plugins require.

sullen marlin
#
  1. provide actual error
#

?howold 1.8.8

undone axleBOT
eternal night
#

KekWcry has it nearly been a decade already?? feels like yesterday

blazing ocean
#

Dude you're also 824 years old now

eternal night
#

don't mention it

blazing ocean
#

happy belated birthday btw

#

forgot about it sorry

eternal night
#

danke pepe_hand_heart_2 824 truely was a great year

blazing ocean
#

BC?

eternal night
#

Yea, still had old combat mechanics back then

weary ridge
#

Hello, I am trying to get rid of the logic for players sleeping to skip the night. So far I can do this by using the vanilla gamerule to over 100% sleepers required, but it sends an action bar to the player still. Is there any way that I can just make people allowed to get in bed without triggering any of the time skip logic?

sullen marlin
#

TimeSkipEvent.setCancelled(true)

patent timber
# sullen marlin 1) provide actual error

I was just getting to that, and yes I am very aware that 1.8.8 is old, but this is an old core. I just want to get it back up and running first and then go from there. They are custom protocol support patches allowing 1.8 to 1.18 and some custom API changes.

I am just trying something again and if it errors I'll get back to you

#

(It's been a long time, it's slowly coming back to me lol)

weary ridge
sullen marlin
#

did you set the gamerule back to normal

weary ridge
#

I did

#

it says "Sleeping through this night"

#

even though, yes the time skip is cancelled

#

that event doesnt happen until like 3 seconds after the player enters the bed and gets the action bar popup

sullen marlin
#

oh I misunderstood, you dont want any message. Might be able to cancel interact and .skeep them yourself?

weary ridge
#

Huh?

#

oh cancel them entering the bed and then manually put them into the bed?

sullen marlin
#

yeah

weary ridge
#

Ill look into that

trim quest
#

Hello! I'm currently implementing a simplified version of Spigot's event model from scratch to learn more about event dispatching and listener registration systems. Do you have any advice on architectural patterns or design tips for building a clean and flexible event system? @sullen marlin

#

I nearly finished GoF book

paper viper
#

You don't need to ping md for this

tall dragon
#

Spigot's system is pretty flawed imo 😉

paper viper
#

*Bukkit

tall dragon
#

yea

#

sorry, bukkit

trim quest
sullen marlin
sullen marlin
#

and line 15, shouldnt handlers be static?

slender elbow
#

the whole HandlerList bs is pretty bs and unintuitive that if an event subclass has its own list, listening to the superclass (also with its own list) won't call the listener

#

it's really confusing and having to know which events are listenable over their superclasses is not good dx when it feels more like an impl detail

#

so many people have been caught up in the fact that interacting with armour stands doesn't call the PlayerInteractEntityEvent

#

but its direct subclass that has its own handler list

trim quest
#

just want to improve myself at it

slender elbow
trim quest
#

do you have any book recommendation md5

paper viper
patent timber
#

@sullen marlin I managed to fix it, one of the patches were not applying so I had to skip it, it was a patch for implementing sentry for exception monitoring

#

Does not say what the problem is with it though

mighty wind
#

breeze.getPersistentDataContainer().set(StaticKeys.damageableNMSKey, PersistentDataType.BYTE, (byte) (1));

 ```   if (!(livingEntity.getPersistentDataContainer().has(StaticKeys.damageableNMSKey, PersistentDataType.BYTE))) return;

    byte value = livingEntity.getPersistentDataContainer().get(StaticKeys.damageableNMSKey, PersistentDataType.BYTE);```

would anyone know why this would be returning false (the second block)

paper viper
mighty wind
paper viper
#

Wait

#

Im dumb nvm

#

Hold on

mighty wind
#

nvm

#

Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.IllegalArgumentException: Invalid namespace. Must be [a-z0-9._-]: Clans [in thread "Server thread"]

tranquil pecan
umbral ridge
#

what is the best way to compare inventories? is there some sort of identifier that can be set to each inventory

#

I dont want to compare all items in inventories because that could take a long time

sullen marlin
#

What are you trying to compare

umbral ridge
#

on click event, i just need to make sure that the inventory that is clicked, is the right one

sullen marlin
#

Wdym right one

umbral ridge
#

on click event, how do i know when I have clicked this custom inventory

sullen marlin
#

Pretty sure you can literally .equals()

#

Probably even ==

buoyant viper
#

holy shit i just realized plugins use the java.util.Logger ?!

#

this whole time i thought they used Apache

umbral ridge
#

how do you ban a player permanently

#

ban() takes in reason, expires, and source.. soo expires should be like maximum INT or something?

fallow saffron
#

I think most plugins that handle bans just kick the player using AyncPlayerPreLoginEvent or PlayerLoginEvent

#

or event.setResult or something along those lines

umbral ridge
#

ty

young knoll
#

BanList uses an instant for the expiration

#

Says to use null for forever

tall dragon
# sullen marlin care to elaborate?

Well in my opinion the lack of proper registration allowing you too see a list of registered events, i would also love if one could listen to a group of events at once. for example "PlayerEvent".

buoyant viper
#

TIL URI#create(String) exists

rough drift
buoyant viper
#

ive been doing fuckin new URL(String).toURI() for like ages now

rough drift
#

URI.create(...).toURL()

buoyant viper
#

yeah ive been doing the Very archaic method instead

#

is there plugin init state that could make it load before another plugin even gets registered/recognized

#

id imagine not but i got a super awesome amazing idea for an auto updater

young knoll
#

Dont think so

#

I believe they are all read at once

chrome beacon
buoyant viper
#

the what

chrome beacon
#

If you make a folder called update inside of the plugins folder you can put your updated jar there

#

Spigot should then use them during the next restart

#

This feature has been around for a real long time now but it's not very known

buoyant viper
#

hm

fossil cypress
#

Maybe not necessarily a specific question but more of a general outlet that I need to bring out. One thing that makes me hate coding is that when learning basics and all that you usually never really get anywhere specific. Most guides or tutorials that I followed for Java specially never really go much further than basic knowledge, so when I want to create something new, I always get hard stuck because I just don’t know how to do it, and asking for help or googling things sometimes helps but I don’t want to look things up every minute because I’m just so new. Are there any people here that feel the same or were like this and somehow got past it? Genuine question uwu

eternal oxide
#

You need to learn the basics, once thast is done you are only limited by your imagination

young knoll
#

And problem solving skills

grim hound
#

how can I read the frames of a gif while preserving its alpha in colors?

#

cuz uh, all googling results don't preserve the alpha

drowsy helm
#

As long as you understand what you are potentially copy pasting, then you are fine

ivory sleet
sly topaz
grim hound
#

I'm looking at one right now

#

it has a transparent background

#

and .gif

sly topaz
#

it doesn't achieve transparency the same way, they have a color palette which contains a transparent bit

#

that means that if you are parsing color properly, transparency should be kept

grim hound
#

does this

#

happpeeeennn

fossil cypress
drowsy helm
eternal oxide
#

If its an API question, here. If its Java, google

ivory sleet
shadow night
#

Ai can be used a search engine, most have the feature to search in the web

drowsy helm
#

Being a proficient programmer also means being good at optimising google search

shadow night
grim hound
grim hound
#

when you say bit

#

you mean like

#

bit bit

#

or like

#

~8 bit?

#

is it like "color or no color" or does it have an alpha param

sly topaz
#

it doesn't have an alpha channel, as mentioned

#

you have a color palette that allows only for 8-bit

grim hound
#

so its a true false

sly topaz
#

sec I am losign

fossil cypress
drowsy helm
fossil cypress
#

I think it would be more spigot related or at least spigot / paper

sly topaz
#

that said, what is the code in question that is causing you trouble

grim hound
#

its a mix of stack overflow guy's code, mine & deep seek's

#
private static final class ImageFrame {
        private final int delay;
        private final BufferedImage image;
        private final String disposal;
        private final int width, height;

        private static int i;

        public ImageFrame(BufferedImage image, int delay, String disposal, int width, int height) throws IOException {
            this.image = image;
            this.delay = delay;
            this.disposal = disposal;
            this.width = width;
            this.height = height;

            var f = new File(Main.DATA_FOLDER, i++ + "whythefuckdoyounotwork.png");
            ImageIO.write(this.image, "png", f);
        }

        public ImageFrame(BufferedImage image) {
            this.image = image;
            this.delay = -1;
            this.disposal = null;
            this.width = -1;
            this.height = -1;
        }

        public BufferedImage getImage() {
            return image;
        }

        public int getDelay() {
            return delay;
        }

        public String getDisposal() {
            return disposal;
        }

        public int getWidth() {
            return width;
        }

        public int getHeight() {
            return height;
        }
    }

private static BufferedImage copyImage(BufferedImage source) {
        BufferedImage copy = new BufferedImage(source.getWidth(), source.getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = copy.createGraphics();
        g.setComposite(AlphaComposite.Src);
        g.drawImage(source, 0, 0, null);
        g.dispose();
        return copy;
    }
#

if you need it

ivory sleet
#

devious file name

sly topaz
#

you could also make a class for the metadata instead of just putting everything on the method lol

grim hound
grim hound
grim hound
#

ah, wait no, not the code-

#

oh now it works

#

thanks man ;]

sly topaz
#

the GIF format seems to have a thing called GCE which is like a header that's added per frame

#

that tells you whether a frame has transparency and the color index in the palette to treat as transparent

#

GIFs also seems to support local color tables however I don't think most GIFs readers support that feature

grim hound
grim hound
sly topaz
grim hound
#

okay, maybe a bit of an odd question but uh

#

...why does this code draw the images over the very first frame?

sly topaz
#

well, you're not disposing of the previous frame properly it seems, but I haven't yet looked at the code to verify

grim hound
sly topaz
#

you also don't seem to be handling the doNotDispose disposal method

sly topaz
#

I am having a hard time reading this on mobile lol, let me wake up and turn on my pc

waxen acorn
#

hi, I have a question. I'm recently learning modding on 1.21 by using my known experience on 1.20 modding but it seems that custom payloads got changed. Is there any way to use the updated custom payloads on modded client to communicate with Bukkit/Spigot servers? It seems that newer Spigot has patched DiscardedPayload and forced it to hold data but unfortunately this is undone on vanilla clients.

#

I've searched around this but nothing useful. :/ Since DiscardedPayload is a record I had no idea on how to do workarounds using Mixin in my mod.

chrome beacon
#

Are you on Fabric?

#

Just need to know why you're trying to use mixins

zenith lance
#

Help I want help

#

I want share EVRYONE my plugin for Minecraft server

#

How to create projects can you tell me

#

I can't find projects option

slender elbow
#

bees shooting lasers out of their rear end

#

that also explodes

chrome beacon
zenith lance
#

Yes

#

And I want to share EVRYONE

#

It's free

chrome beacon
#

Make sure 2FA is enabled

zenith lance
#

Yes it's already on

slender elbow
#

i like your enthusiasm

zenith lance
#

Thank you for helping 😊

chrome beacon
#

Then you should have a post resource button in the top right of the resources page

zenith lance
#

I am New so that's why I don't know

#

It's?

#

Can you come vc i will show my screen share

#

Olivo BRO help

chrome beacon
#

It won't be up there

#

That's your account settings and stuff

zenith lance
#

Um so where?

#

Ohh

chrome beacon
#

Also if you're on mobile it's centered at the top

zenith lance
#

Ohk

#

Still I am confused

#

I can't find

zenith lance
#

Thank you

grim hound
#

um

#

it doesn't

#

um

#

this breaks it, very much

smoky anchor
#

\o chat
how do I call the thing that prepends messages from certain plugins/mods ?
The [Skyblocker] in this instance

chrome beacon
#

Prefix

#

?

smoky anchor
#

sounds lame lul

thorn isle
#

that's what it's called

#

alternatively affix but that's very rarely used

slender elbow
#

bro skipped english class

somber scarab
#

Hi peeps :)

I just have a quick question about maven. I am familiar with what maven does and more or less how it works. But just to make sure I understand it right:

does maven manage updating your spigot api version for you? does it do it automatically or every time I build it?

thorn isle
#

if the version is postfixed with -SNAPSHOT, it will fetch the latest snapshot of that version

#

but no, it won't automatically increment the version itself

chrome beacon
somber scarab
thorn isle
#

for example if you build against 1.21.4-R0.1-SNAPSHOT, you will always build the latest build of 1.21.4; but it will not automatically switch to 1.21.5

somber scarab
somber scarab
thorn isle
#

this is one of the biggest issues with maven, that is, it caches the dependencies locally in your .m2, so even though your repositories might no longer serve those builds or have gone completely offline, your local setup will build; but the build isn't reproducible for anyone else, defeating the point of a build tool

thorn isle
#

this is a huge pet peeve for statelessness purists

somber scarab
#

wait so you're telling me out of the box maven doesnt do what it's supposed to do?

thorn isle
#

it does, but as with all solutions and things in this world, there are caveats

somber scarab
#

oh if you're offline

#

well that would make sense if you're offline. it'd only look for local repos or smth

thorn isle
#

but yes you can just change the version in the pom if you want to build against say 1.21.5 instead

blazing ocean
somber scarab
#

ahh nice

thorn isle
somber scarab
#

how do you guys launch a local server for testing? I've been using the build tool so far but I'm not sure how easy it is to just have multiple minecraft version and host swap between them

thorn isle
#

imagine buildtools except it gets cloned along with all of its intermediate steps for every individual project

blazing ocean
#

but man loom caches are huge

thorn isle
chrome beacon
#

It loves to auto rebuild

chrome beacon
#

When I'm testing stuff..

orchid gazelle
blazing ocean
somber scarab
#

can you send me some documentation so I can set this up? this sounds wild

chrome beacon
blazing ocean
#

you're testing on WHAT??!

blazing ocean
chrome beacon
chrome beacon
#

You can use that as a base

blazing ocean
#

the paper propaganda is insane

thorn isle
#

convert now

blazing ocean
#

I would never clueless

mortal hare
#

man this feels like me

#

its so tempting to make code abstractions by assumption that you're gonna need this

zenith lance
#

Hello I add in resources my plugin how to share EVRYONE can download my plugin

#

Help me

somber scarab
zenith lance
#

Yes

somber scarab
#

i have no idea what you mean, sorry

zenith lance
#

No problem

chrome beacon
thorn isle
#

aren't you the same guy who just asked this 5 minutes ago and got handheld all the way to the "post resource" ui on the site?

zenith lance
#

Actually I add resources for plugin required l

#

So how to share this plugin EVRYONE

somber scarab
zenith lance
#

My plugin is ready

somber scarab
#

😕

zenith lance
#

I add in resources

#

Looks like this

somber scarab
#

what are those resources?

chrome beacon
#

So what's the problem

#

?

somber scarab
#

O

#

on spigot

zenith lance
#

Idk 😶

thorn isle
#

🤡

somber scarab
#

you want to share your plugin?

zenith lance
#

I chose spigot

#

Yes

somber scarab
#

send the website link bro

#

???

chrome beacon
#

You already did share your plugin?

somber scarab
#

thank you

chrome beacon
#

I don't understand what the problem is?

somber scarab
#

you shared it with us

zenith lance
#

No

somber scarab
#

now @zenith lance don't send me the link

#

send to EVERYONE

zenith lance
somber scarab
zenith lance
#

Everyone can download?

chrome beacon
#

yes

somber scarab
#

as ready as can be

mortal hare
zenith lance
#

Can you check please

somber scarab
zenith lance
#

Accept my request

somber scarab
#

no

zenith lance
#

Please check your can download or not

somber scarab
#

can you download?

#

if yes, so can everyone else..

#

wild..

thorn isle
#

try downloading it in a private tab/window

#

presumably though if its listed it can be downloaded, idk why you're making such a fuss about this

orchid furnace
#

Hiya, quick question - how do you get team prefixes of a specific player?

mighty wind
#

whats the default player walk speed

#

is it 0.2

orchid furnace
#

ty!

chrome beacon
mighty wind
#

some funky stuff happens when i change it

#

zzz

somber scarab
#

why does my new gradle project come unfinished? I am using intelliJ minecraft dev plugin

mighty wind
#

is there a way to freeze a player and stop them from moving+jumping

#

apart from cancelling move event

chrome beacon
#

What version are you on

mighty wind
#

1.21.4

umbral ridge
#

how do you get inventory title on InventoryClickEvent

#

there is no getTitle

worldly ingot
#

event.getView().getTitle() because it's not the inventory that has a title, it's the view

umbral ridge
#

inflatable ty choco

worldly ingot
#

I wouldn't recommend comparing inventory title names if you're implementing menu UIs, but that's a separate problem lol

umbral ridge
#

that's one of the steps im making because i cant use equals on inventories because they're dynamic

worldly ingot
#

InventoryView can be passed around though 👀

#

It's instanced

umbral ridge
#

hmmmmmm

worldly ingot
#

Player#openInventory() returns an InventoryView if you want to hold reference to and compare that

umbral ridge
#

yeah will do that instead

#

ChocoView

worldly ingot
#

== is fine but you can use .equals() if you really want to

#

Comes out the same. Don't think the IV implementations override it

umbral ridge
#

yea ill have to use inventoryview because i cant compare titles either.. that's dynamic too

#

but first i need to smoke a 🚬

#

I have this and i have to somehow store the InventoryView.

because as soon I use the command /ban <player> , the data is sent to the sql server, and a ban data is stored, ban state saved as PENDING. So I'm still thinking things through.. after you select the values and click the green dye, data is updated in the sql server, and the player is banned.

so how do I make this secure.. InventoryView could be in a HashMap<UUID, InventoryView> ? I guess I have to create the entire class and cache all of that aaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhh that is bs

#

forgot to add the PENDING enum to the sql server

worldly ingot
#

Yeah a Map<UUID, InventoryView> is totally fine. Just be sure to remove it from the map when the inventory closes too

#

Not that it matters too much tbh

umbral ridge
#

yeah

dark lynx
#

so i have my aternos (iknow im broke okay) an i am trying to ad smartspawners for about an hour already and it doesnt work can somone help me?

#

wait no way

#

it works

safe beacon
#

Hello, I would like to ask: The server has Vault and Essentials installed, so why does the following code not deduct money from a player when I run it?
private static final Economy economy = getServer().getServicesManager().getRegistration(Economy.class).getProvider();
economy.withdrawPlayer(player, amount);

thorn isle
#

static final

#

which class is this in?

#

if it's in your plugin main class, or any class initialized by your main class' clinit, it will run before vault/essentials has a chance to register any providers

mortal hare
#

i always took vault for granted for economy stuff but how does it store the data persistently?

#

i've actually never thought about it

#

nvm i forgot vault is just an abstraction lol

#

you still need economy plugins to support it lol

paper viper
worldly ingot
mortal hare
paper viper
safe beacon
mortal hare
chrome beacon
#

vanilla has permission levels, vanilla does not have an economy system

paper viper
#

^

mortal hare
#

fair enough

paper viper
#

Like 0, 1,

mortal hare
#

probably not because of that but because there's many instances of how economy persistence can be implemented

worldly ingot
#

I tried speaking with economy developers but ultimately the idea was shut down by Paper developers who wanted so many different things

#

Which is usually why most of my PRs get doomed to review hell lol

paper viper
#

One thing too is that not every server needs an economy. Maybe it’s better to have it be like a plugin server extension than something built in

worldly ingot
#

No, an abstract API directly in Bukkit should definitely be a thing

#

Sponge has one, even

thorn isle
#

there's one for permissions so i don't see why we couldn't have one for economy

slender elbow
#

why not two?

worldly ingot
#

That sounded sarcastic, I'm being serious lol

paper viper
#

Actually unifying economy would probably be better. I took a look at Sponge’s and honestly it would be very useful so there aren’t a million different economy plugins to hook into

somber scarab
#

how do I know know what the dependency parameters are when I would like to utilize a plugin in my project?

#

like world edit's for example

orchid furnace
#

Heya, on the PlayerDeathEvent is the getEntity method returning the player that died or the thing that caused the deatrh?

somber scarab
#

I assume the player

#

usually when you need the killer you do getKiller() or maybe this method is outdated

#

its been a while since I made a plugin

azure vault
#

what packets do i need to send in order to change a player's head rotation? neither entity look nor entity head rotation do anything

echo basalt
#

they should work

#

there's also a head rotation packet

#

nvm you mentioned it

chrome beacon
#

Yeah those are the packets

azure vault
#
        PacketContainer enforceRotation1 = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.ENTITY_HEAD_ROTATION);
        enforceRotation1.getIntegers().writeSafely(0, entity.getEntityId());
        enforceRotation1.getBytes().writeSafely(0, (byte) (playerEyeYaw*256F / 360F));

        PacketContainer enforceRotation2 = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.ENTITY_LOOK);
        enforceRotation2.getIntegers().writeSafely(0, entity.getEntityId());
        enforceRotation2.getBytes().writeSafely(0, (byte) (playerEyeYaw*256F / 360F));
        enforceRotation2.getBytes().writeSafely(1, (byte) (playerEyePitch*256F / 360F));
        Bukkit.broadcastMessage("Yaw " + playerEyeYaw*256F / 360F + " pitch " + playerEyePitch*256F / 360F);
        ProtocolLibrary.getProtocolManager()
                .broadcastServerPacket(enforceRotation1);
        ProtocolLibrary.getProtocolManager()
                .broadcastServerPacket(enforceRotation2);
#

this does nothing

chrome beacon
#

Are you making NPCs

azure vault
#

no

#

im trying to rotate the player themself

chrome beacon
#

Teleport the player if you want to rotate them

azure vault
#

if i teleport them they would be stuck in place

#

(i tested this already)

thorn isle
#

neither of those are the packets you're looking for

azure vault
#

oh

thorn isle
#

what you want to do is send a relative move/teleport packet

#

and set the yaw/pitch to relative

azure vault
#

thanks

thorn isle
#

or if you want to enforce a specific direction, rather than rotate, set them to absolute and the xyz fields to relative

azure vault
#

🙏

craggy lagoon
#

how do i make a website for my minecraft server

#

i got the domain

azure vault
#

you either use a hosting platform or run apache/whatever on your own server

craggy lagoon
#

teach me king

azure vault
#

what distribution are you using

craggy lagoon
#

cloud falre

azure vault
#

what

blazing ocean
#

well you first have to actually make the website

#

and then you can think about hosting

craggy lagoon
#

well

azure vault
#

@craggy lagoon where are you running your minecraft server?

craggy lagoon
#

how do i make a website

blazing ocean
azure vault
blazing ocean
#

not relevant though?

azure vault
#

very relevant if they want a tutorial on how to set up apache

blazing ocean
#

not relevant if they haven't even made the website yet

craggy lagoon
blazing ocean
#

those are programming languages-

craggy lagoon
#

what is apache

azure vault
blazing ocean
#

not relevant for now

craggy lagoon
#

ok so

#

how would i create a website

blazing ocean
craggy lagoon
#

i dont want to

blazing ocean
#

no website for you then

deep parrot
#

hello i found an old plugin for a hardcore server that kicks everyone and regens the world when anyone dies. i just want to make one small tweak to it but i have no clue how plugin development or java at all works. can anyone help me out?

azure vault
#

is it open source or do you only have the jar

deep parrot
#

thats all i have

azure vault
#

old plugin
from 2022

#

😭

azure vault
deep parrot
#

just add like a 30 second delay before it kicks everyone

#

thats it

azure vault
#

ill take a look

deep parrot
#

thanks bro much appreciated

azure vault
deep parrot
#

1.21.5 but this version was working fine when i tested it

azure vault
#

ye

#

i forgot how to add libraries in recaf so im just gonna copy paste the code lol

thorn isle
#

no source code but depending on how the classes are laid out it could be easy to selectively recompile the part of it that'd include the delay

deep parrot
#

the furthest i got was i could see the java classes but couldnt edit them i got no clue how it works ive only worked with python

azure vault
#

recaf allows u to pretty easily edit the classes directly

#

but i forgot how to add libraries in there

#

@deep parrot do you want it to broadcast a message or something

deep parrot
#

could you do that?

#

just make it say resetting in 20 seconds?

azure vault
#

cant send files here

#

here

deep parrot
#

will try it now

azure vault
#

ok there might be an issue with formatting

#

let me know if u see  in chat

#

this one shouldnt have that issue

deep parrot
#

yeah saw the A but other than that working perfectly tysm man

#

nvm fixed thanks again much appreciated

willow robin
#

search for java devs

chrome beacon
#

?services

undone axleBOT
grim hound
#

Just like before the src alpha component switch

grim hound
sly topaz
#

because if you're just trying to read the frames of a gif, you don't have to do all that

knotty gale
#

I have 2 plugins that depend on each other to make a basketball game, one does the basketball stuff and the other keeps score, the only problem is, is that only one game can run at a time. How would I generally make it so you can create multiple at a time and then those individual games keep track of themselves

silver robin
knotty gale
#

it also broadcasts every message it sends instead by the individual players in each game, but I dont understand how I could group them together

cosmic dock
#

Spigot uses MCP, right?

eternal night
#

no

sly topaz
#

I don't think anything has used MCP in ages

cosmic dock
#

well I was using it, but that's also just because someone has told me

#

what is used nowadays?

sly topaz
#

what are you trying to do

cosmic dock
#

well I already used MCP, I was just wondering how .patch files can be made, I think Spigot has them

#

like how is Spigot set-up?

#

when they edit server source code, are those .patch files created right when hitting CTRL + S to save?

grim hound
#

Xd

#

I couldn't do it with a gif img reader

sly topaz
cosmic dock
#

so Spigot doesn't even make patches?

sly topaz
#

the commits are patches

cosmic dock
#

like it's all just from Bukkit and CraftBukkit?

sly topaz
#

for the most part, yes

cosmic dock
#

and the other part?

sly topaz
#

well, there's a few patches from the Spigot repository, but those are not really used anymore in development

#

they can be made by making a commit on the respective Spigot-API/Spigot-Server folders that get generated when you run applyPatches.sh, however Spigot doesn't do development there, aside from the few patches that actually reside there due to historical reasons

cosmic dock
#

oh because I was also wondering about how one can contribute changes for Spigot, but if it's like not at Spigot then, uhh idk 🤷

sly topaz
#

once you make your changes and test them, make a commit (preferably on a different branch) on each repository with your changes applied and then you just push them to your stash fork

#

once you push them to the fork you can make a PR from the bitbucket UI

sly topaz
robust helm
#

when i use compileOnly in build.gradle, and the needed dependency is a plugin which is added to dependsin plugin.yml, it should work without any further configuration right? as long as the dependency plugin is on the server

sly topaz
#

What is your issue?

robust helm
# sly topaz Yes, but that sounds like a leading question

i have a Utils plugin which is required by my lobby plugin. utils plugin is build as a fat-jar and has an artifact in MavenLocal. my project uses compileOnly(<the utils artifact>) and depends: [<utils plugin>], but i still get a NoClassDefFound error

#

if utils plugin is disabled, it should not work right?

sly topaz
#

?paste

undone axleBOT
sly topaz
robust helm
sly topaz
#

Lol

robust helm
#

cuz utils thingy is disabled

#

lemme fix it rq and ill ping u when im done

sly topaz
#

Spigot has its own set of mappings if that’s what you’re interested in

young vine
#

Isn't MCP long dead? Lol

#

There's no need for it since Mojang puts out mappings now

sly topaz
robust helm
#

@sly topaz alr i was stupid. now that the utils plugin is enabled it works correctly

#

ty!!

grim hound
paper viper
#

One day there will be a MCP-Reborn-Reborn

#

or MCP-Reborn^2

cosmic dock
grim hound
sharp flower
#

?services

undone axleBOT
short pilot
#

hi fellas

#

my custom entity keeps following even after the player crosses a large distance and im not sure why, since i specified false in the constructor for field followingTargetEvenIfNotSeen

this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.0D, false));

#

Is it to do with the max follow range on the server settings perhaps?

ivory sleet
#

i do believe that's an entity type setting

#

if i remember my nms correctly

fickle spindle
#

I need diff types of infos about a game like the player count team played amount, map etc I want to make all of that in a var which statement I should use ? Because rn I'm using 4 vars and I don't think this is the right way

sage perch
#

Hi chat

drowsy helm
fickle spindle
drowsy helm
#

can you show your current code

fickle spindle
#

Other ways I would use a database but I don't have to do any saving data so I think it's useless

drowsy helm
#

sounds like you just need to use a record class?

#

again, without code I have no clue what you are talking about

fickle spindle
fickle spindle
somber scarab
#

Hey guys I get a versioning issue when using worldedit's BukkitAdapter..

#

cannot access com.sk89q.worldedit.bukkit.BukkitAdapter
bad class file: C:\Users\gamer.m2\repository\com\sk89q\worldedit\worldedit-bukkit\7.3.4\worldedit-bukkit-7.3.4.jar(/com/sk89q/worldedit/bukkit/BukkitAdapter.class)
class file has wrong version 65.0, should be 61.0

chrome beacon
#

Looks like you're using an old Java version to compile

somber scarab
#

why would this happen all of a sudden unless something got updated. but I dont think maven does that on its own?

#

it has been almost a year since I worked on that plugin so maybe that?

#

but files have been unchanged

drowsy helm
#

Are you just depending on latest world edit

#

Or a specific version

chrome beacon
#

Maven uses the jdk set in path

somber scarab
#
            <groupId>com.sk89q.worldedit</groupId>
            <artifactId>worldedit-core</artifactId>
            <version>7.2.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sk89q.worldedit</groupId>
            <artifactId>worldedit-bukkit</artifactId>
            <version>7.3.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>```
chrome beacon
#

You don't need to modify the pom

#

Just change the version of Java maven is using in your environmental variables

#

That would be in path or JAVA_HOME

somber scarab
drowsy helm
#

You can change the java version in your pom

#

Environment variable is a round about way of doing that

chrome beacon
#

Yes

chrome beacon
#

Don't put system specific file paths in there 🙏

drowsy helm
#

What? It’s not pointing to a file location

#

<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>

#

on phone so no format, but you can set compiler target version

chrome beacon
#

The jdk cannot understand a Java version newer than itself

#

Which is the issue here

#

Source/Target won't change which jdk is being used

#

Only what version the compiler is targetting

#

So setting that will change nothing

drowsy helm
#

Ah you right

somber scarab
#

I fixed it.

#

I just forogt to change the project JDK

#

it was 17

young void
#

why do some people develop plugins in kotlin?

why?

blazing ocean
#

because some people prefer kotlin over java

young void
young knoll
#

Those people are weird

young void
#

but like why would someone decide that

young knoll
#

-# Gottem

young void
blazing ocean
young void
#

i think it has something to do with peoples background like i come from c# and java is more natural to me

paper viper
#

Nah I think it’s just personal preference

blazing ocean
#

it is just personal preference

young void
blazing ocean
#

says who

paper viper
#

Java was my first language

#

That doesn’t really apply

blazing ocean
#

I'm probably the biggest kotlin fan in this server and I started out with JS and Java

chrome beacon
#

Java was my first lang as well

blazing ocean
#

so yea no

#

my friend (@ suitsnap) told me to try kotlin one day and I've been using it for almost two years now yea

young void
paper viper
#

I mean it’s just another language

blazing ocean
#

I mean, look at the docs of the language and see for yourself

weary ridge
# weary ridge it says "Sleeping through this night"

I solved this. This is sent to the client as a SERVER_CHAT packet, so I intercept and cancel it if it has the translation key "sleep.players_sleeping" or "sleep.skipping_night", no need to fake put the player into a bed

grim hound
#

tbf

#

kotlin and java are pretty similar

#

java is sometimes slightly longer in some of its definitions

blazing ocean
#

they aren't that similar

grim hound
#

and kotlin is sometimes too implicit

grim hound
#

var

#

uh

#

yeah that'd be it

blazing ocean
#

var being a variable is also something no other languages would dare to do

#

so unique to java

grim hound
#

and kt

#

it's better than doing

#

like wtf rust

#

let

blazing ocean
#

explicit mutability is a good thing

grim hound
#

aren't editors best for that?

#

and have the compiler see for itself whether something is actually mutable

blazing ocean
#

are you suggesting mutability to be inferred

#

that's the stupidest thing I've ever heard lmao

thorn isle
#

i'll take explicit mutability over explicit immutability any day of the week

#

final abuse in java vars is one of my pet peeves

grim hound
blazing ocean
#

no it isn't

grim hound
#

int a = 3

#

final int a = 3

#

final not necessary

#

can be inferred

blazing ocean
#

for locals, maybe

#

but that just makes things even less clear and more confusing

grim hound
#

what I was going for-

grim hound
blazing ocean
#

but, why

grim hound
#

okay, so that we're on the same page

#

I mean that local variables (be it primitives or object references) should not need to have an explicit mutability keyword used, as it can be inferred by the compiler

blazing ocean
#

inferred mutability in some places brings the clarity level down to zero ngl

thorn isle
#

i generally don't like making it explicit either way, because mutability/immutability doesn't really describe what we try to achieve most of the time

grim hound
blazing ocean
#

how is that relevant

thorn isle
#

generally when you want locals to be final, you don't actually want them to be final; you want two or more variables to be coherent

grim hound
#

ah, if only IDEs existed

thorn isle
#

e.g. you have variable a and variable b and some constraint between a and b must always hold; suppose assert (a == 10 - b)

#

a or b or both or neither being final doesn't quite represent this

#

mutating one is fine but if and only if you mutate both and respect the constraint

grim hound
#

just curious

thorn isle
#

i'm not aware of any that really makes it easy natively, but anything that supports tuples natively makes it easier, since then you can make a and b a tuple

grim hound
#

kinda wild that java.util does not have a Pair class

thorn isle
#

oop purists want you to create a case-specific class for each pair

#

e.g. Map.Entry is essentially just a pair

#

i do kind of see the point but it is excruciatingly inconvenient most of the time for sure

grim hound
#

its associated with a map

#

I guess you could instantiate it without a map, but like, why

grim hound
#

I do not see the point

#

there is an OptionalInt

slender elbow
#

(unfortunately)

grim hound
#

why would there not be a Pair, IntPair etc

thorn isle
#

i hate optionals

blazing ocean
#

optionals are so painful

grim hound
#

We unite then

ivory sleet
#

but we fuck with Option and Maybe :D

ivory sleet
young void
#

hmmm i wonder if we could use npc's with pathfinding algorithm agents

#

i suppose it has been done before

chrome beacon
#

Npcs with pathfinding has indeed been done before

drowsy helm
young void
#

Hmmm

#

So cool

chrome beacon
#

Could look in to Sentinel

cosmic dock
#

do the Mojang Mappings also make this have "usages"?

slender elbow
#

mojang mappings are just the names of classes/methods/fields

#

it has nothing to do with the usage of those, no decompiler can heuristically tell where any given 20 or 50 int literal in a method is coming from

kindred maple
#
public void spawnCustomZombie(Location loc) {
        Zombie zombie = loc.getWorld().spawn(loc, Zombie.class);
        zombie.setHealth(20);
        TextDisplay display = (TextDisplay)loc.getWorld().spawnEntity(loc.clone().add(0, 2.5, 0), EntityType.TEXT_DISPLAY);
        display.setText(ChatColor.RED + "❤ " + zombie.getHealth());
        zombie.addPassenger(display);
        zombie.setCustomNameVisible(true);
    }```

so how do i get the textdisplay to actually show up here, zombie spawns fine, no errors, just no display
thorn isle
#

keep in mind that text displays are invisible from behind

#

so unless you are looking at it from a particular direction, you won't see it

#

try enabling billboarding on it

#

code looks fine

kindred maple
#

display.setBillboard(Display.Billboard.CENTER); like this yes?

thorn isle
#

myeah

kindred maple
#

never worked with textdisplays ever 😭

#

hm okay so yes i can see it fine, but yeah t disappears from behind, any info on how to fix this

drowsy helm
#

You can just mirror it on the other side

kindred maple
# drowsy helm Dont think you can for the static ones
public void spawnCustomZombie(Location loc) {
        Zombie zombie = loc.getWorld().spawn(loc, Zombie.class);
        zombie.setHealth(20);
        TextDisplay display = (TextDisplay)loc.getWorld().spawnEntity(loc.clone().add(0, 2.5, 0), EntityType.TEXT_DISPLAY);
        display.setText("[RARE] Zombie\n" + ChatColor.RED + "❤ " + zombie.getHealth());
        display.setBillboard(Display.Billboard.CENTER);
        display.setDefaultBackground(false);
        display.setShadowed(false);
        display.setSeeThrough(true);
        zombie.addPassenger(display);
    }```

no clue how but this lets me see the display from behind
drowsy helm
#

Maybe the see through option?

young knoll
#

I mean

#

If it’s got a billboard set to centre it should never really have a “behind”

#

It always renders facing the camera

sonic goblet
#

^ not sure the technical side of it but I use billboard text displays as nametags on all the entities on my server and you can see them from all sides

#

That should work

kindred maple
#

whatever it is, i am glad it worked ahaha, i am wonderng if i can get rid of the dark box that is around the text

cursive kite
#

I am coding a bunch of features and keep getting kicked for

[02:49:53 INFO]: kingbluesapphire lost connection: Internal Exception: java.io.IOException: Error while read(...): Connection reset by peer

#

How do i find out more

sly topaz
cursive kite
#

Yup

tranquil pecan
mighty wind
#

where can i see all the events in spigot

#

is it possible to listen to player.setHealth

blazing ocean
tranquil pecan
hushed spindle
#

does anyone know why using Player#breakBlock is so much laggier than when a player breaks a block normally ingame

drowsy helm
#

How are you invoking it

hushed spindle
#

i made a custom mining system that sets the players mining speed to 0 and then keeps track of block damage itself, and then when a block should be broken it is

#

so the player is no longer breaking blocks itself and for every time that they would, a block is broken

#

so no more blocks are broken than usual

#

the damage system seems to not be a cause itself but timings are showing that this system is really very laggy with a bunch of players and that Player#breakBlock is the major cause of it

#

in another matter i made some custom events and invoking those also seems to be disproportionately laggy compared to other spigot events, could be related

#

are custom events and their listeners not cached?

thorn isle
#

Show spark report

somber scarab
#

what is the most clean code way of handling alot of messages in the plugin? like help commands and error messages, joining lobby, losing a game and so on

#

first I had strings lying around the whole code base. then I unified a "message handler" class that can be interacted with

#

but I still find my solution kind of unclean

#

basically I have a config file with all the messages the plugin will ever output. I save them each in its own variable and add a public getter for my plugin's use

#

but I still feel like there could be a more dynamic way of doing this? I'm not sure

paper viper
#

There’s really no other way. I mean you can skip the getter methods and make them static constants because they don’t change. But other than that that’s the most you can really do

somber scarab
paper viper
#

I have a Locale interface with just constants and it’s like 600 lines long

sullen canyon
paper viper
#

That’s no different from a constant

somber scarab
#

the plugin is a minigame and is supposed to work for days under stress. so initial load times are not that big od an issue

paper viper
#

The issue isn’t performance. You should use a constant for messages because they could be used multiple times (design wise it’s easier to just change the key in the constant), and they are not changeable. Keeping them as a singleton constant would be ideal

sullen canyon
somber scarab
#

ahhh I see

somber scarab
#

but finals have to be initialized.

#

how do I do that when I first have to read the config

paper viper
#

How I do is I have a separate properties file and load it into a ResourceBundle

#

That’s how most software these days do it

#

Like the locale_en_us.properties

#

And then I just have a class dedicated to storing these constants and loading them all at once at start

somber scarab
#

huh.. that's new to me.. do u have a resource out there I can read through? or a video i can watch?

#

Idk waht ResourceBundles are

paper viper
#

I use minimessage and adventure components to color my messages, as well as arguments

#

You don’t have to do this btw

somber scarab
#

also to let users manage their own localizations or to add mroe laguages later

fickle spindle
#

i need to store diff info about a game but i think it's useless to do it with a databse how can i store datas like Player amount, map name, player limit, whitelist, player for team blue, player for team red etc

robust helm
#

or just in a file

fickle spindle
# robust helm variables 🧠

ye i'm currenly using a lot of var there isn't a way for store all with the same var and then like test.playeramount test.x for all the stuff?

eternal oxide
#

This is what Objects are for

short pilot
#

what scenarios would EntitiesLoadEvent be called, besides a chunk being loaded by player?

young knoll
#

Whenever a chunk is loaded I would guess

#

I assume the game always loads entities when a chunk is loaded? Idk

azure vault
#

Every time any entity goes through the portal, it loads the chunk

vague swallow
#

Is there a way to check if a player is pressing w, a, s, d, space or shift when he's sitting on an armor stand?

short pilot
#

i dont think so is there?

#

maybe listening for things that would correspond to that

#

but not the keys itself

drowsy helm
#

You can most definitely do it on something rideable

pseudo hazel
#

isnt there some kinda input event?

vague swallow
#

I saw a vehicle plugin one where you could fly helicopters by ascending and descending with space and shift and moving forward and backward with with w and s and turning left and right with a and d

vague swallow
#

Thanks!

trim lake
#

It is possible to send to the player clickable text outside chat? From what I have looked is not possible in actionbar, scoreboard or title. Or it is?

pseudo hazel
#

you cant

#

because you cant click on that

trim lake
#

That's what I thought too, just making sure. Thanks

grim hound
#

I'm starting to think there isn't a way to get the actual frames of a gif

pseudo hazel
#

there def is

grim hound
#

then how the fu

#

does this happen

pseudo hazel
#

I know that aseprite can open gifs as animations

grim hound
pseudo hazel
#

oh well

#

idk about java

#

sounds like a java skill issue then

blazing ocean
grim hound
#

first frame is always the background I am losing it

robust helm
grim hound
grim hound
mental frigate
#

is it possible to set the amount of an unstackable item, like enchanted book? because ItemStack#setAmount doesnt seem to work

slender elbow
#

first you gotta ItemMeta setMaxStackSize

mental frigate
slender elbow
#

keep in mind that this will not work if the item is damageable like armour, tools etc

orchid furnace
#
     public void noBlowUpCreeper(EntityExplodeEvent e) {
        if (e.getEntity().equals(EntityType.CREEPER)) {
            e.setCancelled(true);
        }
     }```

anyone know why this isn't working? events are registered and stuff so not quite sure whats going wrong
eternal night
#

an entity isn't an entity type

orchid furnace
#

ah

blazing ocean
#

for enums you can also just use ==

quaint mantle
#

#.getEntity().getType() ?

mental frigate
azure vault
#

ok so im kinda having a brainfart rn

#

if i want all except the last one i just do ~0x0100 right?

azure vault
slender elbow
azure vault
#

im trying to use this packet

#

to rotate the player's yaw by 3 degrees

#
PacketContainer headRotation = new PacketContainer(PacketType.Play.Server.ENTITY_TELEPORT);

headRotation.getIntegers().writeSafely(0, player.getEntityId()).writeSafely(1, ~0x0100);
headRotation.getDoubles().writeDefaults();
headRotation.getFloat().writeSafely(0, 3f).writeSafely(1, 0f);
headRotation.getBooleans().writeSafely(0, player.isOnGround());

protocolManager.broadcastServerPacket(headRotation);
#

when i do this

#

i get

#

illuminator3 moved too quickly! 82.34877574138198,-93.0,-182.19995843594901

thorn isle
#

i don't think that has been a bitmask on the packet class for a long time

#

that's what it is in the protocol but the actual class is like some FlagSet object

slender elbow
azure vault
#
[private final int net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport.b, private final net.minecraft.world.entity.PositionMoveRotation net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport.c, private final java.util.Set net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport.d, private final boolean net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport.e]
azure vault
#

how would i do this with protocollib? im not sure if it can wrap enums

slender elbow
#

you can provide your own type adapters for stuff

#

but idk how

azure vault
#

i love that theres no documentation on this

quaint mantle
#

Is it possible to deliver a message to an offline player?

azure vault
quaint mantle
#

Save their UUID's to a yaml, get it through the yaml and deliver the stored message?

azure vault
#

sure why wouldnt that be possible

jagged thicket
quaint mantle
#

the message message

#

like /msg

quaint mantle
jagged thicket
#

and deliver message then

quaint mantle
#

No, I mean

#

When they try to /msg the offline player

#

Won't it return null?

jagged thicket
#

is /msg vanilla?

#

💀

quaint mantle
#

ofc not

#

wait

#

is it?

jagged thicket
#

same doubt

#

if it is not

#

you can make your own /msg lol

eternal night
#

the /msg command is vanilla

quaint mantle
#

Ah

#

I meant, a custom command

azure vault
#

i imported nms insetad of just api

quaint mantle
#

My brain is still funking out

azure vault
#

but ClientboundTeleportEntityPacket doesnt exist

quaint mantle
#

1.21.3?

#

prolly outdated IDE

azure vault
#

what?

#

what does my ide have to do with this

chrome beacon
slender elbow
#

what version too

chrome beacon
quaint mantle
#

^

chrome beacon
#

For some reason it's very common not to keep IJ up to date in here 💀

quaint mantle
#

trust me

#

one of the reasons why I'm still using 1.8 💀

chrome beacon
#

...

quaint mantle
#

im joking

floral drum
#

I use 1.8.8 with java 21

azure vault
azure vault
#

its literally not present in the jar file

chrome beacon
quaint mantle
#

Or am I doing something wrong

jagged thicket
#

show code?

quaint mantle
#

I haven't written the code yet

#

Just throwing some quick questions