#help-development

1 messages · Page 1322 of 1

buoyant viper
#

and have u double checked the value of TICKET_SUBCHANNEL?

ocean gorge
buoyant viper
#

no i mean like, have u looked at the code itself and made sure the value is set correctly

#

like with ur eyes

#

not double if's or somethin lol

buoyant viper
chrome beacon
#

Odd, could you send a minimal jar with the issue

#

If you believe it to be a remapping issue we need the jar

umbral ridge
chrome beacon
#

👀 new emoji

#

diamond compass gold emerald netherstar lapisredstone huh when did these get added

slender elbow
#

lol

sacred mountain
#

wtf

umbral ridge
#

nice

sacred mountain
#

If i were to want to create custom entities that attack players and have their own abilities, how would i go about doing that? I assume I'd need NMS and something with a fake player entity

#

if anyone has a library or can point me in the right direction

#

i'd appreciate

sacred mountain
#

their apis?

#

i haven't used citizens since i used to run my own server like 4 years ago lol

#

thanks i'll give that a go

#

why is citizens 20$

chrome beacon
#

Read the Spigot page

sacred mountain
#

i see

#

reading past the title isnt my strong point

tranquil pecan
sacred mountain
#

are clicks just not sent to the server when you're in adventure mode

#

for some reason citizens NPCs dont get clicked when the player is in adventure

#

bruh

shadow pumice
#

Hey! i need help figuring smth out please
I cant figure out how to force the player to spectate an armor stand when they join the server ~ if any1 knows that would be great!

thorn isle
#

something something doing it onjoin and the respawn logic undoes it

umbral ridge
#

entries are players right

#

and String is what... username or string uuid

thorn isle
#

i don't think they're uuid-bound

#

could be any string, but for players, the player name is used

umbral ridge
#

ok cool cool

thorn isle
#

not sure how it works with entities, i think the uuid.toString is used for them

young knoll
#

Yeah

umbral ridge
#

well

#

it's kind of a mess

#

there is also Entity option but there is no getEntities

#

only remove and add

#

😿

pseudo hazel
#

yeah because scoreboards used to be tied to like entities I think but they removed that so now it doesnt need to be an entity

umbral ridge
#

ok then ill stick to entry

#

entry can be a string uuid or player name... anythingreally as long as its string.. kinda nice

#

but how does the Team know that player A is actually player A

#

if I just set addEntry("test123")... and I'm a player ItsSpexx ?

#

that seems fucked up lol

#

does Team have some internal resolver that resolves player names to Player/OfflinePlayer

#

what the heck

#

I think Team and Scoreboard could use some PR

#

refactoring..

pure elbow
#

The BuildTool.exe is marked as virus for me? Any way to get CraftBukkit builds online? Or via a repo?

chrome beacon
#

Use the jar instead of exe

#

Or manually allow it

pure elbow
#

wheres the jar

chrome beacon
#

Same place as the exe

#

?bt

undone axleBOT
chrome beacon
young knoll
#

Can’t believe Microsoft doesn’t trust our exe

umbral ridge
#

its not signed

young knoll
#

We ain’t paying for that

clear elm
#

Looking for some cool plugin ideas

buoyant viper
#

implement Spigot in Spigot

umbral ridge
#

beautiful

#

😍

#

now i can go smoke

buoyant viper
#

the fully qualified class name in the param is crazy

umbral ridge
#

this is because i tend to do this:

#

it's named the same

buoyant viper
#

bru

umbral ridge
#

i love cigarettes

#

man

#

do you know how much work i had

#

i had to deal with caching all player permissions data

#

now finally

#

BEAUTIFUL CLEAN GroupChangeEvent and other friends

#

not to mention all is async and cached with a beautiful friend PermissionsCacheManager

#

i can smoke in peace, a new clean chapter has been opened

young knoll
#

That chapter is not your lungs

umbral ridge
#

XD

#

i dont even want to think how ill have to deal with nametags stupid system

#

its giving me a headache

#

teams and scoreboard like russians and ukraine

rotund ravine
umbral ridge
#

how do i name it then?

#

XD

#

if I have an event SomeTestEvent, the class name should be.. what.. EventSomeTest?

young knoll
#

I usually use SomeTestListener

umbral ridge
#

thats actually not a bad idea

#

why haven't i thought of that

thorn isle
#

certainly keep listener distinct from event

sly topaz
#

I just keep all my listeners on my main class, that way I never have to worry about the listener class name

echo basalt
pliant topaz
winter sun
#

I’m looking for someone to help clean up or remake my Skyblock generator Skript. Most of it is already set up, but it has some errors and outdated stuff.

What the Skript needs to do:
• Working generators with levels
• Upgrade system with costs
• Custom blocks per level
• GUI to upgrade/buy generators
• Commands like /gen shop and /gen limit
• Fully compatible with the latest Skript version

I can send the full file and explain anything needed. I just need someone to make it fully working and stable.
Dm if you are intrested

solid cargo
shadow pumice
#

Hey! i wana use player.setSpectatorTarget(); but how do i target an armor stand thats placed in the world?

I made sure the armor stand exists and the code recognizes its existence, but for some reason it wont make me spectate it

drowsy helm
#

Also the player is definitely in spectator mode right

shadow pumice
#

also turns out it works, the issue is the player is moving freely although they are spectating the armor stand

shadow pumice
#

OMG turns out the issue is no delay.. i did the event as soon as they joined, so i added a 20 tick delay and it works!!

wet breach
shadow pumice
#

tyy! and sorry to bother again, is there a way to disable this? i wana completely remove it from my game
idk if its client or server side

chrome beacon
#

clientside

summer scroll
wet breach
#

if you want to differentiate the type of teleport

shadow pumice
#

ty ill look into it

sacred mountain
#

brug

#

so my variables WERENT the wrong way round

sacred mountain
#

too

#

lmao

cinder abyss
#

Hello, how can I do versioning checks with the future update going to year.x instead of 1.x.x ??

#

(I want to support both)

#

My actual system split the Bukkit#getVersion to the corresponding parts, but I want to make it support latest version too, and that year.x will always be earlier than 1.x.x

#

I was wondering if someone here made a system for this

slender elbow
#

if (version.startswith("1."))
old as fuck
else
fancy new

cinder abyss
#

what if minecraft get released in the 19s 🤓

slender elbow
#

wat

cinder abyss
weak wasp
sacred mountain
#

noo

#

i wont get my 1.50.2

#

wowee

cinder abyss
fair sluice
#

Hello

#

I need help I don't know why but in my minecraft enchantment walk mod is not working

#

I am using the 1.16.5 forge version in t launcher

sacred mountain
#

do u guys think mojang unobfuscated will come with comments 🙏

ivory sleet
#

normal comments or u mean javadocs?

clear elm
#

hi

ivory sleet
#

yo

sacred mountain
fair sluice
#

Guys reply to my message 🥲

clear elm
fair sluice
#

Thankyou bro...😭

clear elm
#

np im here to help

fair sluice
#

I hope that every sock you put on will be slightly rotated just enough for it to be uncomfortable

May your tea be too hot when you receive it, and too cold when you remember it is there

May you always step in a wet spot after putting on fresh socks

May both sides of your pillow be warm

May your article load that tiny extra little bit so when you are about to click on a link you click an ad instead

And finally may your toes always find their way to the corners of your table

clear elm
fair sluice
#

Ayee yo... Bro chilll

#

Am joking

clear elm
#

WOOOOO

#

sigma mode activated 👿

fair sluice
#

I am leaving this server i thought I got my solution but instead you are getting angry 😞 good bye

clear elm
#

..

slender elbow
#

so, no

lilac dagger
#

