#help-development

1 messages Β· Page 1083 of 1

dawn flower
#

do i rotate by the yaw + 180?

#

so it faces the player

eternal oxide
#

you do whatever works πŸ™‚

dawn flower
#

alr

eternal oxide
#

just remember its in Radians

dawn flower
#

the yaw or the rotation

#

nvm

ruby ermine
#

yo can someone help me with that

#

!link

#

i cant post my picture

#

!help

eternal oxide
#

?img

undone axleBOT
#

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

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

lilac dagger
#

i always wanted to do something like this, but i didn't see the point

ruby ermine
#

can someone help me with that

chrome beacon
#

The authentication servers are down

ruby ermine
#

that means?

chrome beacon
#

This is a Mojang/Microsoft problem not much you can do

#

Just wait for them to fix it

ruby ermine
#

oh that means i cant play and must weit

#

ok thx for your help

astral pilot
#

what happens to the Player instance when a player goes offline?

echo basalt
#

Well

#

It's about time you learn about the basics of GC

tardy delta
#

ehh

echo basalt
#

In short, when an object loses every reference to it, it (eventually) gets garbage collected

tardy delta
#

ig you hold on to it, not much

eternal oxide
#

The reference goes stale. ie its no longer referenced by Minecraft so you holding it is pointless

echo basalt
#

Now, references to objects are held when you're for example, storing an object on a list or using it in a method

#

When you're holding a reference to an object for longer than the object's lifetime we say you're having a memory leak

#

As that object is being (pointlessly) kept in memory when it shouldn't

#

So you need to make sure you remove every reference when the object gets invalidated, by for example, removing player instances from all sorts of collections and cancelling any tasks that have the player as a runnable

#

This will leak:

public void startTask(Player player) {
  Bukkit.getScheduler().runTaskTimer(plugin, () -> {
    Location playerLoc = player.getLocation();

    if(playerLoc.getWorld().getName().equalsIgnoreCase("spawn")) {
      plugin.getLogger().info(player.getName() + " is at spawn!");
    }
  }, 20L, 20L);
}
green prism
#

Hey there. Is there a way (besides storing entity UUID values in a Config file and then retrieving them each time) to recognize if an entity has been made by a specific plug-in?

echo basalt
#

PDC

#

I use it for entity components at work

green prism
echo basalt
#

