#help-development

1 messages ยท Page 488 of 1

tender shard
#

yes

#

no

quaint mantle
#

I have no clue how id do it on 1.19.4

static ingot
#

use an actual variable name and not just repeating the class name..

tender shard
#

well

#

it would work

#

but why the fuck

#

are you using the class name

chrome beacon
#

C# dev

quaint mantle
#

im new to coding java

tender shard
#

rename "WeatherChangeEvent" (the second one in the first line) to just "event"

#

then you're fine to go

quaint mantle
tender shard
#

or that

#

yes

#

that's good

quaint mantle
#

ok

#

nice

static ingot
chrome beacon
#

Yeah they wrote broken code earlier and said they were a C# dev

static ingot
#

rip

chrome beacon
#

The code wouldn't have worked in C# either

static ingot
#

๐Ÿ˜…

quaint mantle
#

Was NBTTagCompound renamed or something?

#

It isnt showing up in intellisense

chrome beacon
#

No

static ingot
#

The class name might be different without mappings

chrome beacon
#

Did you change to a modern version?

#

Or are you still on 1.8

young knoll
#

If you are using mapped its CompoundTag iirc

chrome beacon
#

^^

quaint mantle
chrome beacon
#

Yeah but no mapped for 1.8

tender shard
chrome beacon
#

It was

tender shard
#

CompoundTag / TagCompound

#

that's all I know

remote swallow
#

1st one

tender shard
#

1st is moj maps

chrome beacon
#

You're doing this in 1.19.4?

#

You can just use the API to apply attributes

#

No need for NMS anymore

tender shard
#

are you talking about atributes or PDC tags?

chrome beacon
#

They wanted to change damage with attributes

tender shard
#

oh ok

#

yeah no need for slughorn

#

attrributes are part of API since like 1.13 or so

#

or even earlier?

chrome beacon
#

Yeah

tender shard
#

idk

chrome beacon
#

It's old

tender shard
#

btw olivo, I realized uxor actually got oraxen working on jitpack

#

but a few months ago, this was not the case

#

anyway, it works now, and that's great

#

i think the issue was that they used the "all" classifier to publish it

quaint mantle
#

Not add to it

tender shard
#

(shadowJar)

chrome beacon
tender shard
#

can't you just change the baseValue of that atrribute then?

chrome beacon
#

Since the API runs NMS for you

quaint mantle
#

This was my prior code:

modifier = new AttributeModifier(UUID.randomUUID(), "generic.attackDamage", 9, AttributeModifier.Operation.ADD_NUMBER, EquipmentSlot.HAND);
meta.addAttributeModifier(Attribute.GENERIC_ATTACK_DAMAGE, modifier);
#

But I want it to set instead of just add

chrome beacon
#

Not possible

#

You just need to do very basic math

#

Get the base damage and see how much you need to add or remove

quaint mantle
#

will this work ?

chrome beacon
undone axleBOT
young knoll
#

Once you add a custom attribute the defaults ones are gone

chrome beacon
#

hm you sure?

young knoll
#

Yes

quaint mantle
#

Nah it adds to it

young knoll
#

Eh?

quaint mantle
#

I tested it

young knoll
#

At least in new versions it shouldn't

chrome beacon
#

I do believe you're wrong Coll

quaint mantle
#

I use a wooden sword which has base damage of 4 and adding 9 to it made it able to kill the warden faster than netherite

chrome beacon
#

but I would have to double check since it's been a while

young knoll
#

I can test that real quick

quaint mantle
#

When I make a shapedrecipe outside of my main class can I just used NamespacedKey.minecraft instead of a new NamespacedKey?

young knoll
#

Normal stone sword deals 5 damage, kills villagers in 4 hits

young knoll
#

Stone sword with a +5 damage modifier kills villagers in 4 hits as well

remote swallow
#

use NamespacedKey.fromString("myplugin:smth")

chrome beacon
#

Just use the constructor

young knoll
#

Actually I guess it is technically additive to your base damage of 1

#

So a modifier with a value of 9 would be 10 damage total

quaint mantle
#

why this is not working ?

chrome beacon
#

CTRL + ALT + L
Please ;/

#

Also don't send text in images. Use the paste

#

?paste

undone axleBOT
quaint mantle
#

k

plucky pasture
#

does anyone know if there is anyway to obfuscate the seed sent to players by mods like seed cracker x? They can use it to download to world then xray to bypass antixray. Wondering if anyone knows anything ?

chrome beacon
quaint mantle
#

just add a limit to how much diamond you can mine per hour

chrome beacon
#

Not perfect but harder

plucky pasture
#

thats not a solution

#

I was thinking about that

#

mashing maps together

quaint mantle
#

?paste

undone axleBOT
young knoll
#

Paper?

#

That's a spigot feature

quaint mantle
chrome beacon
young knoll
#

seed-village: 10387312
seed-desert: 14357617
seed-igloo: 14357618
seed-jungle: 14357619
seed-swamp: 14357620
seed-monument: 10387313
seed-shipwreck: 165745295
seed-ocean: 14357621
seed-outpost: 165745296
seed-endcity: 10387313
seed-slime: 987234911
seed-bastion: 30084232
seed-fortress: 30084232
seed-mansion: 10387319
seed-fossil: 14357921
seed-portal: 34222645

#

Change those

#

They are in world-settings in spigot.yml

#

Or you can do it per world

remote swallow
#

if you want stuff to not eat

#

frick you too discord

plucky pasture
#

nvm looks like im fine seedcracker cant even rip the seed xdd nice cheats dev

remote swallow
remote swallow
quaint mantle
#

this is not working

remote swallow
#

do you register the event

quaint mantle
#

no how

#

oh yeah ive register it

#

Bukkit.getPluginManager().registerEvents(new Event(), (Plugin)this);

remote swallow
#

on enable add Bukkit.getPluginManager().registerEvents(new YourClassName() /* or this if its in your main class */, this);

remote swallow
undone axleBOT
quaint mantle
remote swallow
#

where

#

i said where not why

quaint mantle
#

oh in the onEnable()

remote swallow
#

dont cast your plugin then

quaint mantle
#

cast ?

remote swallow
#

(Plugin)

quaint mantle
#

ok

#

im not english

remote swallow
#

you would understand what that meant if you learnt java

quaint mantle
#

but idk where i can learn java

chrome beacon
#

?learnjava

undone axleBOT
dawn ledge
#

hi I now that it's not the exact right place to ask that but can you help me with itellij ? I tried to create a new gradle project on itellij but i got this error on project creation ```Could not open settings generic class cache for settings file 'C:\Users\antod\Documents\dev 1.19.4\pluginMarcher\settings.gradle' (C:\Users\antod.gradle\caches\8.0\scripts\4l8qbco0tm5b9u05f0x3bh7qw).

BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 64

dawn ledge
#

ho that simple XD

#

ok ty

chrome beacon
#

Stay on LTS

#

So Java 17

dawn ledge
#

yep

quaint mantle
#

nice i fixed it

wispy monolith
#

I usually use 11

#

but in minecraft, you should use the version depending on the on version you are targeting

alpine swan
#

hey, how can i convert a string with color codes (eg: &4amongus) with something usable in the plugin to send to a player and have the color code work (im pretty sure this needs ChatColors but idk how to convert it with the whole string)

remote swallow
#

one sec

#

player.sendMessage(ChatColor.translateAlternateColorCodes('&', String))

alpine swan
#

thanks

round finch
plucky pasture
#

I went to multiple dungeons and the end and still no seed generated by seed cracker x. Has anyone been able to make it work for 1.19.4?

round finch
#

i think it is based on radius and length from 0 , 0

plucky pasture
#

regardless of what it is I don't think its a big enough problem to dev a solution for it. The only thing I am getting from it is spawners past my anti xray

young knoll
#

Anti x-ray will never work anyway

#

People could always just download the world

plucky pasture
#

thanks for the tip

#

very helpful

young knoll
#

I mean that's just reality

plucky pasture
#

i mean its not youre on a computer on my network I control everything

#

but w/e

young knoll
#

Okay?

#

And how would you stop world downloading

plucky pasture
#

i already stated how I was planning to

remote swallow
#

you control everything?

#

being on your network doesnt stop them

fluid river
#

control world confilcs

brisk estuary
#

?paste

undone axleBOT
wispy monolith
#

How do i remove "Built-by" from MANIFEST.MF?

#

i'm using maven

brisk estuary
#

hey guys, I want to have a map flower pot -> flower. I've actually achieved that, but the way I've made it looks a little bit messy. Does anybody have any idea on how I could make it in a better way? https://paste.md-5.net/ururiruref.java

alpine swan
#

in bungee, when doing commandSender.hasPermission(x), if the commandsender is actually the console, will it always return true or always return false (or null)

brisk estuary
#

oh, okay XD

fluid river
#

wait

#

pot with flower has own material?

#

like potted_mushroom

brisk estuary
#

yes

fluid river
#

lol

#

from when

young knoll
#

flattening

pseudo hazel
#

does anyone know the character limit for action bar messages, I am assuming it is 256 but I hope its higher

fluid river
#

why do you even need it

wispy monolith
fluid river
#

i mean yeah it's in the final jar but

#

why do you need to remove that

wispy monolith
#

I wouldn't like everyone to look at the username of my computer

#

i have a diffrent name set as my username that i wouldn't like to share

round finch
#

just censor it

wispy monolith
#

how?

round finch
#

i use lightshot to take picature of an area on my screen

wispy monolith
round finch
wispy monolith
#

yeah, still not very usfull

#

ig you didn't really get the thing i wanna fix

cinder abyss
#

Hello, I want to create custom blocks with custom textures, but how can I use the differents states of the mushroom block in my plugin ?

rotund ravine
#

What is your version?

#

Spigot version

cinder abyss
rotund ravine
cinder abyss
rotund ravine
#

Then donโ€™t use outdated techniques

#

?custommodeldata

cinder abyss
rotund ravine
#

Make it work.

cinder abyss
#

I can't customize the textures

pseudo hazel
#

why not

cinder abyss
#

@rotund ravine

young knoll
#

I would use noteblocks instead

pseudo hazel
#

how can you not customize the textures

young knoll
#

But yeah same idea

cinder abyss
rotund ravine
#

Heโ€™s just using something @tender shard said

pseudo hazel
#

hmm

young knoll
#

Noteblocks give you

pseudo hazel
#

if you use custommodeldata you should be able to add a brickton of new blocks

young knoll
#

700 ish

rotund ravine
young knoll
#

Custom model data doesn't work on blocks

cinder abyss
#

๐Ÿค”

rotund ravine
#

Oh

cinder abyss
#

only on ItemStack

young knoll
#

I wish life were that easy

pseudo hazel
#

sadge

round finch
#

bedrock have that

cinder abyss
#

so

young knoll
#

I still vote noteblocks

#

Way more options

cinder abyss
#

@young knoll ?

young knoll
#

Change the data of the NoteBlock

pseudo hazel
young knoll
pseudo hazel
#

can I customize the tablist without nms?

young knoll
#

you can set a header and footer

cinder abyss
#

How can I cast Block to NoteBlock please ?

young knoll
#

Block#getData

cinder abyss
orchid trout
#
        CompletableFuture<List<Kit>> future = CompletableFuture.supplyAsync(() -> {
            try (PreparedStatement preparedStatement = connection.prepareStatement("SELECT name, displayItem, inventoryPosition, items FROM kits;")) {
                ResultSet rs = preparedStatement.getResultSet();
                List<Kit> kitList = new ArrayList<>();
                while (rs.next()) {
                    Kit kit = new Kit(rs.getString(1), Material.valueOf(rs.getString(2)), rs.getInt(3), rs.getString(4));
                    kitList.add(kit);
                }
                return kitList;
            } catch (SQLException exception) {
                exception.printStackTrace();
                return null;
            }
        });
        future.exceptionally(exception -> {
            exception.printStackTrace();
            return null;
        });
        return future;
    }``` ResultSet is null
#

i wanted to send the whole class, but i couldnt put it in md5 paste

flint coyote
#

How long is your class?

orchid trout
#

97

flint coyote
#

that should fit into md5 paste

orchid trout
#

i tried to only put the method and it didnt work

flint coyote
#

what didn't work?

cinder abyss
orchid trout
#

Something went wrong!

flint coyote
#

weird

cinder abyss
young knoll
#

Sorry

cinder abyss
#

so I used getBlockData and it's the same

young knoll
#

getBlockData

cinder abyss
young knoll
#

?notworking

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.

cinder abyss
cinder abyss
pseudo hazel
#

I assume you are importing the correct NoteBlock?

young knoll
#

Well, is the block a noteblock

cinder abyss
cinder abyss
#

org.bukkit.block.data.type

young knoll
#

?nocode

undone axleBOT
#

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

pseudo hazel
#

okay

#

yeah that should be the right one

cinder abyss
#
block.setType(Material.NOTE_BLOCK);
NoteBlock nblock = (NoteBlock) block.getState();
                            nblock.setInstrument(instrument);
                            nblock.setNote(Note.flat(octave, tone));```
young knoll
#

getBlockData

#

Not getState

cinder abyss
young knoll
#

Again you haven't shown us the code

#

I assure you as long as the block is a noteblock then its blockdata will be able to be cast to NoteBlock

cinder abyss
cinder abyss
wary topaz
#