the unobfuscated code is not that hard to figure out without comments

keen sphinx
#

what the hell happened here

spare crypt
quaint basin
#

I'm making a house plugin, and people who aren't added to a house can't interact with it. Does anyone have a list of events I need to cancel? For example, blockbreakevent, placeevent, etc., but there are many more

young knoll
#

PlayerInteractEvent for opening doors and such

#

EntityDamageByEntityEvent if you want to protect mobs

quaint basin
wet breach
#

since your plugin is something similar to what that does

#

or even a plots plugin

quaint basin
ancient plank
quaint basin
#

How can I see how long a Bukkit World has been loaded?

wet breach
quaint basin
quaint basin
native gale
#

The question. Let's say I use some library from Maven via Spigot's library loader, and it does something like this internally: private static final Logger LOG = LoggerFactory.getLogger(ApiRequest.class); and then vomits all errors, including all thrown exceptions, caught or uncaught,and their stacktraces in there. Is there a way to respectfully tell it to shut the fuck up and stop littering the logs? The standard solution is to put something in log4j2.xml to supress them, but on plugin level I don't have such level of control. For some reason Configurator.setLevel("com.example.www.client.ApiRequest", Level.OFF) also does virtually nothing (I don't know why, by the way, probably related to how classes are loaded and spigots logging implementation?). The library authors are not responsive. So what am I supposed to do?

umbral ridge
#

oni chan

thorn isle
#

the lifespan is incremented by 1 every time the server ticks and that world is loaded

quaint basin
#

I think this is to see if it's day or night no?

thorn isle
#

that is different as that can be changed by sleeping; this is absolute

quaint basin
thorn isle
#

not in a very long time

quaint basin
#

What is the difference between fullTime and gameTime?

thorn isle
#

keep in mind that one tick is 50 milliseconds

#

and we also use long for milliseconds (unix time)

#

the universe will implode before you overflow long gametime

wet breach
#

fullTime increments when world is loaded but resets when its unloaded

quaint basin
#

thanks

#

Actually, I want full-time

#

Does World#getFullTime return hours * 1000?

wet breach
#

pretty sure its in ticks

#

but you can always do a comparison by retrieving the milliseconds time from the system clock

#

well I guess that wouldn't work lmao

#

well, it should be in ticks since that is what the server uses generally

sullen marlin
native gale
#

But Spigot's library loader still loads Log4j, because it is in the list of runtime dependencies (albeit this dependency is optional). Whether it is used or not, I have no idea, honestly. All these loggers confuse me a lot. I do not understand why they are so complicated in Java

wet breach
#

So setting this and creating a log4j config file it should override all external jars that use log4j

native gale
#

It's actually also bad for library to vomit debug data into the logs either, but muh

wet breach
#

well it depends on your scenario really. Generally it is usually enough to delete the log4j config file from the offending jar

#

the solution I gave is one where you wouldn't need to worry about such things or always having to check

orchid gazelle
#

Sup guys, I've got some technical question.
How possible/realistic is it to unload the main world and load a test world temporarily(without much overhead if possible!) via plugin?
Looking to build some benchmarking and stresstesting tool

thorn isle
#

i don't think the main world is unloadable

orchid gazelle
thorn isle
#

you can't explicitly unload all chunks, but i suppose you can teleport all players out

#

from there you do still have things like force-loaded chunks through commands, though

orchid gazelle
thorn isle
#

benchmarking entities is a bit difficult due to things like the entity activation range and also because entity ticking doesn't strictly follow chunk ticking

orchid gazelle
#

For example:
Room 1 -> Village
Room 2 -> Redstone Machine
Room 3 -> Entity Benchmark

young knoll
#

Pretty sure when Mojang does gametests they just have them spread around a flat world

thorn isle
#

just loading the chunk isn't enough; for many things a player needs to actually be near the entities for them to do the things they usually do

orchid gazelle
orchid gazelle
thorn isle
#

you can do that, sure

orchid gazelle
#

and lock them or sth

#

because having them flying around and doing stuff would manipulate the score

thorn isle
#

i'd probably go with test-per-world, or maybe mojangs test instance block is a better way of doing it, but i have no idea how those work

orchid gazelle
#

wdym by test-per-world?

young knoll
#

I believe they operate on redstone

thorn isle
#

test-per-world is nice because you can re-run the same test by just re-loading the world from a copy of the save file

#

i suppose i'm thinking more along the lines of unit testing though

orchid gazelle
thorn isle
#

i'd go to the extent of having one test room per world, hence test per world

orchid gazelle
#

so every scenario has a different world

thorn isle
#

le modularity

#

either way probably works

orchid gazelle
#

would you actually prepare them or would you make the plugin generate it?

thorn isle
#

depends

orchid gazelle
#

bc world size may be large (maybe)

thorn isle
#

i could see myself copying a laggy player base from a live production server as a worldedit schematic and using that as a test case

orchid gazelle
#

interesting

#

so prepare schematic, generate world on-the-fly, paste schem

thorn isle
#

also works, though i was thinking more along the lines of pasting the schematic into an empty world, shipping that world with the benchmark plugin, and then loading that world during benchmarks

orchid gazelle
#

ah ok

thorn isle
#

pasting schematics is also very flexible but the benchmarks might not be as fully reproducible as actually re-loading a world

orchid gazelle
#

yeah will have to see how large the world files may end up

#

aight I think I know more now, thanks for you interesting viewpoints 👍

thorn isle
#

💪

snow harbor
#

I have a question: is there an API that allows me to tell if a player is logged in with an account or offline? I'm creating a login plugin, and any suggestions or help would be greatly appreciated.

young knoll
#

No idea how plugins handle that

#

You can hit the Mojang api to see if a name is valid, but offline players can just use the name of real accounts

thorn isle
#

consider using an existing plugin like fastlogin instead of homebrewing it

#

getting it to work properly is something of a trade secret, and doing it yourself is an easy way to expose yourself to "forcelogin" exploits

young knoll
#

Alternatively, consider online mode

rotund ravine
forest crescent
#

Hi, I’m Tetron, a server developer specializing in Survival servers. I handle everything from server configuration to advanced GUI setups, Skripts, and full server optimization.

If you want to see an example of my work, here’s one of my setups: https://builtbybit.com/resources/tetronsetup-rpg-survival-setup.80728/

I focus on creating smooth, efficient, and enjoyable experiences for players while keeping the backend fully manageable and optimized.

rotund ravine
#

?services

undone axleBOT
young knoll
#

Oof no actual java coding it sounds like

thorn isle
#

the skript backend developer

umbral ridge
#

well

#

that is a new keyword

#

volatile

#

kinda useful :D

worldly ingot
#

It's seldom useful unless you're making some serious multi-threaded code

#

There's a small performance overhead with volatile keywords as well, so you know, don't go labelling everything as volatile and calling it thread-safe :p

turbid oxide
#

?

buoyant viper
#

ah wait offline mode uses diff uuids doesnt it

worldly ingot
#

v3 UUIDs, yes

buoyant viper
#

oh no i meant arent they literally just not the regular UUID of the player

worldly ingot
#

Yes, they're v3 UUIDs

buoyant viper
#

arent mojang uuids v3

worldly ingot
#

v4, random

#

v3 is based on input

#

I believe Minecraft uses like "OfflinePlayer" + playername and generates a UUID from that

buoyant viper
#

ye

worldly ingot
#

Or something to that effect

buoyant viper
#

its either +playername or +uuid string

#

something like that

wet breach
wet breach
#

one of the few things that has not changed

rotund ravine
#

The uuid isn’t generated yet brother

buoyant viper
#

well

#

i mean

buoyant viper
#

the player-provided uuid couldve been here