Simple example:

  • Have an "entity template" system that applies components to a given entity (let's say that when left-clicked sends a message)
  • When applying a template to an entity, save the template id in a list in PDC
  • When the entity is loaded, check the template list and re-apply the templates
echo basalt
#

p much how I achieved permanent components on the custom entities at work

grim ice
#

you won't find this thread on google since it got old

young knoll
#

?pdc

grim ice
#

OH

#

that's convenient

astral pilot
echo basalt
#

They do

eternal oxide
#

no, they exist in your code

young knoll
#

Memory leaks exist in every language

echo basalt
#

.

#

.

#

.

slender elbow
#

i mean they don't exist in java as they exist in C, but it just means your code is ass

echo basalt
#

C stands for "your Code is ass"

drowsy helm
#

C stands for ass

jolly solstice
echo basalt
astral pilot
#

but thing is, does the Player instance becomes valid again if a player logs on once again

slender elbow
#

no

astral pilot
#

and what will happen if i call methods inside a Player instance where the player has gone offline

#

will it throw error or will it do nothing

young knoll
#

Depends on the method

slender elbow
#

✨ mystery

dawn flower
#

how do i make a display entity (that is riding a player) always be infront of the player

slender elbow
#

you don't really wanna find out either lmao

astral pilot
astral pilot
eternal oxide
#

just don;t hold invalid references

slender elbow
#

nothing is gonna work

drowsy helm
#

Mem leaks

slender elbow
#

but whether it no-ops or throws an error is unspecified

eternal oxide
#

track by UUID

#

or properly manage yoru own Garbage

young knoll
#

WeakReference woo

paper viper
#

WeakHashMap if using a map data struct

echo basalt
#

I've actually had crazy overhead by using entity.getLocation().distance

paper viper
#

or a weakhashset using Collection convert to set

echo basalt
#

Instead of creating a vector using getXYZ methods which are paper only :( and doing distance directly

#

Solid 2/3rds of the performance was going to creating new world references and doing world equality check

eternal oxide
#

getDirection and apply to Translation

echo basalt
#

not signing the cla

#

shoo

sharp storm
#

who no why i cant download

#

It's always been here without downloading

eternal oxide
#

try again with the jar

sharp storm
eternal oxide
#

that looks like the UI version

sharp storm
runic pine
#

My Arch Linux is crashing sometimes and there's nothing I can do... does anyone know what could happen?~

sharp storm
#

yes ui

eternal oxide
#

?paste the full log

undone axleBOT
sharp storm
eternal oxide
#

?bt

undone axleBOT
sharp storm
blazing ocean
slender elbow
#

just use ubuntu or pop_os, lol

sharp storm
eternal oxide
blazing ocean
slender elbow
#

lol

eternal night
sharp storm
eternal night
#

gotta get that real arch experience

blazing ocean
#

arch >>>>

blazing ocean
#

(i somewhat know what i'm doing)

runic pine
#

If the operating system crashes out of nowhere, it's not the user's fault but the system's fault lol

runic pine
#

Even my mother understands more than you, brother

blazing ocean
#

damn bro i'm sorry

sharp storm
late sonnet
eternal oxide
serene schooner
late sonnet
eternal oxide
#

java -jar ...

blazing ocean
sharp storm
serene schooner
#

oh lol

sharp storm
#

with me

jolly solstice
sharp storm
#

Still stuck in the download PortableGit-2.30.0-64-bit.7z.exe

jolly solstice
# serene schooner wym?

If you choose Arch Linux, you basically sign the small print that says "possible system instability, due to bleeding edge updates"

serene schooner
#

i use arch its usually windows fault still i dont even know fucking how lol

eternal oxide
undone axleBOT
sharp storm
#

I can download PortableGit-2.30.0-64-bit.7z.exe on github, but not with BuildTools

torn shuttle
eternal oxide
#

what error?

hard socket
#

is ProtocolLib maven dependency for 1.21 out??
I can't find the 5.20 for some reason

sharp storm
eternal oxide
#

you need to save and post the link here

sharp storm
sharp storm
#

How do I post pictures

eternal oxide
#

?img

undone axleBOT
#

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

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

blazing ocean
#

?imf

#

fuck

sharp storm
#

I may not have described it very well

sharp storm
slender elbow
#

read bot message

runic pine
sharp storm
slender elbow
#

yea

runic pine
#

and from what I saw it's a problem with archlinux and not with my settings or an installation problem~

sharp storm
#

!verify

undone axleBOT
#

Usage: !verify <forums username>

runic pine
#

several people report the same problem

serene schooner
blazing ocean
sharp storm
#

!verify 萌派

undone axleBOT
slender elbow
#

my archlinux works fine, thank you very much

serene schooner
serene schooner
blazing ocean
#

same ^-^

#

so it's their issue

serene schooner
#

it'll be a problem with however u installed it

jolly solstice
#

I don't use arch atm, but if I was, it would be running fine too (I guess) xP

serene schooner
#

^^^

slender elbow
#

that is not to say that your issue is unique to you and there aren't others who suffer from it

serene schooner
#

u just gotta trial and error tbh

blazing ocean
#

^

#

still wrong server

serene schooner
#

also u gotta make sure u installed the right one from the right place

blazing ocean
#

archinstall moment

tame wolf
sharp storm
#

!verify xuyan

undone axleBOT
runic pine
blazing ocean
serene schooner
tame wolf
#

@sharp storm go to #bot-commands

blazing ocean
#

way way more

eternal night
sharp storm
#

!verify kroazi

undone axleBOT
#

A private message has been sent to your SpigotMC.org account for verification!

serene schooner
#

wym wrong side?

blazing ocean
tame wolf
sharp storm
blazing ocean
#

then you're verified

tame wolf
#

You're fine

serene schooner
#

yeh u chill

runic pine
# blazing ocean what kek

I didn't judge that people were needy because of the people they block. Do you want affection, baby?

eternal night
#

✨ romance ✨

slender elbow
#

bro doesn't understand that this is not the right place to ask

#

go ask for help in the archlinux discord

serene schooner
#

he's not even making sense

runic pine
serene schooner
#

?

blazing ocean
serene schooner
#

btw guys is 1.19.4 a good version for development?

blazing ocean
#

use 1.20.6, it's the latest stable

serene schooner
#

sorry thats a rly badly phrased question

pseudo hazel
#

no

runic pine
pseudo hazel
#

just use 1.20.6 or 1.21

serene schooner
#

has much changed

#

?

pseudo hazel
#

depends

#

idk wtf your plugin does

late sonnet
blazing ocean
serene schooner
slender elbow
#

if you just use the api, there are a couple things you might have to change

#

if you use nms, haha good luck

late sonnet
#

that xd

serene schooner
sharp storm
serene schooner
#

like nbt editing

#

etc

slender elbow
#

hahahaha

pseudo hazel
#

they changed all of items in liek 1.20.5

#

so

serene schooner
#

ohhh shit lol

serene schooner
#

:/

pseudo hazel
#

like items have components now

slender elbow
#

internals, net.minecraft.server

runic pine
#

Unsupported Gradle JVM.

Your build is currently configured to use Java 22.0.2 and Gradle 8.5.

Possible solutions:

  • Use Java 21 as Gradle JVM: Open Gradle settings
  • Upgrade to Gradle 8.5 and re-sync
#

any idea

slender elbow
#

not api

pseudo hazel
#

e.g. the /give command has changed

runic pine
#

im using java 22 and gradle 8.5

serene schooner
#

it's mostly custom model data and stuff

#

has that changed?

sharp storm
#

He's been like this all the time, how to solve it

serene schooner
#

bc ik resource pack stuff has changed quite a bit

slender elbow
#

custom model data is api, so idk why you'd use nbt for that

serene schooner
tame wolf
#

Everyone that needs/wants help create a thread for your issue

serene schooner
#

actually i dont use too much nbt

late sonnet
slender elbow
#

ideally you would not use nbt at all

tame wolf
serene schooner
#

whats the biggest change?

slender elbow
#

nbt no longer exists in ItemStacks

serene schooner
#

from 1.19.4 to 1.20.6

slender elbow
#

basically

late sonnet
#

BuildTools stuck in downloading git portable for windows

sharp storm
eternal oxide
slender elbow
#

but you shouldn't need to use NBT as there is api for pretty much all you need?

serene schooner
#

is that because not much itemstacks use nbt?

sharp storm
#

Please quote me when you reply to me, I don't know English, I don't know who you're talking to

pseudo hazel
#

im pretty sure eveyrthing can be done with the api now regarding items

sharp storm
serene schooner
#

ohhh nice

pseudo hazel
#

but like

serene schooner
#

any server side/client side switch arounds?

pseudo hazel
#

idk what you were doing without api before

#

for packet stuff?

#

probably

serene schooner
#

ah k

sharp storm
slender elbow
#

what if you try to download that from your browser?

runic pine
chrome beacon
#

Send the entire thread dump

#

?paste

undone axleBOT
slender elbow
#

that stack trace says it's from a separate thread

#

you gotta look for the Server Thread

slender elbow
#

two different databases? why?

#

huh?

#

what kind of "lists"?

chrome beacon
#

normally you'd just make a table to store your list

tardy delta
#

depends on how your data is structured

slender elbow
#

you sure you don't mean two tables instead of two databases?

tardy delta
#

two tables then

#

table for games, table for players, which store a game id

#

when you fetch a game and players, fetch from the game table and fetch all players with that game id

slender elbow
#

and an index! :paperuwu:

tardy delta
#

just use mongodb if you think this sucks

#

but mongodb sucks even more

#

well

#

just create two tables at this point

#

the sql approach?

#

then have a third table uwu

#

Game table
Player table
Table that stores mappings for player to game

#

πŸ€·β€β™‚οΈ

chrome beacon
#

^^

tardy delta
#

what how

slender elbow
#

that's what the 3rd table is for

tardy delta
#

the mappings table is a list on its own

#

it stores all links of games to players

#

playerid, gameid and maybe some extra data

#

nope

slender elbow
#

game id and player id would be unique combined

tardy delta
#

you can have multiple players per game:

  • player: 1, game: 1
  • player: 2, game 1
#

also multiple games per player

slender elbow
#

that will just be another entry

tardy delta
#

player 2: game 1
player 2: game 2

#

just another entry

#

both

#

in the mappings table

slender elbow
#

or neither

tardy delta
#

i mean yes

slender elbow
#

but they would both make a composite unique key

#

well, you can't

#

unique key != primary key

tardy delta
#

its just a composite primary key or whatever its called in english

slender elbow
#

you can have several unique columns, but only one primary column

tardy delta
#

uhh

#

nahh

#

could still use an index

#

well primary keys already have an index on them

#

also assuming youre not gonna hold millions of players

slender elbow
#

dbs are pretty darn fast if you set it up right

tardy delta
#

"if"

slender elbow
#

and you could also use something like redis if you need that extra boost

slender elbow
tardy delta
#

uhh ye, dunno what youd need the index for in game players

jolly solstice
#

Is this for BungeeCord?
Or are you only dealing with one server?

tardy delta
#

PRIMARY KEY(game_id, player_id) hmm?

mellow edge
#

so if I understand correctly health scaling is a custom spigot feature; it is not in minecraft's source code by default?

slender elbow
#

yes

proud obsidian
#

org.bukkit.craftbukkit.v1_20_R3 is 1.20.6?

glad prawn
#

Is there any way to reduce the cost of setType?

slender elbow
#

share the spark report

#

a screenshot is as good as nothing

glad prawn
blazing ocean
#

purpur

glad prawn
#

im sry but thats spark from my friend

slender elbow
#

the server is doing nothing for 86% of the time lol

#

and most of the rest of the time is spent just ticking entities

glad prawn
#

its just a test server

granite night
#

is there a code to support hex color messages? Like &#ffffffHello

slender elbow
#

sure but the setType is only spending 0.1% of the tick time (including sleeping until the next tick, not of the mspt)
you could pass false as the update param, but, y'know, you're passing false to the update param, idk if you're interested in that

glad prawn
#

ok thanks

slender elbow
#

there is nothing to worry about, i'd worry if it was actually causing lag

runic pine
#

/pastebin

blazing ocean
#

?paste

undone axleBOT
runic pine
#

?paste

undone axleBOT
stoic tapir
#

How can i send a message with a built-in font that minecraft has? for example SMALLCAPS
or sα΄α΄€ΚŸΚŸ α΄„α΄€α΄˜s

runic pine
blazing ocean
#

smallcaps is in the default font

stoic tapir
runic pine
blazing ocean
blazing ocean
runic pine
stoic tapir
blazing ocean
#

what?

#

small caps is just a set of letters

slender elbow
#

it's just unicode characters

stoic tapir
#

so i cant do smth like json components?

runic pine
#

no

slender elbow
#

you can

blazing ocean
slender elbow
#

you don't need to

#

TRUE

blazing ocean
#

third alt btw

slender elbow
#

there's probably some "text to small caps" result on google you could use

slender elbow
#

your screenshot

runic pine
#

accusing without proof is a sin

blazing ocean
#

πŸ’€

slender elbow
#

citation needed

blazing ocean
#

getting banned and then having two alts to bypass it also ain't good buddy

stoic tapir
slender elbow
#

so they aren't plugin messages you send, you want to convert a player message to small caps?

blazing ocean
stoic tapir
#

ehh, kind of yea

#

i wanna convert Placeholder's fonts

slender elbow
#

i'm not sure what you mean ngl

stoic tapir
#

i already did it with custom resourcepack fonts

#

but i cant seem to do it with built-in minecraft fonts

slender elbow
#

but it boils down to having a Map, Pattern or switch expression that converts the String chars to their small caps unicode codepoint

#

replaceAll or whatever suits you

echo basalt
blazing ocean
#

it's not mine ok

#

it's that gongas kid whose third alt just got banned

#

he was reposting the message after like 2 messages so yea

echo basalt
#

ah what an annoying pos

#

mans from lisbon but charges in brazilian real

stoic tapir
#

I Wanted to use maps but dont seem to underestand it properly

echo basalt
#

resells premium plugins for half the price

echo basalt
#

not really a thing

#

ppl use custom fonts or weird unicode for that

stoic tapir
blazing ocean
echo basalt
#

ppl still use weird unicode for that

echo basalt
blazing ocean
#

i mean yea

stoic tapir
echo basalt
#

rip

stoic tapir
#

i've already achieved most of it

#

but seem to be stuck in making built-in fonts work with it too

#
    private static final Map<String, String> builtInFonts = new HashMap<>();

    static {
        builtInFonts.put("mini", "α΄€Κ™α΄„α΄…α΄‡κœ°Ι’ΚœΙͺα΄Šα΄‹ΚŸα΄Ι΄α΄α΄˜κž―Κ€κœ±α΄›α΄œα΄ α΄‘xʏᴒ");
    }

Is this even correct? 😭

#

am i doing it right?

echo basalt
#

that sounds hacky but sure works aite

#

I'd prob use an enum for that

stoic tapir
#

well now im stuck again 😭

#
            String finalFont;
            if (builtInFonts.containsKey(fontName)) {
                finalFont = builtInFonts.get(fontName);
            } else {
                finalFont = fontName;
            }

meh πŸ’€

echo basalt
#

mans tryna play with fonts cant even play with basic java

stoic tapir
#

i dont even know how java works πŸ’€

blazing ocean
#

i prefer registering my fonts to my resourcepack at server boot and then i just have those for setting it on components

stoic tapir
#

okay i lied i do know a bit of java

blazing ocean
#

works great

stoic tapir
#

but not enough

stoic tapir
#

why did i say resourcepack

#

i mean plugin

brazen badge
#

I cannot understand why the config file is not created within the plugin folder. I used saveDefaultConfig() and the file is inside the plugin (viewed with winrar). however, I cannot find it

fossil flax
#

how can i create a plugin for bungeecord and spigot all in one?

eternal oxide
#

just build both in teh same jar.

#

bungee.yml and plugin.yml

kindred sentinel
#

It works literally "like in those animated videos".. With slowmotion in the end

tardy delta
#

ah i thought that was default mc behaviour

tardy delta
#

amazing

#

reminds me of sleighs in that one mc server

near furnace
#

@quaint mantle I now know how to change the .jar output file to any folder of my choice. Through the maven-jar-plugin or artifact builds. But how do i set it up through FTP and to my external laptop in my living room which will be hosting the minecraft server in a few days.

Anyone else feel free to drop suggestions and solutions

stable drum
#

hey guys, i want to try optimise my server minecraft 1.21 and i want use all threads on my ryzen 9 3900x do you have idea and i have 16Go of ram, it's my personnal server
my server turn on spigot !!!
do you have a better idea to optimize my server ???

blazing ocean
#

no need to crosspost

kindred sentinel
#

Maybe setVelocity to the down when minecart start to fall?

tardy delta
#

so using all threads wont be happening

stable drum
tardy delta
#

i have no clue about 1.21

stable drum
#

oh ok

#

but you have idea to optimize server on spigot, i have change settings on Spigot.yml ?

worthy yarrow
#

There are quite a few factors that go into server performance

tardy delta
#

things like decreasing mob spawn rates and such

stable drum
#

yes i know

proud obsidian
#

Why BuildTools builds 1.20.1 spigot and craftbukkit if I requested 1.20?

tardy delta
#

if you really have a big server and wanna use all the threads, could look at folia

stable drum
worthy yarrow
tardy delta
#

i mean it uses regionized ticking, which implies it also uses more ram

proud obsidian
#
Java Version: Java 21
git version 2.43.0
openjdk version "21.0.3" 2024-04-16
Attempting to build version: '1.20' use --rev <version> to override
Attempting to build Minecraft with details: VersionInfo(minecraftVersion=1.20.1, accessTransforms=bukkit-1.20.1.at, classMappings=bukkit-1.20.1-cl.csrg,```
tardy delta
#

and not nexessarily optimized, more in the sense of "lemme use all the threads available"

tardy delta
#

so if someone build a lag machine, only one region of the server lags

stable drum
tardy delta
#

doubt

proud obsidian
#

So how to import org.bukkit.craftbukkit.v1_20_R1? I should compile 1.20.1 or what?

peak bobcat
#

How would I go about updating a 1.15.2 plugin to a newer version? Also, what would you guys recommend to be the newest version that would run with plugins most smoothly?

tardy delta
#

if you only have 30 players i see no need to optimize

stable drum
tardy delta
#

but for the latest version id either use 1.20.6 (stable) or 1.21

tardy delta
worthy yarrow
stable drum
tardy delta
#

well if theres no lag and it doesnt uses relatively big amounts of ram i dont see a reason to opitmize

stable drum
#

sry for my english i'm french and i don't have all vocabulary

tardy delta
#

i understand you well enough

slender elbow
#

folia isn't for you

#

folia is for the 1% of 1%

tardy delta
#

just wanted to say that magic word

stable drum
peak bobcat
tardy delta
#

just look at the code

peak bobcat
#

Was made by some korean dude a couple years ago, he fell off the face of the world after making it

worthy yarrow
#

You can tell by the imports

#

You don’t even have to look at the code tbf

stable drum
#

having an HDD that runs the server and burns or not ???

tardy delta
#

hdds are slow

stable drum
#

or it's better ssd

tardy delta
#

but its mor about ram

#

but chunk loading might be relatively slow if it loads from a hard disk, idk

stable drum
tardy delta
#

again, if you dont have performance issues, why bother optimizing

worthy yarrow
tardy delta
#

mmh

peak bobcat
#

This is an example of the imports of one of the files: import org.bukkit.Particle;
import org.bukkit.entity.Projectile;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

stable drum
worthy yarrow
peak bobcat
#

Cool, so its not impossible to upgrade it?

blazing ocean
stable drum
peak bobcat
worthy yarrow
blazing ocean
#

well then it doesn't use nms

blazing ocean
#

but it gives you more than NM

worthy yarrow
#

I thought you had to depend on all of spigot for NMs

blazing ocean
#

yea you do

#

but spigot gives you more than just NM, like dfu

worthy yarrow
#

Right right

peak bobcat
#

So to go about upgrading it to a newer version, I just need to update the stuff that has to do with the Spigot/bukkit API? Or is there other stuff I have to change

#

Its going from 1.15.2 to prob whatever latest is

worthy yarrow
#

Whatever is marked as deprecated really

peak bobcat
#

How would I know what’s depreciated and what isn’t?

#

Would it just not work?

worthy yarrow
#

Are you using IntelliJ

#

It should just tell you depending on the version of spigotapi you’re using

proud obsidian
#

How I can compile org.bukkit.craftbukkit.v1_20_R1 for 1.20 with BuildTools? (specified [--nogui, --rev, 1.20, --remapped, --compile, SPIGOT,CRAFTBUKKIT, --output-dir] still gets 1.20.1 snapshot by some reason)

slender elbow
#

aren't 1.20 and 1.20.1 effectively the exact same thing anyway?

worthy yarrow
#

Yeah

#

But that’s a buildtools design as I’ve already mentioned to him before

proud obsidian
#

It is, but Intellij says org.bukkit.craftbukkit.v1_20_R1 is not found, and I have craftbukkit-1.20.1.jar

#

Maybe I should try to rename it?

worthy yarrow
#

Well 20.1 is probably the β€œstable” build so I’d just use it

torn shuttle
#

I'm getting old and jaded, I just got a bunch of plans from someone for a thing and after 5 minutes I already know for a fact they're not going to make it in life

#

not just for these projects, just in general

worthy yarrow
#

How old

#

I’m sure it’s not that bad yet

slender elbow
#

make sure you are properly importing nms with the maven plugin

proud obsidian
#

I found it, thank you

potent atlas
#

My command is not tab completing. Does anyone have an example I could look at?

wraith delta
potent atlas
#

I have a class implementing TabExecutor separate from main class

wraith delta
remote swallow
#

you dont have to do that

#

if you set executor it sets tab completer too

potent atlas
#

I have
getCommand("wink").setExecutor(new WinkCommand());

remote swallow
#

public class MyCommand implements TabExecutor { 

    
      public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
          if (args.length < 2) return false; // Not enough args
          sender.sendMessage("Hi!" + args[0] + ", " + args[1])
          return true
      }

      public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
            if (args.length == 1) { // first arg
                return StringUtil.copyPartialMatches(args[0], List.of("this", "is", "an", "arg"), new ArrayList<>())
            }
            // other args
      }
}
wraith delta
remote swallow
#

that is very pointless

#

you sholdnt have to check command name as each command gets its own executor

wraith delta
#

idk cuz mine works and theirs doesnt.

remote swallow
#

and it doesnt really matter if you send tab complete to console

potent atlas
#

I can't see anything wrong x-x can I show you guys my code?

remote swallow
#

yeah

#

?paste it

undone axleBOT
potent atlas
#

ok

remote swallow
#

looks correct, in game does it show the values for the 1st arg

potent atlas
#

it does show everything. but it doesn't let me tab complete

remote swallow
#

use StringUtil.copyPartialMatches

potent atlas
#

I press space and the list shows up but typing the first character doesn't do anything

remote swallow
#

for the first arg it would be return StringUtil.copyPartialMatches(args[0], Arrays.asList("mention", "pm", "tpa"), new ArrayList<>());

#

the first args[0] is passing in what the user has so far, the 2nd paramater is the arguments you want and then the last paramater is the return list so most of the time just a new array list

wraith delta
#

overcomplicating it

remote swallow
#

how

#

im explaning what it does so they learn instead of just spoonfeeding it

#

or telling them to use something completely different instead of a built in bukkit method

potent atlas
#

alright one moment while I try that

#

yay πŸ˜„

#

thank you ❀️

remote swallow
#

np

wraith delta
wraith delta
# remote swallow i used the code they had

Fair but... id recommend otherwise. Its faster to use list.add(""); and be able to use such thing for adding/removing tab completes faster in cases where you need to list off entities, players, and remove unused enteries as you type a word

potent atlas
#

the issue is resolved guys πŸ˜› just saying

kindred sentinel
winter forge
#

sorry to distract you, but your plugins work on version 1.16.5 and on Hosting-Minecraft

tardy delta
#

now make santas sleigh!!

winter forge
quaint mantle
lost matrix
# winter forge yes

There are thousands of plugins out there. Some of them work on 1.8, some on 1.16.5 and some only on 1.21.
You would have to go to the plugins page and check for which version it works. Generally speaking spigot is upwards compatible, so there

#

is a good chance that a 1.12 plugin will still run all the way to 1.21

blazing ocean
young knoll
kindred sentinel
brazen badge
tardy delta
brazen badge
#

there is little to show

rough ibex
#

I smell some singleton pattern

eternal oxide
#

Check yoru startup to ensure there is no error/exception during onEnable

eternal oxide
#

then you either do NOT have a config.yml in the root of your jar or you did not update the jar on your test server

brazen badge
#

there is config.yml

eternal oxide
#

?paste your latest.log

undone axleBOT
brazen badge
#

only database error

eternal oxide
#

do you init your database in onEnable?

brazen badge
#

yep

eternal oxide
#

I did say you had an error in onEnable

#

[18:28:26] [Server thread/ERROR]: Error occurred while enabling Lifesteal v1.0.0 (Is it up to date?)

brazen badge
eternal oxide
#

you didn't catch the sql init error so the exception caused your onEnable to fail

#

fix your database setup, also wrap it in a try/catch

plucky elm
#

someone can help me pls, why doesn't it detect the bungee api?

toxic summit
#

Hi everyone, I am currently upgrading my plugin from 1.20.1 to 1.21. Does anyone know what happened to the ItemMeta#setPlaceableKeys method?

eternal oxide
drowsy helm
eternal oxide
#

?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

drowsy helm
#

Pretty sure you can do it through reflect

toxic summit
#

Allright, thank you!

drowsy helm
cold pawn
#

Does anyone know how I can make particle effects that circle a middle point? I'm not to great with Vectors or Math, so any resources I could get would be great.

cold pawn
#

thanks!

ivory sleet
cold pawn
#

yeah, do you have any resources for that?

ivory sleet
#

not in particular but some keyword u looking for is ofc

  • circle equation in 3d (R^3)
  • parameter equations
  • ig basic vector operations like add and subtract
#

what kind of lock ru using

ivory sleet
#

u can probably reentrant after the resource declaration in the try-with-resources statement

ivory sleet
#

also skinny u may wna have a save operation where it only saves if it isnt already saving

#

optimistically that is yk

#

if (lock.tryLock()) {
try {

} finally {
lock.unlock();
}
}

#

yea sure, but the issue is that if someone invokes the save method 10 times, its gonna try to save 10 times, even if those invocations happen relatively subsequent one after another

river oracle
#

I was today years old when I realized ByteArrayInputStream and ByteArrayOutputStream close do nothing

#

I should have been much younger than that before realizing

worldly ingot
#

I mean yeah it's just a fancy byte[] wrapper lol

#

It's just genrally good practice to call close() on a stream though

#

Especially if you don't know that the type is a byte array stream

river oracle
#
    private static byte[] writeNBTCompoundToBytes(NBTTagCompound base) {
        try {
            final ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
            final DataOutputStream dataStream = new DataOutputStream(byteOutputStream);
            NBTCompressedStreamTools.writeCompressed(base, dataStream);
            return byteOutputStream.toByteArray();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
#

probably fine in this case

quiet ice
#

aaa no try-with-resources aaaaaa

river oracle
#

I did before but I realized close doesn't do anything on either of these streams lol

#

for the DataOutputStream it really just closes the byteOutputStream

#

but ByteArrayOutputStreams don't need to be closed

quiet ice
#

Yes but you see you are saving an extra line of code

fossil flax
#

im trying to create a spigot plugin with a commando to send a player in another server via bungeecord.
What i have to use in the code?

river oracle
#

Is anyone familiar with DFU I'm trying to figure out if an ItemStack is always guarenteed to return an NBTCompoundTag the save method returns NBTBase instead

young knoll
#

Pretty sure it is

#

It’s impossible to represent an item in anything other than a compound

river oracle
#

mmmk I'll just assume it does πŸ’ͺ I'll just serialize air in my test and see if it breaks things kekw

river oracle
quiet ice
#

What will it be then? NBTVoid?

young knoll
#

Probably an empty tag

#

Or an exception, kek

river oracle
#

no clue not overly familiar with NBT

#

guess we'll see when I test it xD

wet breach
#

for example, it must have an id, if the id is missing it is treated as air and is thus removed

#

all items can have Attribute Modifiers as well

young knoll
#

I think at base an itemstack only needs the id

#

But I don’t think it’ll ever just return a string tag in that case

river oracle
#

in which case it'd still be serialized as a compound probably just in case

#

it will workℒ️

young knoll
#

Plus I think the deserialize method only accepts a compound

river oracle
#

kinda

#

the compressed deserialization method only does

#

however there are methods that accept NBTBase instead

#

I think its safe to assume anything the serialization API touches though will be NBTCompoundTag so its okay to just yolo on the readCompressed?

young knoll
#

Yeah

#

Plus it should always be compressed

river oracle
#

I wasn't compressing before πŸ’€

#

I just found those methods like 30 minutes ago

#

well, not totally true tbh

#

I knew of them I just thuoght that's dangerous it makes me assume NBTTagCompound

#

just gonna blind cast CH_BossThumbsUp

young knoll
#

Compress it with ZSTD

#

Make slime item format

river oracle
#

kekw

#

I'm going to use XZ to compress it πŸ™ may Jia Tan bless these item stacks

quiet ice
#

I mean, LWJGL 3 has ZSTD bindings

cold pawn
#

This is an amazing explanation, thank you so much!

wet breach
#

It probably should be noted that if its a circle you only need 1/4 and can just multiply and inverse for the rest.

#

Since the rest of the circle is just a mirror image

hard socket
#

is this right for 1.21?

cold pawn
#

Quick question tho, does the method make the particles spin or is it stationary?

hard socket
#

?mappings

undone axleBOT
hard socket
#

?nms

grave lion
young knoll
#

Seems fine

#

Though you can just call saveDefaultConfig in onEnable

#

It should handle all the rest for you

grave lion
#

i know its more for custom configs

#

i want a stress free way of doing it in the future, just wanted to know if it was in the right direction

young knoll
#

Yeah seems fine

#

Though currently all of that is stateless so you could technically make it static

hard socket
#

how the hell do you run the golem swing animation??
I used ProtocolLib and the api

wet breach
worldly ingot
#

Also, God damn it, who fucked up the name of that constant :(

spark lynx
ancient forge
#

Where can i see stuff and learn how to make modules run on commands and like open inventories and then open new ones based off buttons you press there

#

Like a documentation basically

eternal oxide
#

?gui

sweet pike
#

how do i fix $1: unbound variable with applyPatches.sh

i've added a configuration variable inside IntelliJ's editor, but when i put the fill path $1="/Users/xxx/Desktop/Test Server/BuildTools/work/decompile-3e3bd0ca"

i get a [file path above ^] not found

ancient forge
#

yall this is scary anyone know some videos that help me get into the minecraft part of this. Like ive watched videos explaining java coding but is there like videos that will lead me into implementing that into minecraft

wraith delta
#

you should watch several videos of the same thing to learn the concept

rough ibex
#

no

#

you've quoted it

sweet pike
rough ibex
#

can you show your whole sh

#

is this gradle or something

sweet pike
# rough ibex can you show your whole sh
#!/bin/bash

set -euo pipefail

if [ -z "$1" ]
then
    echo "Please run this script again with the clean decompile sources as an argument. In most cases this will be ../work/decompile-XXXX"
    exit
fi

# https://stackoverflow.com/a/38595160
# https://stackoverflow.com/a/800644
if sed --version >/dev/null 2>&1; then
  strip_cr() {
    sed -i -- "s/\r//" "$@"
  }
else
  strip_cr () {
    sed -i "" "s/$(printf '\r')//" "$@"
  }
fi

nms=$1
cb=src/main/java
#clean up and rebuild
rm -rf $cb/net
for file in $(find nms-patches -type f -printf '%P\n')
do
    patchFile="$file"
    file="$(echo $file | cut -d. -f1).java"

    echo "Patching $file < $patchFile"
    strip_cr "$nms/$file" > /dev/null

    mkdir -p $(dirname $cb/$file)
    cp "$nms/$file" "$cb/$file"
    patch -d src/main/java -p 1 < "nms-patches/$patchFile"
done
rough ibex
#

where did you get this from

ancient forge
#

and try to understand that

sweet pike
rough ibex
#

this is a hard thing to teach because so many tutorials explain it differently

#

and some dont explain it well at all

#

thanks

#

you have to pass in some sort of path to NMS in CLI

#

$1 is first arg

wraith delta
# ancient forge so your saying almost just watch people code

No im saying no one is going to teach you start to finish, each tutorial may teach you a little piece. Based on what you said you need help with (getting the code into minecraft) means you should watch a random basic tutorial on making a plugin which in the end of the video you can skip to, will show compiling.

#

This is assuming you already have gotten down creating the plugin without errors in the editor

#

Again there, dont worry about what you are trying to make yet. just use one main class to make a join event that sends a message. once that works then you know how to export

ancient forge
#

Alright it is my fault for explaining this poorly ive saw how to put the plugin into my server but i dont understand how to make events run based on commands. I mainly learned like what the stuff is in java but idk how to apply it

wraith delta
#

Well, feel free to show us what you do have and maybe assistance can be given πŸ™‚

#

watch a youtube video on how to make a join message plugin.

rough ibex
#

just write it in

#

how are you executing it

sweet pike
# rough ibex how are you executing it
#!/bin/bash

set -euo pipefail

#if [ -z "$1" ]
#then
#    echo "Please run this script again with the clean decompile sources as an argument. In most cases this will be ../work/decompile-XXXX"
#    exit
#fi

# https://stackoverflow.com/a/38595160
# https://stackoverflow.com/a/800644
if sed --version >/dev/null 2>&1; then
  strip_cr() {
    sed -i -- "s/\r//" "$@"
  }
else
  strip_cr () {
    sed -i "" "s/$(printf '\r')//" "$@"
  }
fi

nms="[path to decompile]"
cb=src/main/java
#clean up and rebuild
rm -rf $cb/net
for file in $(find nms-patches -type f -printf '%P\n')
do
    patchFile="$file"
    file="$(echo $file | cut -d. -f1).java"

    echo "Patching $file < $patchFile"
    strip_cr "$nms/$file" > /dev/null

    mkdir -p $(dirname $cb/$file)
    cp "$nms/$file" "$cb/$file"
    patch -d src/main/java -p 1 < "nms-patches/$patchFile"
done
``

error: 
zsh: "[path to file]" not found
#

ik it seems quite obvious what the error is, but i promise you the path is there

rough ibex
#

I meant like

#

what steps did you do to get this error

sweet pike
#

under "Edit Configurations", i put in $1="path"

rough ibex
#

that would not work

#

you can't do number=

#

and $k=v is invalid

#

since that's running $(k)=v

#

try the 3 dot

#

there may be a text box

sweet pike
rough ibex
#

would not work

#

$n is not an environment variable like normal

#

its special like $@

#

no idea

#

I've never fucked with NMS

#

you need to find a way to pass in the path

wide cipher
#

need some help working out how to fix the 'class not found errors' here

#

made for 1.20.2 btw

rough ibex
#

what is this supposed to do

young knoll
wide cipher
rough ibex
#

there is a much better way to do that

wide cipher
#

idk how to im just looking back at past code i made last year

wide cipher
rough ibex
#

oh wait I didn't read too closely

#

NMS is harder

#

do you have to use NMS?

#

Plib|Pevents would make this a lot easier

#

and compatible

wide cipher
#

idk what Plib or Pevents are

#

would it work?

rough ibex
#

protocollib

#

packetevents

#

packetevents is newer

#

but protocollib is very well known and is fine

wide cipher
#

ok, ngl idk how it would work with these

rough ibex
#

Just a different way to say it but it's abtracted

#

you get their game profile, change it

#

and update it for those players

#

use readSafely(0) instead of read(0) though

#

and yes it is kotlin

#

refresh() is a good starting point.

wide cipher
#

ok thanks

ancient forge
#

so im following the ?gui and im trying to do the @subcommand but its not working

#

its showing as @Subcommand doesnt exist

#

im trying to do it in the final class that extends javaplugin

wraith delta
#

Show us your code, at least a pic or so

wraith delta
ancient forge
#

import org.bukkit.plugin.java.JavaPlugin;

public final class MopoGamemodeSwitcher extends JavaPlugin {


    @Subcommand("open piano")

    @Override
    public void onEnable() {
        // Plugin startup logic
        System.out.println("Starting up Mopo's Gamemode Switcher");

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
        System.out.println("Shutting Down Mopo's Gamemode Switcher");

    }
}

#

the @subcommand is red

wraith delta
ancient forge
blazing ocean
#

chatgpt only knows outdated shit that doesn't work or exist

wraith delta
blazing ocean
#

no it doesn't know todays info

#

latest it knows was 1.16 last time i tried

wraith delta
blazing ocean
#

and it really doesn't point out oversights, instead oversees things

blazing ocean
wraith delta
# blazing ocean no why would i

because you likely gave it a dumb question, or skipped actual details. its your fault for getting the wrong response. as of its latest version it can directly quote from the web, which is part of why it is capable of helping through 1.21

blazing ocean
#

or.. just don't use ai lol

wraith delta
#

I do know how to code but some late nights when I just dont see my mistake I paste the code and describe what im doing, rarely have i gotten a wrong answer and when I do I tell it to rewrite it a different way

#

I think its not something you should rely on 100% at all, no way. but i think its a great side opinion

blazing ocean
#

i've never found ai to be useful for coding, not even boilerplate as it just copies the wrong thing over and over again

wraith delta
#

because you dont know how to use it.

blazing ocean
#

i mean, i don't need to learn how to write the perfect prompts to some random number generator

wet breach
#

I even have some templates for it too

blazing ocean
#

copy pasting and adjusting is the way to go

wet breach
#

Basically

blazing ocean
wet breach
#

I even have an archive of snippets too that i keep around

blazing ocean
#

just a waste if time

wet breach
#

Which most devs should be doing. When you find some piece of code you like or interesting or whatever. Just save it to a snippet library

#

Some day it might be useful lmao

wraith delta
rough drift
blazing ocean
rough drift
#

I actually should finish that one project for snippets

#

it was just

name
desc
lang
snippet

wet breach
#

Lol

rough drift
#

and you could filter for that

blazing ocean
rough drift
#

I just forgot to make it save πŸ’€

blazing ocean
#

i just use those nvim snippets, they're great

wraith delta
# blazing ocean regardless it's a waste of time

to you. dont use it. but to others who have the knowledge to handle such tools, it can save a lot of time in many topics. ive taught it a example piece of a config and had it write thousands of lines next repeating for a shop.

wet breach
wraith delta
wet breach
#

Ok. But why do that when i can setup a template to be what i need?

#

And it always be correct 100% of the time

blazing ocean
rough drift
#

Chat chat just use gpt for book finding or stuff

wraith delta
rough drift
#

it's really good at that

wet breach
#

I guess if you like ai do it, but unfortunately this isnt convincing to me to use or being worth using

wet breach
hushed scaffold
#

Everyone has their own waya

#

Ways

wraith delta
hushed scaffold
#

Nothing works for everyone

blazing ocean
wraith delta
#

no im against saying its useless. but if you dont know how to give it proper info then sure it may be

#

it comes down to your own knowledge

hushed scaffold
#

Aaaand it continues

#

😭

wet breach
# hushed scaffold Nothing works for everyone

I am aware of this but do know if competing with the best is what you want, they dont use AI. I am perfectly fine with more subpar programmers because of AI because that means less competition for me

rough drift
#

honestly I've actually found a really good use for AI: Telling me the names of things I forget, not just books.

"what was that one formula that looked like X" oh you're talking about XYZ? then you look it up and it's that, treat them like what they are: search engines

wet breach
#

Yeah it is handy for that lmao

rough drift
#

and don't take their output for granted tbh

blazing ocean
#

yeah

hushed scaffold
#

Really good at that

#

Until you start asking it for spigot methods...

#

Sudden hallucinations

blazing ocean
#

exactly

wraith delta
#

always begin with "I am using spigot api 1.21. ..."

rough drift
#

man its not funny when it uses the proper methods

hushed scaffold
blazing ocean
#

lmfao

rough ibex
#

antioch

rough drift
#

I asked it how to make a player break a block

#

it figured out that raycasting for a block, simulating a block break event then breaking it if it isn't cancelled would be best

blazing ocean
#

lmfao

#

why raycast tho 😭

rough drift
#

to get the target block 😭

wraith delta
hushed scaffold
rough drift
#
public class BreakBlockCommand implements CommandExecutor {

       @Override
       public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
           if (sender instanceof Player) {
               Player player = (Player) sender;
               Block targetBlock = getTargetBlock(player, 5); // Get the block within 5 blocks in front of the player

               if (targetBlock != null && targetBlock.getType() != Material.AIR) {
                   // Call the block break event
                   BlockBreakEvent breakEvent = new BlockBreakEvent(targetBlock, player);
                   getServer().getPluginManager().callEvent(breakEvent);

                   if (!breakEvent.isCancelled()) {
                       targetBlock.breakNaturally(); // Break the block if the event is not cancelled
                       player.sendMessage("Block broken successfully!");
                   } else {
                       player.sendMessage("Block break event was cancelled.");
                   }
               } else {
                   player.sendMessage("No block in front of you to break.");
               }
               return true;
           } else {
               sender.sendMessage("Only players can use this command.");
               return false;
           }
       }

       private Block getTargetBlock(Player player, int range) {
           BlockIterator iter = new BlockIterator(player, range);
           Block lastBlock = null;

           while (iter.hasNext()) {
               lastBlock = iter.next();
               if (lastBlock.getType() != Material.AIR) {
                   break;
               }
           }

           return lastBlock;
       }
   }
blazing ocean
#

people here would be able to help you no problem

hushed scaffold
#

^

blazing ocean
#

i really don't get what you're saying here

#

it's a perfectly normal question

hushed scaffold
rough drift
#

chat should I procrastinate and work on my search engine

#

It would be helpful to just throw shit at it and it organizes itself

#

I'm NOT organized 😭

wraith delta
#

That is a pretty shit code structure there you sent and I dont doubt it did generate such thing, but... still comes down to what you gave as a prompt. I do truly wish ai was not integrated in everything nowadays, but unfortunately it is.

blazing ocean
rough drift
#

being productive at something else

blazing ocean
#

yeaaa

rough drift
#

like otherwise

#

I have to deal with inventories

blazing ocean
#

ew

rough ibex
#

I spent days overhauling my configs

#

thats it

#

just 1 part

rough drift
#

You just reminded me I'm procrastinating on working on config by working on inventories and I now want to work on my search engine

#

I can't keep focus on one thing 😭

blazing ocean
rough drift
wraith delta
rough ibex
#

Ten?

#

thats a low number

rough drift
#

^

blazing ocean
#

yea i have like 25 at least

rough drift
#

I am handling the entire backend, frontend and external services of an hosting service ALONE, I have roughly 700 items in my todo list AND IT'S NOT EVEN DONE

#

10 is like nothin

#

I js realized I'm talking abt myself again carry on chat 😭

wraith delta
#

if you put all your effort into something you wouldnt end up with the endless amount of incomplete projects

blazing ocean
#

my adhd just simply does not allow me to put in all my effort into one thing

#

i just cannot

rough drift
blazing ocean
#

πŸ’€

rough drift
#

fuck it

#

search engine time

wraith delta
#

ill tell you which ai sucks at responding regardless, the one they added in google results XD. but anyways, gpt isnt for everyone, i agree it could give unwanted answers but it could also give great answers, just have to give it a try when in doubt. i may ask it if it has any solutions for rad's adhd cuz man you gotta get some projects done

rough drift
#

10/10

#

would beat you

rough drift
astral pilot
#

is there a way to make it so that when a BaseComponent gets clicked, a function runs

astral pilot
#

yea i saw that

#

but it seems like there's no way

#

and i have to make a dummy command

tardy delta
#

Correct

eternal night
#

No

sweet pike
#

that fixed the majority of the issues, but how do i get about errors regarding libraries that aren't imported? is there a specific way to import all the libraries that are needed for this project? is that documented somewhere?

quiet ice
lost matrix
sweet pike
quiet ice
#

CB depends on Bukkit

sweet pike
#

but when i go to my CB project,

quiet ice
#

Try running BT at least once

drowsy helm
#

If you try to compile does it throw an error?

#

Could just be an ide prob

sweet pike
sweet pike
quiet ice
#

Or also include the bukkit project within the workspace if you are using eclipse - if you are using IJ jump off a bridge.

#

I have no idea what you really need to do - you should just ensure that it publishes the bukkit artifact to the local maven repository

sweet pike
quiet ice
#

Transitive dependencies

hazy parrot
#

But cb has bukkit

sweet pike
#

okay, just had Maven reload the project and everything seems to be fine now

quiet ice
#

And henceforth you need to compile bukkit before compiling craftbukkit (except for eclipse - eclipse is smart enough to not require that step)

sweet pike
#

i guess it just needed a reload

drifting viper
#

Hey i someone fimiliar with CKnownPacks ?

drifting viper
#

?

drifting viper
# drifting viper Hey i someone fimiliar with `CKnownPacks` ?

so the problem is that i get io.netty.handler.codec.DecoderException: Not enough bytes in buffer, expected 109, but got 18 when trying to send an Default 1.21 pack
like this

         self.send_packet(CKnownPacks::new(
            1,
            &[KnownPack {
                namespace: "minecraft".to_string(),
                id: "core".to_string(),
                version: "1.21".to_string(),
            }],
        ));

But not sure why

sweet pike
quiet ice
#

Wrong JDK? What even is the error?

sweet pike
quiet ice
sweet pike
remote swallow
#

kekw

#

haha @young knoll has to write commodore

drifting viper
#

yes

#

so i already fixed the error nvm

#

but now i have another one Caused by: aa: Non [a-z0-9/._-] character in path of location: minecraft:\u0018min

blazing ocean
#

well

#

what do you think is the issue

drifting viper
#

it has to do with Registry Data packet

blazing ocean
#

your nskey has a unicode in it

#

why

drifting viper
#

nskey ?

blazing ocean
#

namespacedkey

#

or resourcelocation identifier whatever

drifting viper
#

mhh

#

i do not use resource location often

#

i already checked everything in my registery

blazing ocean
#

well something has the key minecraft:\0018min which is not ok

#

i have no idea wtf cknownpacks is anyway and that certainly isn't spigot related as it's rust so glhf

drifting viper
#

yeah, i write my own mc Server in rust

#

i didn't know a better place to ask

shadow night
blazing ocean
#

yup

#

valence, graphite etc

shadow night
#

Soo, reinventing the wheel once again?

blazing ocean
#

πŸ’―

drifting viper
#

the most of the projects are abonded or frameworks like valence

eternal night
#

copium this one will be different

blazing ocean
#

graphite actually has a cool brig api