private static final String[] SERVER_ORDER = {"lobby1","lobby2","lobby3","lobby4","lobby5"};


            for (String serverId : SERVER_ORDER) {
                ServerInfo serverInfo = ProxyServer.getInstance().getServerInfo(serverId);
                if (serverInfo.getPlayers().size() < 20) {
                    p.connect(serverInfo);
                    break;
                }
            }```

Lobby full checker, made by CHOCO (Edited by me)
cinder abyss
# young knoll Should be

Here is my code :```java
private void GenOre(ChunkPopulateEvent event, double rarity, int miny, int maxy, Instrument instrument, int octave, Note.Tone tone){
Chunk chunk = event.getChunk();
World world = chunk.getWorld();
getLogger().info("Nouveau chunk " + chunk.getX());

    rarity = rarity / 100;
    for (int x = 0; x < 16; x++){
        for (int y = miny; y < maxy; y++) {
            for (int z = 0; z < 16; z++) {
                Block block = chunk.getBlock(x, y, z);
                if (OVERWORLD_MATERIALS.contains(block.getType())) {
                    Random rand = new Random();
                    double randomNum = rand.nextDouble();
                    if (randomNum <= rarity) {
                        getLogger().info("x " + block.getX() + " y " + block.getY() + " z " + block.getZ());
                        block.setType(Material.NOTE_BLOCK);
                        NoteBlock nblock = (NoteBlock) block.getState();
                        nblock.setInstrument(instrument);
                        nblock.setNote(Note.flat(octave, tone));
                    }
                }
            }
        }
    }
}```
fluid river
#

mc version

#

?

#

?jd-s

undone axleBOT
cinder abyss
#

and spigot 1.19.4

fluid river
#

part of blockdata

#

block.getBlockData()

cinder abyss
fluid river
#

show error

cinder abyss
#

I rerun my local server

#

because it crash TwT

fluid river
#

you can find error in log tho

cinder abyss
fluid river
#

also if the error is on the server and not in IDE, then something must be wrong with the block variable

#

you can try to run your blockdata manipulations in a task 1 tick later and check the result

cinder abyss
#

now it's working

#

really strange

#

thanks

fluid river
#

might be cuz of the chunkpopulate, so USE TASKS for your manipulations @cinder abyss

young knoll
#

Also

#

Use a blockpopulator instead

#

Note: Do not use this to generated blocks in a newly generated chunk. Use a BlockPopulator instead.

#

I just realized that has a typo

#

0/10 worst API

fluid river
#

true

twin venture
#

hi iam having very very weird problem anyone would like to join vc to see it? iam gonna screenshare it ..

#

i dont really know how to explain it ..

pseudo hazel
#

I am having an issue with my plguin but I assume the answer will be related to something of java itself. I have this gameSession object that keeps track of a Game instance but my issue that it doesnt get removed when it should

fluid river
#

?

pseudo hazel
#

like the events are still firing from the game object

#

idk how to explain it in a few words

twin venture
pseudo hazel
#

yes

fluid river
#

means you still have reference to the game object

pseudo hazel
#

essentially I just do game = new Game()

fluid river
#

somewhere

pseudo hazel
#

how do I know where it is

fluid river
#

in a map or list

pseudo hazel
#

no

#

its just a memebr variable

#

hmm

dry forum
#
        display.setBlock(data);
        display.setRotation(240, 240);
        display.setDisplayWidth(10);
        display.setDisplayHeight(10);
        display.setTicksLived(Integer.MAX_VALUE);```
 pitch isnt working and displayheight and width arnt doing anything
pseudo hazel
#

I have created a bukkit timer, which messages the player after some time passes, which is the main way I can see that the object still exists

#

does that mean that the timer is keeping the object alive too?

young knoll
#

Width and height only impact the culling box of the display entity

#

pitch also does not work for them, you need to set the transformation

wary topaz
#

feel like im doing this wrong

#

public lobby(BetterBungee ignore) {
super("lobby","permissions.lobby");
}

#

ProxyServer.getInstance().getPluginManager().registerCommand(this,new lobby(this));

pseudo hazel
#

several things

#

what is new lobby?

wary topaz
#

and if someone says static abuse im going to rip my ears out

pseudo hazel
#

thats not the issue

wary topaz
#

ik

pseudo hazel
#

anyways

#

dont use lowercase for class names

#

you need to implement CommandExecutor, not Command

wary topaz
#

im using bungeecoord

pseudo hazel
#

oh

#

well im unfamiliar with that

wary topaz
#

and there are no probloms in intellij

pseudo hazel
#

but teh command just isnt getting recognised or what?

wary topaz
#

name: BetterBungee
version: '${project.version}'
main: betterbungee.betterbungee.BetterBungee
commands:
lobby:
permission: permissions.lobby
aliases: [ "l", "zoo" ]

this is my bungee.yml

#

public lobby(BetterBungee ignore) {
super("lobby","permissions.lobby");
}
this has to be the reason

pseudo hazel
#

well you still havent told me your problem

wary topaz
#

the command aint registering

pseudo hazel
#

if I use game = new Game(), whatever was in game before will get deleted right?

#

assuming game is a variable of the class I am using this code

young knoll
#

It will no longer be referenced by that object

#

If nothing else is referencing it then GC will handle it

pseudo hazel
#

what about DI

#

like if I have something in the game object that references game

#

does it get deleted then?

dry forum
#

how can i get a players prefix using vault

#

ik

#

oh ok ty

pseudo hazel
#

and not spooking around in the backrooms of my server

young knoll
#

You don't

#

The gc will delete it when it pleases

pseudo hazel
#

thats reassuring..

#

lets hope I did it correctly then

young knoll
#

Why would it matter if it is still chilling somewhere

pseudo hazel
#

idk

#

memory or something

#

but I guess if I dont notice it it doesnt matter ๐Ÿ™ƒ

young knoll
#

How big is your dang game object

pseudo hazel
#

not super big

#

its just that I would rather prevent leaking memory if I can help it

young knoll
#

You won't leak memory if you don't keep hard references to an object around

round finch
#

bruh i hate math rn

how do I make...
1 cylinder with 2 angels rotation

  • thickness, fillout options
    AFpain
pseudo hazel
#

okay then I should be good

orchid trout
#

should i move the kit commands and listeners in the kit folder and the same with everything else?

pseudo hazel
#

I just have a reference to it in one class where t gets replaced by a new one for every game

#

the rest is just DI stuff

orchid trout
#

ok

pseudo hazel
#

can you edit/do anyhting with the tab list without nms?

#

can you add fake entries?

#

sad

#

cant regret if you neve did it

#

but I feel like nms is cheating

#

hmm, can you hide entries you think?

young knoll
#

Only if you hide the player too