#

but yeah it would have to be playername for persistence sake

#

otherwise offline players would have a new identity every launch

rotund ravine
buoyant viper
#

unused

#

but it does exist

compact haven
#

some things never change

wet breach
#

at the end md_5 gives how it is created in offline mode

#

for the UUID's specifically

#

So, case matters apparently which I had forgotten about

compact haven
#

Huh, I actually didn't know we used anything other than type 4

wet breach
# compact haven Huh, I actually didn't know we used anything other than type 4

Well, have to use something else because offline mode doesn't contact mojang servers for the UUID of the player and since servers can go from offline to online, it would cause conflicts if the server was generating v4 uuid's as there is no guarantee they are the same as that of what mojang generated for the player in question.

zealous osprey
worldly ingot
#

That would be transient variables

#

Not volatile

zealous osprey
#

Whoops. Thanks :D

sullen marlin
umbral ridge
robust helm
#

Chat how much so yall usually earn by making plugins

#

When u offer a service on spigotmc

#

Like for 3 hours of work

#

I cant see the rates cause im not logged in on spigotmc

eternal oxide
#

depends on your skill level

robust helm
#

Im pro

eternal oxide
#

I'd say anything upto £75 an hour for a real pro

#

but its up to you and the client to negotiate

robust helm
#

Nvm im noob

#

I just need to finance my drinking habits

#

(And my friends)

eternal oxide
#

as a noob you will earn close to nothing

robust helm
#

Ill try finding an idiot and gaslight him that im the best

eternal oxide
#

just look for jobs you think you can do. agree ALL details and take the job

robust helm
#

Hmm sounds easy :)))

eternal oxide
#

agree all details at teh start so there is no feature creep

robust helm
#

Ill give it a try

#

Thx :)

umbral ridge
fathom fable
#

okay

west orbit
#

how would i go about sending a packet?

ive tried this:


((CraftPlayer) player).getHandle().connection.send(packet);

doesn't seem to work

#

old forum posts use .getHandle().playerConnection.sendPacket() but that does not work either

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.

west orbit
#

I’m on 1.21.10 though

robust helm
#

Like instead of spigot-api you need spigot, or maybe u need both im not sure

#

In your build.gradle or pom.xml file

west orbit
thorn isle
#

if you have the spigot (not spigot-api) dependency, possibly yes

west orbit
#

ive also tried adding the link as a repository like so:

#

doesnt seem to work

eternal oxide
#

you can't use teh jar

#

?bootstrap

undone axleBOT
#

Bootstrap Jar
The main spigot-1.18.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.18-R0.1-SNAPSHOT-shaded.jar, or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.

Please read the release notes for further information: https://www.spigotmc.org/threads/9-years-of-spigotmc-spigot-bungeecord-1-18-1-18-1-release.534760/#post-4305163

eternal oxide
#

just run buildtools and use maven/gradle correctly

proven spindle
#

I’m looking for someone currently living in the United States who can support me about 1–2 hours per week. The tasks are simple, and no special skills are required.

You’ll earn at least $150/month, and your income can grow quickly based on how actively we work together — even reaching $5,000+ per month with consistent collaboration. This can easily become a long-term contract, and if you support well, it honestly never has to end.

thorn isle
#

$5000/mo
1-2/hrs week
simple tasks, no skills required
someone near me
sir are you perhaps trying to hire a stripper?

umbral ridge
#

lol

#

maybe more than a stripper

young knoll
#

I would ?services you but I don’t think there’s a fourm for prostitution…

umbral ridge
#

"and if you support well, it honestly never has to end"...

orchid gazelle
#

HAHAHAHH

slender solstice
#

Anyone know how to code minecraft paper?

chrome beacon
#

Yeah

tranquil pecan
slender solstice
tranquil pecan
#

no but it's 90% same

slender solstice
#

ok

tranquil pecan
#

just check their wiki

slender solstice
#

ok

slender solstice
tranquil pecan
#

yes

slender solstice
#

got some questions

tranquil pecan
#

okay?

tranquil pecan
#

target.setMaximumNoDamageTicks(ticks); target.setNoDamageTicks(ticks);

Is it safe to call this on the target for every attack?

sly topaz
desert aspen
#

what event can i use to detect when a player trades with a villager

young knoll
#

InventoryClickEvent

pliant fog
#

hello, i have a problem with sending a player to another server with with velocity
I have this method:

public static void sendToServer(JavaPlugin plugin, Player player, String targetServer) {
        ByteArrayDataOutput out = ByteStreams.newDataOutput();
        out.writeUTF("Connect");
        out.writeUTF(targetServer);

        player.sendPluginMessage(
                plugin,
                "velocity:player",
                out.toByteArray()
        );
    }

and I make sure that I register the channel on start getServer().getMessenger().registerOutgoingPluginChannel(this, "velocity:player");

but it doesn't seam to send the player to another server, + I know the name of the targeted server is the right one

young knoll
#

Sir this is spigot

pliant fog
#

yes ? this channel claims to support bungeecord as well so I thought i could get help with that because velocity can use bungeecord messaging

young knoll
#

Yes but velocity isn’t made by us

#

Nor is it even a fork of bungee

thorn isle
#

i think you have to manually enable the bungeecord messaging channel in the velocity config

#

paper must deprecate everything they touch so it's disabled by default iirc

eternal night
#

you do not

young knoll
#

Is nitro booster a gradient now

#

Is that a default thing

violet wave
native gale
#

Can we GUID every shulker box on the server? I know we can add custom NBT tags, but what happens to them when the box is placed and broken?

chrome beacon
native gale
#

I see

fading drift
#
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users//Documents/git/XinCraft-split/xincraft/matches/src/main/java/net/xincraft/matches/match/cage/ThinBlock.java:[3,40] cannot find symbol
  symbol:   class JsonIgnore
  location: package com.fasterxml.jackson.annotation
[ERROR] /Users//Documents/git/XinCraft-split/xincraft/matches/src/main/java/net/xincraft/matches/match/cage/ThinBlock.java:[25,6] cannot find symbol
  symbol:   class JsonIgnore
  location: class net.xincraft.matches.match.cage.ThinBlock
[INFO] 2 errors 
[INFO] -------------------------------------------------------------```
#

points to this but it seems fine in my IDE?

echo basalt
#

I'll assume it's one of those things that your IDE indexes out of nowhere but maven fails to find

#

and/or java versison related

#

and/or ide plugin

slender elbow
#

frankly, with display entities, i'd just use real ones and use the API rather than trying to handle fake ones myself

#

wat

#

just use the spigot api

#

and Player#showEntity works perfectly fine

lilac dagger
#

it'll work on velocity too

#

they have bungee support as far as i know

slender elbow
#

then spawn two display entities, one for each player!

#

display entities are dirt cheap

#

their tick method is barely two lines of code !

thorn isle
#

It's best to be mindful still, the entity tracker is kind of horrible

lilac dagger
#

i have custom armor stand which i replaced tick method with basic math

slender elbow
#

if you're going to DIY entities you're probably going to be doing a worse job if you don't know what you're up against

thorn isle
#

I had to rewrite an image map plugin to spoof the entities over packets because the thousands of entities in the tracker, even if they didn't tick at all, were slowing down the tracker itself

lilac dagger
#

they still appear in the timings report

thorn isle
#

But yeah for something like this, the api is probably fine

#

It's just that it will scale n^2; 100 players will now have 100 entities that are each checked for tracking by 100 players

lilac dagger
#

don't they have chunk view players ?

#

if an entity is in a chunk and a player can view that chunk it'll only then apply tracking logic

thorn isle
#

I mean yeah, I meant if 100 players are in range

lilac dagger
#

oh good

thorn isle
#

Like if it's a crate or something at spawn, where you expect a lot of players

#

And if you have 5 crates now it's 500 entities checked for tracking by 100 players

#

For a total of 50,000 canSee checks per tick

#

That said, start with the api; you can pretty easily migrate it over to nms if you actually need to

slender elbow
#

the vast majority of which is an early bail-out, at that point you'd also have to worry about all the regular entities with ai and goals players are going to spawn, farms, random ticks etc

#

get the job done first, profile second and if it happens to be a performance concern then you can take action

thorn isle
#

It's an uuid set iirc, and if the player has any toggled visibilities (they will since this crate is nearby) it'll have to hash the uuid and index into the map

slender elbow
#

oh no, hashing two longs

thorn isle
#

I at one point experimented with flattening the map to use a long[] instead of an uuid[] since it seemed that dereferencing was making up the most of it

slender elbow
#

not my 3 cpu cycles

thorn isle
#

Yeah, things do add up in bulk

#

Granted, this was with like thousands of entities near 20ish players all at the same time, so it's not quite the same scale

#

But it was getting to the point where the tracker was eating up more tick time than ticking normal entities

#

In the end I ended up rewriting the entity tracker to update on events, rather than polling every tick

#

So e.g. entities are added to the tracked set when the player comes within view distance of the chunk they're in

#

And vice versa

#

No clue why spottedleaf le Mr. Multithreading doesn't do this by base; checking every entity every tick for an exact distance is 🇧 tarded

eternal oxide
#

I upgraded my server box memory a couple of months ago 🙂

slender elbow
#

time to sell it and make a buck

eternal oxide
#

I guess I could sell the old stuff. Its only 16gig though

slender elbow
#

millionaire

eternal oxide
#

Quite possible if the price continues to rise

slender elbow
#

no

#

?services

undone axleBOT
umbral ridge
keen charm
#

👋

#

I'm trying to compile a 1.21.10 NMS module against Java 21 and it's giving me this error

#
E:\Projeler\Zeltuv Industries Ltd\ZelHide\NMS_v1_21_10\src\main\java\com\zeltuv\hide\nms\NMS_v1_21_10.java:13: error: cannot access Connection
import net.minecraft.network.Connection;
                            ^
  bad class file: C:\Users\Deliable\.m2\repository\org\spigotmc\spigot\1.21.10-R0.1-SNAPSHOT\spigot-1.21.10-R0.1-SNAPSHOT-remapped-mojang.jar(/net/minecraft/network/Connection.class)
    class file has wrong version 65.0, should be 61.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
#

Am I supposed to compile it against Java 17?

autumn zinc
#

Why it doesn't change entity display name in ClientboundSetEntityDataPacket intercepting?

packet.packedItems().add(new SynchedEntityData.DataValue<>(
                    2,
                    EntityDataSerializers.OPTIONAL_COMPONENT,
                    Optional.of(Component.literal("Custom Name"))
));
packet.packedItems().add(new SynchedEntityData.DataValue<>(
                    3,
                    EntityDataSerializers.BOOLEAN,
                    true
));
echo basalt
#

Or NMS 🤔

#

feels like NMS

keen charm
eternal night
gentle inlet
#

so i need holograms for my plugin (an updating multi line hologram above custom blocks) would it be more recommended for me to use an existing hologram api such as decent holograms or handle the holograms myself in the plugin?

eternal oxide
#

Text Display entities are easy to use

thorn isle
#

pick your poison

#

text displays support multilines and you can update them on a whim

#

decentholograms has built-in placeholderapi support and other convenient features

#

personally i wouldn't bother with hooking into it if it's just a simple hologram you update manually

gentle inlet
#

thanks for the advice

cloud perch
#

🍞 > 🔑

keen charm
#

Must be a glitch in my side then

shadow pumice
#

General question plz
So i made a datapack with custom advancements, but is there a way to make a plugin to control the advancements?

thorn isle
#

plugins can grant and revoke advancements, yes

shadow pumice
shadow pumice
#

tysm

outer ember
#

totally not token grabber

umbral flint
#

how can I catch an exception from getConfig

young knoll
#

try catch

umbral flint
#

it doesn't throw anything

thorn isle
#

i think you might have to load it manually instead of using the convenience method on plugin

#

as in, get the file and YamlConfiguration::load

young knoll
#

Does getConfig just swallow the exceptions?

thorn isle
#

it catches them and prints them

#

or not getConfig probably, but reloadConfig/saveDefaultConfig

umbral flint
#

getConfig calls reloadConfig

#

but ty for the solution

buoyant viper
#

that doesnt sound right unless ur talking about initial load

umbral flint
#

yeah initial load

mortal hare
#

i hate DDD

#

it just doesnt work

#

without ORM's

#

who the hell would prefer this over just simple service classes

thorn isle
#

nothing ever works in practice

#

in practice you do what works

slender elbow
#

bro follows the practice of following practices like the bibles they are

#

that's why

mortal hare
#

the only thing i like from DDD is value objects, anything else feels like just outdated nonsense of practices from early 2000's

young knoll
#

Pfft all my design is data driven

#

Computers only work with data

fathom fable
#

okay

rotund ravine
#

What does “dir” print (someone deleted their message lol)

fossil fiber
#

I added the remapped spigot compiled build tools jar to my dependencies tab Project Structure > Modules - Dependencies but it turns out

I still can't use remapped mojang in my pom

import net.minecraft.world.entity.LivingEntity;

fossil fiber
#

1.21.10 nvm I added the remapped mojang and it works

zealous scroll
#

does anyone know what an optimized way to animate an item's name? I want to show rainbow animated item names for players, both for items in their inventory contents (armor, contents) and open uis (chests, etc).

i don't mind it being packet-based or whatever approach, just wanna know if somebody already thought of an optimized way to do this without tanking my tps

silver robin
sly topaz
#

can you even do it packet-based nowadays with all the hashed item stacks shenanigans

#

feels like it can turn into a ghost item at any given moment for something like animated names

sly topaz
#

simplest approach would be to bake all possible item animations into their own ItemStack instances, then just cycle through them in the inventory (that will animate it inside the inventory view and the item name bar/action bar)

zealous scroll
#

I ended up doing it with core shaders

sly topaz
#

this is of course more or less complicated depending on what items you're aiming to animate, given if it is on with durability then you'll have to account for the item changing as well

sly topaz
#

wish it was more compatible with mods so people could use it more reliably, people do really cool stuff with core shaders

#

I've seen animated chat with it too

thorn isle
#

the hashed item stacks are used on the server side only to determine whether to send a slot update packet or not

#

before, the server actually used a complete copy of the item; now it's just a hash

#

doing this via packets is sort of doable, but there are a number of packets you'll have to filter, and it won't work at all for things like [item] embeddings in chat

#

core shaders is probably the more reliable way of doing it

chrome beacon
#

Yeah that's the way to go about it ^^

short pilot
#
[Server thread/WARN]: [DerexXD] Task #37787 for Guests v1.0.1.2 generated an exception
java.lang.NullPointerException: Cannot invoke "net.minecraft.server.network.ServerGamePacketListenerImpl.send(net.minecraft.network.protocol.Packet)" because "connection" is null
    at org.bukkit.craftbukkit.entity.CraftPlayer.showTitle(CraftPlayer.java:2960) ~[purpur-1.21.10.jar:1.21.10-2522-56ac4de]
    at Guests-1.0.1.2.jar/io.github.derec4.guests.listeners.GuestJoinListener.lambda$onPlayerSpawn$0(GuestJoinListener.java:56) ~[Guests-1.0.1.2.jar:?]
    at 
#

anyone know why this may be happening for this segment

#
@EventHandler
    public void onPlayerSpawn(PlayerSpawnLocationEvent event) {
        Player player = event.getPlayer();

        // Check if the player is marked as a guest
        if (player.hasPermission("guests.guest")) {
            GuestJoinEvent guestJoinEvent = new GuestJoinEvent(player);
            Bukkit.getPluginManager().callEvent(guestJoinEvent);

            // Schedule the message and title to show after spawn
            Bukkit.getScheduler().runTaskLater(plugin, () -> {
                String message = plugin.getGuestWelcomeMessage();
                player.sendMessage(Component.text(message).color(NamedTextColor.GREEN));

                // Display title to the guest (using configurable values)
                Component titleMain = Component.text(plugin.getTitleMain()).color(NamedTextColor.GREEN);
                Component titleSub = Component.text(plugin.getTitleSub()).color(NamedTextColor.GREEN);

                Title.Times times = Title.Times.times(
                        Duration.ofMillis(500),  // fadeIn (10 ticks = 500ms)
                        Duration.ofMillis(7000), // stay (70 ticks = 3500ms)
                        Duration.ofMillis(1000)  // fadeOut (20 ticks = 1000ms)
                );

                player.showTitle(title(titleMain, titleSub, times));
            }, 5L); // 5 ticks delay to ensure player is fully spawned idk if this will work actually

            // Only force spectator if enabled in config and delay a lil
            if (plugin.isForceSpectator() && player.hasPermission("guests.spectator")) {
                Bukkit.getScheduler().runTaskLater(plugin, () -> {
                    GuestSpectatorEvent spectatorEvent = new GuestSpectatorEvent(player);
                    Bukkit.getPluginManager().callEvent(spectatorEvent);
                    player.setGameMode(GameMode.SPECTATOR);
                }, 10L);
            }
        }
thorn isle
#

the event perhaps fires before the player is added to the world?

#

although you are delaying it by a few ticks; not sure how that works with async chunk loads

chrome beacon
#

Head over to the Paper discord (or even the Purpur one for that matter...)

short pilot
#

oh shoot ok

buoyant viper
thorn isle
#

compatibility with shaders and mods aside, definitely; core shaders are very powerful

buoyant viper
#

the lion does not concern itself with game-breaking mods

thorn isle
#

i do like my distant horizons, however

fathom fable
#

okaay

thorn isle
#

i feel like i've seen this before

young knoll
#

No no this time it’s different

#

They added another a

drowsy helm
#

Does anyone here use flyway for their CI/CD and DB migrations? I'm considering using it for my team and I have many questions for how versioning works. Seems like theres a lot of potential for clashing

#

and don't ?ask me 😠

echo basalt
#

?ask

undone axleBOT
#

If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!

stark dirge
#

im making a plugin where when a creeper blasts a chest , instead of getting destroyed, the chest tranforms to a copper chest and drop x% of items and keep the rest of it in it and it goes through multiple stages of copper chests and then regens back to normal chest with the rest of the items that were not dropped
how do i save the data of a chest (all the items in it) and restore them in another(regened) chest that will be generated by the plugin

stark dirge
mortal vortex
#

Can you provide some code? What have you tried

stark dirge
#

yeah wait

#

i gotta try one thing

mortal vortex
#

bruh

tall dragon
#

i guess whatever they tried worked ;d

shadow pumice
#

Is there a way to mimic a player spectating an entity in bedrock edition? cuz ik its not possible on bedrock for players to spectate entities, but i want a similar feel done through a java plugin (im using geyser to let bedrock join the server)

tranquil pecan
#
@EventHandler(ignoreCancelled = true)
public void onInventoryClick(InventoryClickEvent e) {
    if (!(e.getWhoClicked() instanceof Player)) return;

    if (event.getSlotType() == InventoryType.SlotType.ARMOR) {
        e.setCancelled(true);
    }

    /*int slot = e.getSlot();
    if (slot >= 36 && slot <= 39) {
        e.setCancelled(true);
    }*/
}```