pseudo hazel
#

hmm

#

nvm then

#

oh well I guess I have to look for another solution

#

ig

#

those people dont know how to write good separations

round finch
#

?paste

undone axleBOT
round finch
#

my generatePancake method isn't filling out the shape

#

and i can't do math fr

#

what i'm doing wrong?

wary topaz
#

I cant seem to find a WORKING bungeecoord packet manipulation dep, could somenoe help me find one? (PROZOLIZER BAD SUPPORT)

wise mesa
#

should I use the uuid or name constructor for an attributemodifier

tribal quarry
#

Imagine a circle that has a rope around it, and this rope is a collection of dots which each has X and Y

#

And each dot could be identified with rcos(a) and rsin(a)

#

Since sin(a) = y/r and cos(a) = x/r

#

First get blocks in the square shape that has each sidelength tangent to the circle

#

Then loop in all of the square blocks, check in every circle region and compare the X and Y with trigonometry

round finch
#

i apricate your input greatly
just one issue is my math isn't advanced enough

#

it does help then you break down the step by step

tribal quarry
#

Ok then sorry I'm not at pc, but I could show you how it's done (in my way), or atleast check other codes

round finch
#

i will take all this information and note it for sure!

#

maybe i should start out making a line with 2 angels

#

from center

#

using radius

eternal night
#

What shape are you trying to create ?

round finch
#

a pancake shape

#

with 2 angels to rotate

eternal night
#

yea the second part I don#t really get xD

#

2 angles to rotate ?

round finch
#

yeah similer to blender

#

where you can turn a shape
2 ways

eternal night
#

so just, create pancake/circle and then rotate along x and z axis ?

round finch
#

yes

#

what you said way better

eternal night
#

I mean, for rotation you can use the inbuilt vector rotation methods

#

if you want

round finch
#

interesting vector math?

remote swallow
#

what goal are you running

round finch
eternal night
#

oh

#

yea looking into it is a good idea to understand what is happening

round finch
#

gonna speed run this

quaint mantle
#

?paste

undone axleBOT
dry forum
#

is there anything on how block display transofmrations work?

young knoll
#

Scale and translation are fairly straightforward

#

Right and left rotation are quaternion magic

quaint mantle
#

hi im making a trading plugin but i only have 1 account can i borrow somone's acocount

#

to test the plugin

young knoll
#

Just use offline mode and a non premium account for testing

#

Or buy an alt

quaint mantle
#

yeah but i dont have any minecraft crack

glacial trellis
#

.04 23:16:58 [Server] Server thread/[INFO] Soviet_Pj issued server command: /car spawn
25.04 23:16:59 [Server] Server thread/[ERROR] Could not pass event InventoryClickEvent to Vehicles v1.3
25.04 23:16:59 [Server] [INFO] org.bukkit.event.EventException: null
25.04 23:16:59 [Server] [INFO] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
25.04 23:16:59 [Server] [INFO] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
25.04 23:16:59 [Server] [INFO] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
25.04 23:16:59 [Server] [INFO] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-api-1.19.2-R0.1-SNAPSHOT.jar:?]
25.04 23:16:59 [Server] [INFO] at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2876) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3610-Spigot-6198b5a-19df23a]
25.04 23:16:59 [Server] [INFO] at net.minecraft.network.protocol.game.PacketPlayInWindowClick.a(SourceFile:58) ~[spigot-1.19.2-R0.1-SNAPSHOT.jar:3610-Spigot-6198b5a-19df23a]

jagged monolith
young knoll
#

?paste the full error

undone axleBOT
quaint mantle
young knoll
#

Idk

#

Isnโ€™t the normal launcher capable of launching offline accounts

quaint mantle
#

idk how

young knoll
#

I know MultiMC is

quaint mantle
#

ive tried but it crashed

glacial trellis
#

aswell as this for a different plugin

#

updated from 1.16.5 to 1.19.2

#

I believe it was working in 1.18

jagged monolith
#
25.04 23:20:34 [Server] [INFO] Caused by: com.comphenix.protocol.reflect.FieldAccessException: Field index 0 is out of bounds for length 0
25.04 23:20:34 [Server] [INFO] at com.comphenix.protocol.reflect.FieldAccessException.fromFormat(FieldAccessException.java:49) ~[?:?]
25.04 23:20:34 [Server] [INFO] at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:289) ~[?:?]
25.04 23:20:34 [Server] [INFO] at com.celerry.vehicles.util.data.vehicles.Car.<init>(Car.java:104) ~[?:?]

That's where the issue is. What's the code at 104 in the Car.java file

#

As for that other one, It's just a simple

25.04 23:21:24 [Server] [INFO] java.lang.NoClassDefFoundError: net/minecraft/server/v1_16_R3/PacketPlayOutPosition$EnumPlayerTeleportFlags

meaning you need to change how it's handing the packets

glacial trellis
#

I am not the developer, my developer is no longer in touch with me

jagged monolith
#

Well do you have access to the code?

#

Or know how to change it

glacial trellis
#

Nope, do i need to pay another developer to fix?

jagged monolith
#

Either learn how to fix it yourself, or hire someone to fix it for you.

#

?services

undone axleBOT
wise mesa
quaint mantle
#

General java question:
Is there a way to initialize a map? Like I know you can just do this for an object:

var myobj = new Object() { int myValue = 0; };
#

Need this for crafting table logic

#

Making custom crafting stuff

young knoll
#

You want a map with values in it already?

quaint mantle
#

Yeah I searched it up and all I found was double brace logic

young knoll
#

Should be able to do Map.of

quaint mantle
#

Ah thank you

quaint mantle
#

Would it be possible to convert the crafting matrix provided with event.getInventory().getMatrix() in the prepareCrafting event to a map where the key is the index the item was at and the value is the ItemStack?

timid berry
#

no

remote swallow
#

most likely its pssible

young knoll
#

CraftingInventory#getMatrix iirc

wise mesa
fierce whale
#

Is there a better way than using every tick event to armor stand (or display entity) follow player smoothly?
I think teleporting armor stand every tick for all players can overload the server.

#

I'm trying to make cosmetics system

kind hatch
#

You could probably use the armorstands as passengers. Although you'd have to work with passenger logic at that point. You'd probably need a few of them to get the positioning just right.

weak meteor
#