Is this enough to prevent players from talking out armor or am I missing something?
#

oh maybe the drop event

thorn isle
#

sadly it was closed because oven man cannot into memory model

sly topaz
sacred mountain
#

is there a spigot jump event other than using the moveevent

young knoll
#

StatisticIncrementEvent

#

Or in modern versions you can use the PlayerInputEvent

#

Well kinda, it’ll tell you if the space bar is pressed but that’s it

thorn isle
#

if you're on paper, there's a PlayerJumpEvent but iirc it's a bit janky

sacred mountain
#

i'm adding boss QTEs

#

should be right

young knoll
#

Probably

#

Assuming the client has perfect ping

sacred mountain
#

hm ok

#

will test thanks

young knoll
#

If you just want to detect an input though the input event would be much better

frosty minnow
#

hello i am french i need a developper for hostinger i have big problem

#

can you guys help me in vocal

thorn isle
#

lol, french

frosty minnow
#

yess

glacial spindle
#

Hello anyone making a plugin for £10 with t pack m

#

?

#

1.21

chrome beacon
#

?services

undone axleBOT
grizzled fox
#

can anyone help me make it so i can remove a recipe in the plugin i am making

tall dragon
#

sure, what have you got so far

grizzled fox
#

i havent been able to figure out anything

tall dragon
#

so, all you want is to just disable a recipe?

grizzled fox
#

yeah

tall dragon
#

you can call Bukkit.getServer().recipeIterator(), look for the one you want and call Iterator#remove()

grizzled fox
#

it is giving me a handful of errors

tall dragon
#

such as?

grizzled fox
#

cannot resolve symbol getServer

#

and Invalid method declaration; return type required

tall dragon
#

actually there is Bukkit.removeRecipe() these days

#

so you could use that instead

grizzled fox
#

it is now giving me this error Cannot resolve symbol 'removeRecipe'

tall dragon
#

then you havent got your libraries setup right

grizzled fox
#

could it be that i am using kotlin

tall dragon
#

shouln't matter, what spigot version are you working with?

grizzled fox
#

the latest i think

thorn isle
#

and Invalid method declaration; return type required
send code

#

sounds like you're trying to paste code into a class rather than a method body

tall dragon
#

isnt that valid in kotlin? xd

grizzled fox
#

wait i accidently had it normal java not kotlin

#

i no longer have errors

#

but where do i need to put the item that i want to remove its recipe

tall dragon
#

you could call Bukkit.getRecipesFor(ItemStack stack)
loop over the recipes and remove them

if (recipe instanceof Keyed) {
  Bukkit.removeRecipe(((Keyed) recipe).getKey());
}
#

or if you know the key you create the namespacedkey directly i guess

grizzled fox
#

this is throwing me for a loop by any chance could you hop in vc so i can try to better understand this

tall dragon
#

yea, i guess i could

jade basalt
#

/ban gotida

lone swift
#

We have custom spawners in the structure files, which then get setted using a custom datapack, but some of the spawners dont get setted due to some chunks not being loaded (the custom spawners get setted after loading the structure)

sullen marlin
torn shuttle
#

sup gamers

#

so how does this mojang deobfuscating stuff work

#

I assume this menas mojang mappings and the need to remap will be over? I only half noticed that mojang said there was an experimental deobfuscated client in the release, is the server deobfuscated?

#

hm

#

spigot post syas to move to mappings but I'm guessing that's just because at the time they will no longer be required the part already deobfuscated will be under the same name

#

@echo basalt you still alive

echo basalt
#

Hi

fading drift
#

Ive got a project with modules but I cant remember how I did it

#

because I want to add another module

#

If I import the folder it doesn't load properly

#

nvm it somehow just randomly worked

torn shuttle
lone swift
eternal night
#

There will effectively not be any mappings anymore

young knoll
#

I eated the mappings

echo basalt
#

Did bro ping me just to flame my ass

strong tapir
#

Can someone help me look for a good plugin for limiting items?
like I want to limit totems to 4, pearls 16 and cobwebs to 32, Ive tried Itemlock, Itemcap and Itemlimiter but some of the plugin caps them globally, even if you die and lose them you cant pick them up again.
I'm on version 1.21.6 btw

torn shuttle
#

Blame your ass for being so flammable

sullen marlin
lone swift
sullen marlin
#

But what's the trigger for that execute

lone swift
#

It is executed via code after all structures have been placed

Bukkit.dispatchCommand(Bukkit.getConsoleSender(), PluginMain.getInstance().getConfigFile().getConfig().getString("spawners_command", "execute as @e[type=minecraft:marker,tag=eds_center] at @s run function eds:spawners/define"));

sullen marlin
#

I'm not sure there's any guarantee that they'll stay loaded after being placed? (Although I'd expect them to for one tick)

lone swift
sullen marlin
#

Spigot has no such method

lone swift
lone swift
sullen marlin
#

?whereami

grizzled fox
#

can anyone help me figure out how to make it so when wearing a peice of armor you get an effect in the plugin i am making

drowsy helm
#

You'll have to listen for armour equip which isnt an event by default

grizzled fox
#

i have looked at a few toutrials and none of them have worked

drowsy helm
#

can we see what you've tried

grizzled fox
#

yeah let em re add it because i aciednelty delteed it

#

package me.Pig_Lord.spearsmpplugin.netheritearmor

import org.bukkit.Material
import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack
import sun.net.www.content.text.plain

class effects {
val onInventoryClosed(InventoryCloseEvent) {
Player = Player.getPlayer();
if (Player.getInventory().getBoots !=null && Player.getInventory)().NetheriteBoots {
PotionEffect speed = new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1);
p.addPotionEffect(speed);
} else {
if (p.hasPotionEffect(PotionEffectType.SPEED)) {
p.removePotionEffect(PotionEffectType.SPEED);
}
}
}
}

drowsy helm
#

Yeah that wont do it

#

How familiar are you with the spigot api as a whole

remote swallow
#

i think learning java might be a start looking at that

thorn isle
#

despair

young knoll
#

I’m very confused

#

Player.getInventory)().NetheriteBoots is certainly something

mortal vortex
#

val???

grizzled fox
#

Yeah

young knoll
#

That val is like the only Kotliny thing there though

grizzled fox
#

I could only find toutrials in Java so I tried to make in kotlin which didn’t work

mortal vortex
#

But I don’t think that’s Kotlin syntax

young knoll
#

If you could only find java tutorials why not make it in java?

#

You don’t seem to have much experience with either so I don’t see why you’d make things more complicated for yourself

grizzled fox
#

because i made the rest of my project so far in kotlin

mortal vortex
#

How did you make the rest of your plugin in Kotlin if you don’t know kotlin?

#

I’m assuming you don’t know Kotlin because there are atleast 20 errors in that code

grizzled fox
#

i know a little bit of kotlin and i understand what i have done so far

mortal vortex
#

But the code won’t run

grizzled fox
#

the plugin so far that works changes the recipe for netherite but that is where my understanding is limited to right now

fathom fable
#

just learn the fundamentals of programming i guess, then the api, the rest will come from alone

#

or change to java if you can not find any tutorials or AI actually

pseudo hazel
#

💀

short pilot
cloud perch
#

Should be good for such small taskz

short pilot
cloud perch
#

Skill issue ≠ AI issue

pliant topaz
cloud perch
#

I mean you'll need minimal knowledge to operate

#

It should be good enough to fix a 20 line class

short pilot
#

this aint worth anymore ;-;

young knoll
#

Depends how well it knows the format

#

I tried to get ai to help generate some configs for cobblemon, it just made up settings over and over

#

Of course, confidently

thorn isle
#

just enable web search and for 90% of beginner tasks, frontier models will get it correct first try

thorn isle
#

and use something actually intended for coding like gpt-5.1-codex

cloud perch
#

See he gets it

thorn isle
#

but yes, it's not very good for learning

#

it's essentially a spoonfeed-me-forever machine

#

once you do hit something it can't do first second or third try, you're fucked

short pilot
young knoll
#

Does gpt-5 not web search by default

short pilot
#

Everything web searches now

cloud perch
thorn isle
#

gpt-5 is a model, whether it web searches or not depends on the client you're using it through

short pilot
#

the plugin so far that works changes the

young knoll
#

The website

thorn isle
#

there are 500 websites that work as clients to llm providers

#

i assume you mean chatgpt; in which case, dunno, i haven't used it since like 2022 or whenever it was first released

young knoll
#

How many of those 500 websites steal your data

cloud perch
#

All

thorn isle
#

probably all of them, even some of the locally hosted ones

cloud perch
thorn isle
#

i do know that the openai api playground and the api in general don't retain your data beyond like 30 days, but they still store them for the 30 days for moderation and detecting abuse

#

the same is mostly true for other providers

wet breach
thorn isle
#

there are some "anonymizers" like venice that promise to scramble your requests and not log anything, but i wouldn't trust them

short pilot
#

You should all just expect in this day and age, everything you do is given to someone else

cloud perch
#

Have you guys tried gemini I've heard it's peak

#

The new model

thorn isle
#

which one

#

i think opus 4.5 is currently at the top of the leaderboard

cloud perch
#

I forgot what it's called

young knoll
#

Does this one still suggest I eat rocks

#

I like rocks

cloud perch
#

Yk it be creating story books and shi with images

thorn isle
#

the recently released gpt5.2 beats gemini 3 by a little bit

#

but opus 4.5 is still at the top

wet breach
#

has been like this since like the 90's or something

cloud perch
thorn isle
#

5.2 is also much better with longer context windows than 5.1

#

in my experience 5.1 gets very dumb very quickly past 60-70k tokens

#

5.2 stays mostly coherent up to i'd say 120-130k

#

it is a little bit more expensive though, and there's no codex variant, at least yet

cloud perch
#

So what's your top goto model

thorn isle
#

for now, gpt-5.1-codex-max for coding; 5.2 for other things

#

opus is too expensive

cloud perch
thorn isle
#

occasionally the more recent deepseek versions like 3.2; they are kind of shit, but they are useful in that they don't hide the reasoning tokens like openai does

#
Model              Base Input Tokens    5m Cache Writes    1h Cache Writes    Cache Hits & Refreshes    Output Tokens
Claude Opus 4.5    $5 / MTok            $6.25 / MTok       $10 / MTok         $0.50 / MTok              $25 / MTok
#

about 3-5 times the price of 5.2

cloud perch
#

Well would you say it's worth it

thorn isle
#

no, that's why i said it's too expensive

#

maybe for some very specific very difficult tasks

#

it is a decent bit better than 5.2, but 5 attempts with 5.2 is usually cheaper and better than one with opus 4.5

cloud perch
#

I see

thorn isle
#

it's also quite slow

cloud perch
#

That's kind of a drag then

wide cipher
#

is there a way to make floating fire? I want to make something like a fire wall, but it looks a lot less cool if its only 1 block tall.

solar mortar
#

does anyone wanna test my proxy queue plugin?

wet breach
wide cipher
#

yeah, i just decided to opt to particles insteaad xD

orchid trout
#

smoke cow bee bee

short pilot
#

Are there events in the API to deal with structure gen? How does the generation of the elytra item frame work?

mortal vortex
#

I think there’s ChunkPopulateEvent but that’s after the structure is generated.

young knoll
#