Wtf do you want me to do :(

#

THERES THE PATH

fierce whale
obsidian plinth
#

if i need to track if a player threw a splash pot is it PotionSplashEvent or EntityPlaceEvent or ThrownPotion

mental salmon
#

I'm trying to display some info above the hotbar, When I use DisplaySlot.SIDEBAR it works, However when I use DisplaySlot.BELOW_NAME I don't see any info. Help would be appreciated.

obsidian plinth
#

I figured it out

#

I used the first one

wet breach
#

You would probably need to listen to interact event if you want to do something at the time they throw it

#

Potionsplash event happens the moment it hits something

obsidian plinth
#

No all I needed to do was update a hash map if they threw a potion

wet breach
#

Ah ok. Well there is still a difference in terms of time period you need

#

Whether you need before its thrown or after lol

obsidian plinth
#

I donโ€™t lol

#

Because it doesnโ€™t really matter in what Iโ€™m doing

wet breach
#

Either way more info for you

#

At least you managed to figure it out though

frail gale
#

Are there some kind of comments for the methods in Mojang mappings?

rotund ravine
#

Their names

true perch
#

I'm looking for design advice. All of my code is functional, just curious as to what the standard practices are.
I have a Group object (represents the data associated with a group of players) and a GroupManager class. I think I heard somewhere that I should avoid adding methods to an object like the Group objects. If that's the case, why is that?

#

Which methods are okay to add to the Group class and which aren't?

obsidian plinth
#

whats that code upload site

obsidian plinth
obsidian plinth
#

here

#

?paste

undone axleBOT
true perch
#

That's for the Group class ^

obsidian plinth
#

if it works it works

#

lol

#

shit some of my code is messy af but it works

true perch
#

I'd like it to be as efficient as possible and follow standard practices.

obsidian plinth
#

"standard practices" ๐Ÿค“

#

efficient part is smart tho

true perch
#

For me messy isn't acceptable

obsidian plinth
#

only if u plan for others to read it

true perch
#

I do.

obsidian plinth
#

thats semi easy to read

#

i think its good

#

why


 getMember(Player player)
 getMember(UUID uuid)
true perch
#

I can't recall, but I believe I heard from somewhere before that it's better to have methods which manipulate your object in the manager class.

obsidian plinth
#

Ah

#

tbh i feel bad if this project goes to anyone else

#

its a mess

#

(it works tho)

true perch
# obsidian plinth (it works tho)

Yes and that's not a problem for you right now. However in a year or longer down the line if you're still working on the project or revisit it, messy code will take a lot of effort to figure out. That's why I'd like to follow standard programing conventions.

obsidian plinth
#

o 100%

#

lol

#

like i have player1 player2 playerUniqueId opponentUniqueId opponent Player

#

lol

#

player1 could be opponent or Player or playerUniqueId lol

#

sorta just works

#

TBH once its out of rush time ill probs go back and fix everything

wet breach
# true perch I'm looking for design advice. All of my code is functional, just curious as to ...

Ones that are universal, what you should do instead is either extend or implement as necessary. Your group manager objects typically are just there to hold stuff, maybe do some cleanup or loading. Anything outside of that it should have a method that refers to another class that does something. Ie abstraction. But it also depends which end we talking. Implementation or outward facing api

viscid ginkgo
#

anyone wanna explain why bukkit dependency stays at 1.13.1 ๐Ÿ˜ญ

eternal night
#

presumably you are depending on a third party library/api that exposes bukkit

viscid ginkgo
#

lol

#

Vault?

eternal night
#

yea

viscid ginkgo
#

im so lost

eternal night
#

Are you using maven or gradle ?

viscid ginkgo
#

anyone way i can like override that?

#

gradle

tall dragon
#

dont u just have to put ur own dependency above vault in ur pom?

#

in order to prioritize your own

eternal night
#

I mean, also works but you can just actively exclude it

#

so you don't depend on order

tall dragon
#

fair

viscid ginkgo
#

ima be real

#

im super new to dependencies

#

so rn im using compileOnly

eternal night
#

yea that is what you are supposed to use ^

viscid ginkgo
#

ah

eternal night
#

the example on the page just happens to use a different one

#

don't mind that

viscid ginkgo
#

alr so

#

id just add version { right under uhh compile?

#

not trynna ask for spoon feeding mb ๐Ÿ˜ญ

eternal night
#

you'd do ```kt
compileOnly("the-vault-dep-here") {
exclude("org.bukkit")
}

viscid ginkgo
#

ah alr

#

alr ill give that a shot

#

real errors

eternal night
viscid ginkgo
#

> Could not find method exclude() for arguments [org.bukkit] on DefaultExternalModuleDependency{group='com.github.MilkBowl', name='VaultAPI', version='1.7', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency. straight facts

#

google time!!!!!!!!!!!

#
  exclude module: "support-v4"
}
``` would it looks something more like this?
eternal night
#

that looks like groovy tho

#

not like kotlin

#

which i presume you are using

viscid ginkgo
#

uhhh

#

i dont think im using kotlin??

#

lmao

eternal night
#

do you have a build.gradle or a build.gradle.kts

viscid ginkgo
#

build.gradle

eternal night
#

oh

viscid ginkgo
#

so groovy then?

eternal night
#

yea

viscid ginkgo
#

lmao

#

alr so module would be the correct choice i presume?

eternal night
#

yea group and module

chrome beacon
#

I prefer groovy gradle

eternal night
#
implementation('commons-beanutils:commons-beanutils:1.9.4') {
        exclude group: 'commons-collections', module: 'commons-collections'
    }
#

per example

eternal night
viscid ginkgo
#

why group and module?

chrome beacon
#

Kotlin ๐Ÿ’€

tall dragon
viscid ginkgo
eternal night
#

sure no kotlin but groovy ???

viscid ginkgo
#

i heard it was a little easier

viscid ginkgo
chrome beacon
#

I find gradle kotlin harder than groovy

viscid ginkgo
#

mm

#

anyways yeah why would i use group and module?

eternal night
#

ยฏ_(ใƒ„)_/ยฏ

viscid ginkgo
#

mm

#

ill do this tmmrw i cant be bothered at 2am

true perch
obsidian plinth
#

is it still ProjectileLaunchEvent

to track if a player throws a snow ball

tall furnace
summer scroll
#

I wanted to calculate values for each factions, from block price, etc. But I need to find a way to calculate it one faction at a time, how can I do that? Let's say that I have an factions ArrayList, how can I calculate it one faction at a time, thank you.

chrome beacon
#

Use a for loop?

quiet ice
#

For loop?

summer scroll
#

Wait, I might overcomplicate this.

#

Let's change the question, so I imagine there are gonna be a lot of chunks and blocks from faction claims and I assume the task of calculating the factions values is gonna be heavy, how can I make it efficient? Like it will not affect TPS at all.

tall furnace
#

Faction should have a region that can be referenced. Loop through the blocks in the region. You should be able to thread that operation.

#

If it's not on the main thread it won't interrupt it (though it might still lag your server if your hardware is lacking).

chrome beacon
tall furnace
chrome beacon
#

You will be loading chunks

#

Which is not safe to do

#

Spigot should prevent you from doing so as well

tall furnace
#

You get the data in the main thread, process it off-thread.

Loading them? Hmm... suppose so

chrome beacon
#

Yeah that's what ChunkSnapshots are for

#

You get them sync and process them off-thread

echo basalt
#

Yeah make a bunch of snapshots and multithread it

tall furnace
#

Could calculate it every time a block is placed or broken instead

wet breach
echo basalt
#

Ehh not accurate

tall furnace
#

It's a micro-calculation that way

true perch
tall furnace
echo basalt
#

You'll need to recalc across restarts, when creating a new faction

#

And account for everything

tall furnace
#

No need to recalc at restart; only problem is obtaining the value AFTER the factions are already built

echo basalt
#

And also loop through every faction on every single block event

summer scroll
echo basalt
#

I'd workload chunk snapshots

chrome beacon
#

^^

tall furnace
#

Why would you have to update every faction if one block is broken? Only update the faction containing the block

wet breach
echo basalt
#

To figure out what faction the block belongs to?

tall furnace
echo basalt
#

It's still there

#

For every single block

tall furnace
#

Math is a non-issue

wet breach
#

You could do a bounding box without need to load a chunk

summer scroll
echo basalt
#

Always O(n) unless you do some funky hashing

summer scroll
wet breach
#

If you know the faction borders already no chunks need to be messed with

tall furnace
#

Any CPU can do billions of operations per frame, it's loops that are slow because you're referencing memory slots

wet breach
#

Just use a shaped bounding box

echo basalt
#

That's not what I'm talking about

#

You have one bounding box per faction

#

You have hundreds of factions

#

And you'd need to loop through each faction, get its bounding box and do a check

#

Every time any block gets manipulated

wet breach
#

Not necessarily true, if you know how to leverage math you could easily estimate the most likely factions

wet breach
#

So instead of checking 100 it would just be a handful

tall furnace
#

Should cut it down to around 4 factions to loop through

#

Ish

wet breach
#

But

#

It depends on how you organize the data

echo basalt
#

Unless you're breaking random blocks outside

wet breach
#

Which is what would be crucial in terms of efficiency

tall furnace
#

Another way is to just track the player. If it's near or in a faction, check only the one faction.

#

Cheap.

echo basalt
#

Like what if some idiot empties out an entire desert

#

to get glass or whatever

#

depending on the faction / player your math can start to get heavy

wet breach
#

Not hard to add checks to skip

echo basalt
#

What if you could make some sort of hash

wet breach
#

This is why i said it does depend on how the data is organized

tall furnace
#

Good programming choices fix 90% of perceived issues

wet breach
#

I say they should get something working first and then optimize the problem areas

echo basalt
#

sounds accurate

wet breach
#

Without something made cant really determine the ideal data structure lol

#

Well its more difficult anyways

tall furnace
#

Always more fun to make it up as you go anyways. Planning is boring and never works out exactly as planned anyways.

#

Maybe it's just me, idk

#

I used to plan more but I've been using Spigot for 11 years now so I just wing it and then clean it up

wet breach
#

Nothing wrong with planning. Just its easy to over plan and easy to start optimizing things you think might be a problem when really they are not and its some other thing that really is

tall furnace
#

But it's almost 4:00 AM so I'm no good for communicating rn

wet breach
#

Like we can sit here all night arguing what the best way is lol. But if they have nothing made we wont really know. Every system is different you know.

tall furnace
#

Indeed

wet breach
#

Best we can do is give them ideas. uwu

wet breach
#

To not discount it

wet breach
# summer scroll Right, thank you

I recommend making something that works, and then work off that to improve if you havent followed the conversation. You have a few different ways to do what you are wanting but at this point it isnt easy to tell which of the ways is going to be best for you.

#

Its one of those, take one of the ideas run with it and then see if its good enough if not work on changing it or improving it lol

rigid otter
#

Hello, if I a plugin message of PlayerCount request for a disconnected server. What will it response to me back?

summer scroll
wet breach
rigid otter
#

First I send a plugin message in BungeeCord channel to request PlayerCount from a server - but the server is disconnected. What will the proxy response to me?

wet breach
#

It will be empty or null or nothing comes back

rigid otter
#

But

#

How to read that? Because it does not returns 0 so make the reading process (i.e. in.readUTF()) throw an exception

wet breach
#

Server is disconnected and the only thing bungee retains is just its name as that is in the config. When you ask bungee for info on a server bungee then asks the server if its online. I dont have documentation up to precisely tell you.

#

But you either get no response or an empty response because bungee isnt able to tell you other then server is disconnected. Which is why you should first check the server is online first before just assuming the info is available

rigid otter
#

OK thank you

#
in.readUTF() <-- subchannel of 'PlayerCount'
in.readUTF() <-- I expected 'server' but exception is thrown here
in.readInt() <-- unreached
#

Yes, but it doesn't

#

Meaning that bungee doesn't know that server?

quaint mantle
#

Hi , why else is not worked ?

hybrid spoke
#

?learnjava

undone axleBOT
hybrid spoke
#

to both of you

tender shard
obsidian plinth
#

?makemesmart

#

f

dark harness
#

Why is this not working? I still can modify the armorstand. Yes the event is registered

    @EventHandler
    public void onArmorStandManipulate(PlayerArmorStandManipulateEvent event) {
            event.setCancelled(true);
    }
eternal oxide
#

because it's not registered

cinder abyss
#

Hello, is there an event for when a chunk finished his loading ?

rotund ravine
#

ChunkLoadEvent and a tick after

cinder abyss
cinder abyss
remote swallow
#

scheduler

#

?scheduling

undone axleBOT
cinder abyss
#

thanks

dark harness
eternal oxide
#

if the code you posted is exactly as show the only reason it will not work is not being registered

rotund ravine
#

?jd-s

undone axleBOT
wet breach
#

Called when a player interacts with an armor stand and will either swap, retrieve or place an item.

dark harness
#

Cancel modifying armor pieces of the armorstand

rotund ravine
#

I see

eternal oxide
#

show the actual code you are using

#

?paste

undone axleBOT
wet breach
#

either it isn't registered or something is uncancelling the event then

#

or you have an error somewhere that is preventing the event from being passed to your plugin

wet breach
dark harness
#

No. Just Intellj doing weird things.. Needed to Invalidate Caches and it worked. Thanks anyway

orchid trout
#

you'r

cunning osprey
#

why does my plugin not work when i kill somebody

#

there were no errors and 5 warnings

eternal oxide
#

?notworking

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.

remote swallow
#

check console for errors

eternal oxide
#

death event looks fine

cunning osprey
#

Starting Minecraft server on 0.0.0.0:10008
[11:37:10 INFO]: Using epoll channel type
[11:37:10 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.
[11:37:10 INFO]: Paper: Using OpenSSL 3.0.x (Linux x86_64) cipher from Velocity.
[11:37:11 INFO]: [DrainPlugin] Loading DrainPlugin v1.0-SNAPSHOT
[11:37:11 INFO]: Server permissions file permissions.yml is empty, ignoring it
[11:37:11 INFO]: Preparing level "world"
[11:37:13 INFO]: Preparing start region for dimension minecraft:overworld
[11:37:13 INFO]: Time elapsed: 298 ms
[11:37:13 INFO]: Preparing start region for dimension minecraft:the_nether
[11:37:13 INFO]: Time elapsed: 89 ms
[11:37:13 INFO]: Preparing start region for dimension minecraft:the_end
[11:37:13 INFO]: Time elapsed: 96 ms
[11:37:13 INFO]: [DrainPlugin] Enabling DrainPlugin v1.0-SNAPSHOT
[11:37:13 INFO]: Running delayed init tasks
[11:37:13 INFO]: Done (4.228s)! For help, type "help"
[11:37:13 INFO]: Timings Reset

cunning osprey
#

here

tender shard
#

so what's the issue

cunning osprey
#

it dosent drop the essence i made

eternal oxide
#

drop? you are adding to the inventory

cunning osprey
#

dont work

eternal oxide
#

?notworking

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.

cunning osprey
#

so the event is on playerdeathevent so when a player gets killed the essence gets random from 1-4 and needs to be added to the inventory and the essence dosent get added

eternal oxide
#

you are looking in the killers inventory? not the one who was killed?

tender shard
#

print out a message when the event gets called

eternal oxide
#

also, test it on Spigot

cunning osprey
#

i looked out on it

#

on killers inventors

ancient plank
#

this is for me

#

?javadocs

#

?jd-s

undone axleBOT
heavy mural
#

Does Bukkit.getofflineplayer(UUID).getname() return an updated username or will it return the name that the UUID had on it's last session on your server?

tribal quarry
#

in world/playerdata

#

but alternatively you can use minecraftools, ashcon and other api(s) to get their new username by uuid

heavy mural
#

Okay ty :)

mental salmon
#

Hey trying to display so health and mana info, Using the scoreboard for this. When I set the display to SIDEBAR I see my info, However when I try to use BELOW_NAME I don't see anything. Is there something else I need to be doing?

sacred wyvern
#

Can Spigot require updating even though the version number doesn't change? Getting a version isn't update on 1.19.4 but it's the same release that is available.

eternal oxide
#

Spigot? no

sacred wyvern
#

hmmm k

#
java -jar spigot-1.19.4.jar nogui
Unbundling libraries to C:\Users\user\Inworld-Minecraft\server\bundler
Starting server
*** Error, this build is outdated ***
*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***
*** Server will start in 20 seconds ***
#

That's the latest version though?

eternal oxide
#

I guess not

#

there is another value for the build

sacred wyvern
#

kk

eternal oxide
#

This server is running CraftBukkit version 3638-Spigot-d90018e-7dcb59b (MC: 1.19.3) (Implementing API version 1.19.3-R0.1-SNAPSHOT

#

just an example from an old log

#

if you just want to stick with what you have add teh IknowwhatI'mdoing switch

mental salmon
eternal oxide
sacred wyvern
#
player.InworldPlayerData.CharacterSessionIDs[npcName]:Destory()

740  Destory is not a valid member of ObjectValue

I'm getting this trying to Destroy a ObjectValue.

round finch
#

how do i make a circle where you can chance the length of ( x, y , z)
i'm kinda bad math

eager jacinth
#

I can change the name above a player's head only using scoreboard?

sacred wyvern
#

Do I need to iterate through the children and not call destroy directly on a table like that?

#

Omg I'm an idiot thank you

#

Ya it's Lua / RB

mental salmon
#

Huh interesting, I figured I could add everyone to their own tea or something. How does skyblock handle showing health and mana values above the hotbar then?

#

Different plugin?

sacred wyvern
#

CharacterSessionIds is a ObjectValue too

#

Thanks again for your help that would have kept me up

eternal needle
#

?paste

undone axleBOT
regal scaffold
#

Doesn't this mean I'm trying to cast something wrong?

eternal oxide
#

yes

#

You are trying to cast the Set containing the UUIDs to a UUID

regal scaffold
#

I see it now

#

Howe to convert .keySet() to a list

eternal oxide
#

why?

regal scaffold
#

A function returns a map

#

I just need a list of the keysets

eternal oxide
#

what?

regal scaffold
#
public java.util.Map<java.util.UUID,net.brcdev.gangs.gang.GangMemberData>
eternal oxide
#

.keySet() returns a Set

regal scaffold
#

I just need the keys of the map
That's it

#

Yes but I'm storing as a List<UUID>

eternal oxide
#

then store it as a Set

regal scaffold
#

No because

#

A different function can return a List<UUID>

#

It's a simple ? if

eternal oxide
#

I'm not seeing a reson to not use the Set it returns

regal scaffold
#

ty zacken

eternal oxide
#

not good to create objects you don't need to

regal scaffold
#

api calls

eternal oxide
#

an api call requires you provide a List?

regal scaffold
#

A API returns a Set when I don't need a set

eternal oxide
#

you can do everything with a Set you can do with a List

regal scaffold
#

Except store a set in a list

#

As in, except assign a list to be a set

eternal oxide
#

back to the beginning, why do you need a List?

regal scaffold
#

It's not that complicated....

#
    List<UUID> members = gang == null ? getMembers()) : new ArrayList<>(gang.getMembers().keySet());
eternal oxide
#

You have still to show WHY you need a List

regal scaffold
#

Because I'm making a iterator

#

Over all the UUIDS

#

And it's just the UUIDS I need

#

Nothing else

eternal oxide
#

.keySet().forEach

regal scaffold
#

Note how there's a condition

eternal oxide
#

litterally that will iterate teh Set ONLY if there are entries

regal scaffold
#

Yes I understand I can. I know what a set is and how it works. Was just getting errors cause my iterator was trying to cast but it was a set not a list

#

Thanks for the help

eternal oxide
#

ok

wise mesa
#

I love strongly typed programming languages

sand bone
#

I need help regarding plugin development

wise mesa
#

Is there ever a time where weakly typed ones are โ€œโ€betterโ€โ€?

wise mesa
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!

sand bone
#

Can someone tell me a scoreboard plugin which shows up in all my servers

#

They are linked up to a bungeecord one

eternal oxide
eager jacinth
#

Does anyone know why the name changes in the tab, above the head, but doesn't change in the chat?

ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this, PacketType.Play.Server.PLAYER_INFO) {
            @Override
            public void onPacketSending(PacketEvent event) {
                Set<EnumWrappers.PlayerInfoAction> actions = event.getPacket().getPlayerInfoActions().read(0);
                if (!actions.contains(EnumWrappers.PlayerInfoAction.ADD_PLAYER)) return;

                List<PlayerInfoData> playerInfoDataList = event.getPacket().getPlayerInfoDataLists().read(1);
                List<PlayerInfoData> newPlayerInfoDataList = new ArrayList<>();

                for (PlayerInfoData playerInfoData : playerInfoDataList) {
                    Player player = event.getPlayer().getServer().getPlayer(playerInfoData.getProfile().getUUID());
                    if (playerInfoData.getProfile() == null || player == null) {
                        newPlayerInfoDataList.add(playerInfoData);
                        continue;
                    }

                    String newName = NAMES.get(player.getName());
                    WrappedGameProfile newProfile = playerInfoData.getProfile().withName(newName);

                    newProfile.getProperties().putAll(playerInfoData.getProfile().getProperties());

                    newPlayerInfoDataList.add(new PlayerInfoData(newProfile,
                            playerInfoData.getLatency(),
                            playerInfoData.getGameMode(),
                            WrappedChatComponent.fromLegacyText(newName)));
                }

                event.getPacket().getPlayerInfoDataLists().write(1, newPlayerInfoDataList);
            }
        });
pseudo hazel
tribal quarry
#

yea, thats a thing

eager jacinth
#

oh, I see. Thank you!

eager jacinth
tribal quarry
#

since chat uses the displayname i think

tall furnace
#

It does

dawn ledge
#

hi what the equivalent of net.minecraft.client.gui.GuiScreen in 1.19.4 ?

chrome beacon
#

Doesn't cover client

chrome beacon
dawn ledge
#

ha you some documentation about it ?

chrome beacon
#

When modding you need to be able to read code and figure things out

#

You can look at the existing screens or at other mods

dawn ledge
#

i'm not modding, i just to add some screen with a plugin

#

i already did this in previous version of mc

chrome beacon
#

You can't add screens with a plugin

#

They don't exist on the server

#

Which is why they're in the client package

river oracle
#

Yeah screens are client only not sure how you plan to achieve this. Best you can do is heavy resource packs with already existing guis

#

Like chest guis

#

You can't listen for button clicks either keep that in mind

dawn ledge
#

ok, i'l try to add the game version jar and i'll see if can do something

river oracle
#

Outside of the vanilla interactions ofc

chrome beacon
#

Adding client classes to the server isn't going to help

hardy crystal
#

hi

#

why i recive this error?

#

i'm tring to fork a plugin (libsdisguise)

#

cannot access com.mojang.brigadier.Message

#

this is the compitation error

undone axleBOT
hardy crystal
#

oh, i don't remember that

#

thanks

misty ingot
#

theres no way to get the spigot plugin id before uploading it right? I need to implement an update checker but i cant do it without the id
so will i have to release another version for the update checker?

hardy crystal
misty ingot
#

ef

elder saffron
#

How do I teleport the player to a new location, in a different dimension?

//List<World> worlds = Bukkit.getWorlds(); //maybe something like this?
Location location = new Location(world, 0,0,0);
player.teleport(location);
#

As an example: how do I get the_nether world?

chrome beacon
#

world would be the other world/dimension

elder saffron
#

world_nether*

chrome beacon
#

There can be more than one nether world or none at all

elder saffron
#

okay. How do I get the world itself to make a Location within it

#

it can be the overworld, end, nether, or custom; anything

#

I just need to know how to get any given dimension.

rapid dome
#

Bukkit.getworld("world_nether");

elder saffron
#

Ah okay; thank you! I'll test it out

chrome beacon
rapid dome
#

otherwise you could take the world from the player

rapid dome
rapid dome
#

its better like this

viscid ginkgo
#

im back

#
        exclude module: ("org.bukkit")
    }``` any reason this wouldnt work?
eternal oxide
#

Yes, vault packaged teh api when it shouldn't

hardy crystal
#

I have to use the flag --compile craftbukkit?

eternal oxide
#

no

hardy crystal
#

for build tools

#

ok, thanks

chrome beacon
viscid ginkgo
chrome beacon
viscid ginkgo
#

it puts my bukkit version from 1.17.1 to 1.13.1 which doesnt give me half the stuff i need

eternal oxide
#

you don't so long as your dependency order is correct

chrome beacon
#

If you follow their instructions you don't

eternal oxide
#

Spigot first

viscid ginkgo
#

mm alr ill try to take a look

#

just started java so may take a minute

#

anything i should look for?

rapid dome
#

Depency ConfigUpdater

viscid ginkgo
#

would i do something more like this?

    priority
    sourceSets.main.compileClasspath = configurations.priority + sourceSets.main.compileClasspath
}

dependencies {
    priority 'org.blah:JarB:2.3'
    compile 'org.blah:JarA:2.4'
    ...
}```
chrome beacon
#

Just use compileOnly

#

but put the spigot one above the vault one

viscid ginkgo
#

it is

#
    mavenCentral()
    maven {
        name = "spigotmc-repo"
        url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/groups/public/"
    }
    maven {
        name = "vault-api"
        url = 'https://jitpack.io'
    }
}

dependencies {
    compileOnly "org.spigotmc:spigot-api:1.17.1-R0.1-SNAPSHOT"
    compileOnly("com.github.MilkBowl:VaultAPI:1.7")
}```
chrome beacon
#

Looks fine

viscid ginkgo
#

yeah but

#

bukkit is still on 1.13.1-ro.1

chrome beacon
#

Did you reload gradle

viscid ginkgo
#

yeah ill try again tho

#

still 1.13.1

chrome beacon
#

Could you send the entire build.gradle

#

in a paste

#

?paste

undone axleBOT
quaint mantle
#

is there a enderpearl impact event or a alternative for it

chrome beacon
quaint mantle
#

thx

viscid ginkgo
#

sure

#

?paste

undone axleBOT
viscid ginkgo
chrome beacon
hardy crystal
quaint mantle
#

does p.getlocation have the yaw and pitch too?

rapid dome
#

yes

chrome beacon
quaint mantle
#

k thx

hardy crystal
chrome beacon
#

What command did you use?

hardy crystal
chrome beacon
#

and was the folder completely empty (excluding BuildTools jar)

hardy crystal
#

with 1.19.4 I had no problems

chrome beacon
#

Also send the entire line

weak meteor
#

thats the entire line

#

thats line 65

chrome beacon
#

Then that error does not match the code

#

Which means your jar isn't up to date

viscid ginkgo
weak meteor
#

just

#

downloaded

#

and reinstalled

wise mesa
#

Is it possible to make npcs without nms

eternal oxide
#

yes, use Citizens

orchid trout
#

npc.create