Pretty sure the item frame is just an entity saved in the structure file

desert aspen
#

how can i spawn a dragon breath cloud?

worldly ingot
#

They're area effect clouds with custom particles iirc

#

Yes, it is. This is NMS:

EntityAreaEffectCloud entityareaeffectcloud = new EntityAreaEffectCloud(this.level(), this.getX(), this.getY(), this.getZ());
Entity entity = this.getOwner();

if (entity instanceof EntityLiving) {
    entityareaeffectcloud.setOwner((EntityLiving) entity);
}

entityareaeffectcloud.setParticle(Particles.DRAGON_BREATH);
entityareaeffectcloud.setRadius(3.0F);
entityareaeffectcloud.setDuration(600);
entityareaeffectcloud.setRadiusPerTick((7.0F - entityareaeffectcloud.getRadius()) / (float) entityareaeffectcloud.getDuration());
entityareaeffectcloud.setPotionDurationScale(0.25F);
entityareaeffectcloud.addEffect(new MobEffect(MobEffects.INSTANT_DAMAGE, 1, 1));
#

You would have to do something similar using Bukkit API

thorn isle
#

i didn't realize we could make them use arbitrary particle effects

#

we need a smoke bomb potion

short pilot
thorn isle
#

how about using the entity visibility api to make the item frame visible/harvestable per-player

#

that seems a bit more vanilla-aligned, although i guess it could be confusing if you're playing with a friend and both break the "same" item frame

young knoll
#

Would be easier to just edit the structure file with a datapack

shadow pumice
#

Question, is there a way to add custom advancements through a plugin? i wana make my own advancements but dont wana do a datapack

dry forum
sullen marlin
#

Laser goes after setting target as per docs

thorn isle
#

i'm not sure if it can shoot a laser if its ai is turned off

dry forum
#

oh

#

ok thanks

thorn isle
#

which build system do you intend to build these plugins with

#

do you intend to write them in java or kotlin

#

i recommend maven + java

mortal vortex
#

What exactly are you asking here? What do you need help with in making these

young knoll
#

I don’t think they want to make them

frigid copper
#

sorry guys

dry forum
#

https://pastebin.com/sNisbWa6

im using end crystals as "spotlights", i use hashmaps to store them and im trying to store the data as a file when the server restarts then load it back when the server is back on, the spotlights work fine until the server comes back on, the commands give the correct feedback like: "spotlight targeted", "spotlight deleted", etc, but they don't actually move or get deleted

thorn isle
#

make sure the chunks don't unload in between you creating and using the spotlights

#

that will invalidate the entity reference you hold onto

dry forum
#

well they get created immedeitly when the server starts but ive done things very similar to this quite a few times before and never had an issue

#

do i need to load the chunk then make it or sm?

timber crescent
#

what would you use for more data on your plugin users? like configs or smth

hazy parrot
#

Database

wind sky
#

Me using yaml files for databases in my plugins (was supposed to be a temporary solution)

ivory sleet
#

🥀

shell lintel
#

Hello, is there no ClickEvent to call a own function? Like i want to send a player to a different server when he clicks a text.
Players can't execute /server on my server and i also don't want to make a command just for that.

slender elbow
#

use a ClickEventCustom, and listen to the PlayerCustomClickEvent for the callback

#

with the same id of course

shell lintel
#

Okay, yeah that seems to work thanks

thorn isle
#

this reminds me

#

what's the intended way of opening links from a dialog

#

ideally without having to change the dialog type itself

slender elbow
#

like, with a button?

#

a static dialog action with an open_url click event

thorn isle
#

right, makes sense

#

although i don't see a way of even adding action buttons to a dialog

#

there are inputs and there are bodies

#

the number and positions of the action buttons seem to be fixed by the dialog type? e.g. confirmation dialog has a confirm and decline action button at the top

#

i'm not too familiar with dialogs and the api being split into a billion RegistryConfigurerFactoryBuilderConsumer and disconnected interfaces is making discovery challenging

#

okay, looking at the actual wiki, there's a multi-action dialog type

pseudo hazel
slender elbow
#

idk i never tried anything with dialogs lol i just scour the javadoc

young knoll
#

I’ve seen an entire keyboard in a dialog

#

So you must be able to have quite a few buttons

pseudo hazel
#

yeah you can use a multi-action or whatever tf its called and add a bunch of buttons there

#

its just that you cant have any body or input below the buttons

scenic wraith
#

hello! can you help me? recently i uploaded a plugin (i am not sure if i am allowed to share name, so i wont for now), which have description with images and when i placed them they were working perfectly, but after some time they turn like this

young knoll
#

Probably too large

thorn isle
#

are they from discord

#

discord invalidates image links after a time period, you can't really hotlink to discord images

scenic wraith
scenic wraith
cloud perch
#

Imgur

scenic wraith
#

I'll try, but I'm pretty sure I have already.

#

Thanks

short pilot
#

If I wanted to detect when the elytra item frame in the end spawns, could I just use entity spawn event?

Like does it go with the end ship structure itself idk exactly how structures work in the API

sullen marlin
#

Try and see?

quick drift
#

help

#

:c

mortal vortex
quick drift
# mortal vortex with?

My Spigot account was hacked and they changed the email. The email said I should contact administration, but I don’t know what to do. I had paid plugins and I really need them right now

mortal vortex
#

Is this the channel for that?

quick drift
mortal vortex
#

there arent?

#

use the email

#

?support

undone axleBOT
quick drift
robust helm
#

Can we have a public shaming channel where we post screenshots of people using the wrong channel?

cloud perch
#

As a regular-lite of mcscans I decline

molten hearth
#

thank you for your expert opinion HazeFrance

young knoll
#

Pretty sure 50% of the messages sent here would end up in that channel

pseudo hazel
#

which includes these 5 messages

tender shard
echo basalt
robust helm
young knoll
#

It’s okay he’s referring to his own code

robust helm
#

Thats only the beginning

buoyant viper
echo basalt
#

the lion does not concern itself with the ragebait

short pilot
#

does anyone know of a good way to detect the spawn of an elytra item frame (in end ship) ?

young knoll
#

Do any of the entity spawning events fire

desert venture
#

can I ask for plugin help here?

thorn isle
#

making plugin help yes

#

configuring/finding plugin help is better served by #help-server

desert venture
#

I see. I am trying to make a simple fireball thingy. I am curious is it is possible to summon the fire ball 2 blocks on op of the player and to put a cooldown on this thing. Here is what I have so far.

    public void onPlayerUse(PlayerInteractEvent event) {
        if (event.getAction() != Action.RIGHT_CLICK_AIR &&
                event.getAction() != Action.RIGHT_CLICK_BLOCK) {
            return;
        }

        Player player = event.getPlayer();

        if (player.getInventory().getItemInMainHand().getType() != Material.BLAZE_POWDER) {
            return;
        }

        Fireball fireball = player.launchProjectile(Fireball.class);

        fireball.setYield(30F);
        fireball.setIsIncendiary(false);
        fireball.setVelocity(player.getLocation().getDirection().multiply(0.1));
        fireball.setIsIncendiary(false);
        fireball.setAcceleration(player.getLocation().getDirection().multiply(1));
    }
}
thorn isle
#

iirc to fire it from a different location, rather than doing launchProjectile, you have to spawn it directly with World::spawn, which accepts a Location to spawn it at, and set the appropriate velocity and projectile source yourself after having spawned it

#

for cooldowns, you'd typically use a Map<UUID,Long> from player id -> last used timestamp; set it to System.currentTimeMillis(), and compare against the current time in the listener; if fewer than x milliseconds have passed, do nothing

#

a more modern way of doing it is to set an item cooldown with i think Player::setCooldown(ItemStack) and check if the item is on cooldown in the listener; this is the same system as what's used by ender pearls and other vanilla items with cooldowns, and will render a nice cooldown bar for the cooling-down items on the client

desert venture
#

I see I will try to see if I can do that

alpine solar
#

If I were to sleep a thread for a minute (making a countdown thing) how much of an issue would it be?

#

Or is there a smarter way to do it without 💤 thread

#

Would I need to use a runnable?

umbral ridge
worldly ice
undone axleBOT
dreamy glade
#

Hi, player head item is not obtainable in vanilla, right (without mods/cheats/commands)? It has been a while since I actually played the game, so I'm not sure if there is a mechanic for it.

tranquil pecan
#

It's neither mods nor cheats/command

sly topaz
cursive kite
#

I need some help I have no idea what I did to my plugin... all the sudden compile fails. I deleted the entire new package i was working on within the plugin and it compiled

#

I add the package empty it compile

#

I added an EMPTY class to the package and it fails again

#

It spams org.bukkit does not exist and cannot find symbol for a bunch of my classes

cursive kite
#

Anyone available 🙁

tranquil pecan
cursive kite
#

Eclipse

sly topaz
#

?paste

undone axleBOT
cursive kite
#

This is so weird

#

I didn't edit anything it just suddenly is acting stranger

#

I tried again deleted my new folder.. it compiled.. added my new folder... compiled

#

added a class to the folder... fails

sly topaz
#

what is with the start of that pom, I would remove this whole bit:

<sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
cursive kite
#

If im being honest chatgpt told me to add it to fix it.. didnt work

#

...

#

i deleted and it compiled

#

wtf

sly topaz
#

your pom is all messy honestly, I would start from scratch

#

don't use chatgpt to generate your pom

cursive kite
#

I agree

tranquil pecan
#

just change the values

cursive kite
#

Yes please

buoyant viper
sly topaz
#

a bit of an old one, but should work fine if you update the versions of the things there

#

both the dependencies and maven plugins

tranquil pecan
#

Intellij generated it

sly topaz
#

source/target instead of release property 😤

#

also java 17 and paper

tranquil pecan
#

It's old

#

I am lazy to update that

#

atleast mine is clean

potent heron
#

How do I get people to buy my paid plugins?

tranquil pecan
potent heron
potent heron
#

jaaajaj

quaint mantle
#

the gamerule announceAdvancements got renamed to show_advancement_messages in 1.21.11. How can I make my plugin disable the gamerule when its running on 1.21.10 where the show_advancement_messages doesnt exist if im making my plugin using the 1.21.11 API?

pseudo hazel
#

you cant

quaint mantle
pseudo hazel
#

your api version should be from the lowest version you support

quaint mantle
pseudo hazel
#

if thats what you support then yes

#

or make separate jars

quaint mantle
#

i want to support stuff like 1.21.10 and 1.21.11 so

quaint mantle
pseudo hazel
#

the plugin will run on those versions but you cant really use new api

#

afaik

quaint mantle
#

im sorry im new to plugin dev 😭

pseudo hazel
#

the lowest version you support

#

this is mostly for api_version

#

or whatever its called in plugin.yml

#

tbf i havent done spigot in quite a bit

quaint mantle
#

but would it be like 1.21-R0.1-SNAPSHOT or 1.21-R0.1?

#

isnt snapshot there because the 1.21.11 is a new version of minecraft?

pseudo hazel
quaint mantle
#

got it

#

thanks man

pseudo hazel
#

no snapshot does not mean minecraft snapshot

#

a snapshot is just a release

young knoll
#

Snapshot is always there for spigot

quaint mantle
#

it seemed like its there because 1.21.11 released recently

tranquil pecan
# quaint mantle the gamerule announceAdvancements got renamed to show_advancement_messages in 1....
    private static <T> Optional<GameRule<T>> get(String name, Class<T> type) { 
        try {

            GameRule<?> rule = GameRule.getByName(name);

            if (rule != null && rule.getType().equals(type)) {
                @SuppressWarnings("unchecked")
                GameRule<T> typed = (GameRule<T>) rule;
                return Optional.of(typed);
            }

        } catch (Exception ignored) {
            // Not found
        }
        return Optional.empty();
    }```

"Optional<GameRule<Boolean>> newRule = get("show_advancement_messages", Boolean.class);"
"Optional<GameRule<Boolean>> oldRule = get("announceAdvancements", Boolean.class);"

Idk if this would work but you can try
young knoll
#

It’s likely spigot will remap the old gamerule constants if your plugin is running on 1.21.11

tranquil pecan
#

and then use
"world.setGameRule(oldRule.get(), false);" or "world.setGameRule(newRule.get(), false);"

quaint mantle
#

im trying it rn

quaint mantle
#

it mapped the constant

foggy ravine
slender elbow
#

they should work just fine?

#

what does your code look like?

foggy ravine
slender elbow
#

uh

#

yeah idk

foggy ravine
#

welp i just need to try and see ig

mortal hare
#

is it just me or does the java nullability annotations in vscode do not work properly

quaint mantle
mortal hare
quaint mantle
#

its only using 1.5 gb for me

mortal hare
quaint mantle
#

smth wrong with ur intelli j idea then lol

mortal hare
#

i mean i do have 32 gb of ram

quaint mantle
mortal hare
#

idont want intelli just because then it sucks to switch between vscode and intellij when you're working on client/server website stack

#

webstorm's support of web frameworks is a joke

quaint mantle
mortal hare
#

code in intellij vs vscode

#

.vscode/settings.json

{
  "java.compile.nullAnalysis.mode": "automatic",
  "java.compile.nullAnalysis.nonnullbydefault": [
    "javax.annotation.ParametersAreNonnullByDefault",
    "org.eclipse.jdt.annotation.NonNullByDefault",
    "org.springframework.lang.NonNullApi",
    "org.jspecify.annotations.NullMarked"
  ],
  "java.compile.nullAnalysis.nonnull": [
    "javax.annotation.Nonnull",
    "org.eclipse.jdt.annotation.NonNull",
    "org.springframework.lang.NonNull",
    "org.jspecify.annotations.NonNull"
  ],
  "java.compile.nullAnalysis.nullable": [
    "javax.annotation.Nullable",
    "org.eclipse.jdt.annotation.Nullable",
    "org.springframework.lang.Nullable",
    "org.jspecify.annotations.Nullable"
  ]
}
#

😭

#

what am i doing wrong

quaint mantle
#

itll tell you to add something like @NonNull or @NotNull

#

just click the quick fix and itll add it

#

wait nvm I didnt read your entire code

#

thats weird

mortal hare
quaint mantle
#

get it?

thorn isle
#

Vscode is trash

pseudo hazel
#

yeah vscode doesnt really care

quaint mantle
#

using vscode for java development is truly

#

i wouldn't say stupid

#

that's a bit mean

#

but it is true that i would rather use eclipse

quaint mantle
mortal hare
#

its essentially eclipse under vscode's skin

scenic mica
#

Hello!

I am looking for an experienced developer to create a custom plugin for my Minecraft server.

Server version: Paper 1.20.4
Plugin type: Custom gameplay plugin (OneBlock & SkyBlock)

Description:

  • Plugin should support OneBlock and SkyBlock game modes
  • PGUI (player GUI) for managing islands / OneBlock features
  • Commands for players and admins
  • Permissions system
  • Configurable settings (config.yml)
  • Clean, optimized code

Budget: Paid (price to be discussed)
Deadline: Flexible

Contact:
send me dm

undone axleBOT
thorn isle
#

just use bentobox

#

it has both skyblock and oneblock as addons, and has a million guis, and a permission system