#help-development

1 messages Β· Page 1073 of 1

languid briar
#

To send image

hybrid spoke
blazing ocean
#

send the text here @amber ferry

hybrid spoke
#

i love that gif

languid briar
#

Like that

blazing ocean
#

enter it there and press the save button and send the link

amber ferry
#

done.

languid briar
#

Ok send

#

So I can look at it

#

Lol

hybrid spoke
languid briar
amber ferry
languid briar
#

Open jdk

languid briar
#

Do it

hybrid spoke
#

why dont you just use

#

?paste

undone axleBOT
hybrid spoke
#

as we've told you multiple times before now

languid briar
#

Hm

#

This is spigot and he has an issue with forge

azure vault
#

i'm not able to change the console output

println("setting system out")

System.setOut(new PrintStream(System.out, true) {
    override def print(s: String): Unit = {
        super.println("Detected print")
        super.print(s)
    }
})

println("test")
#
[18:37:27] [Server thread/INFO]: setting system out
[18:37:27] [Server thread/INFO]: test
#

its just not changing the sys out

hybrid spoke
#

?whereami

hybrid spoke
#

helps

languid briar
#

Oh my god

#

Tf is no it works

amber ferry
languid briar
#

Yeah

#

Thats not a forge server btw

#

Be careful

lime wave
#

ok, so I was testing it out today

azure vault
#

spigot's logger is still using the old system out

lime wave
azure vault
#

hm

lime wave
granite night
#

I have this exception: Could not pass event CreateTeamEvent to BetterTeams_TokenEnchantBank_Addon v1.0.2 com.google.gson.JsonIOException: Failed making field 'java.io.File#path' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type.
And this is my code:


        Gson gson = new Gson();
        try {
            File file = new File(BetterTeams_TokenEnchantBank_Addon.getPlugin().getDataFolder().getAbsolutePath()+"/teams.json");
            Writer writer = new FileWriter(file,false);
            allTeams.sort(new Comparator<TeamBankModel>() {
                @Override
                public int compare(TeamBankModel team1, TeamBankModel team2) {
                    return team1.getTeamName().compareTo(team2.getTeamName());
                }
            });
            gson.toJson(allTeams, writer);
            writer.flush();
            writer.close();
            System.out.println("Bank Saved");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }```
Can you help me figure out what is the problem?
tardy delta
tardy delta
#

could make it transient to ignore it

#

and please cache your gson instance

azure vault
#

that wouldnt solve it either as all of the loggers were already initialized to the old sys out

#

i solved the issue by adding an appender to the root logger

viscid sail
#

Whats the purpose of the wildcard * in the plugin.yml file? For example:

Plugin1.yml:

permissions :
permission.node.* : (use of wildcard)
description: "This is a permission node"
default: op
children:
permission.node.child: true
another.permission.node:
description: "This is another permission node"
default: not op

Plugin2.yml:

permissions :
permission.node: (no use of wildcard *)
description: "This is a permission node"
default: op
children:
permission.node.child: true
another.permission.node:
description: "This is another permission node"
default: not op

Doesn't having the permission "permission.node" grant you full access to its child nodes?

echo basalt
#

Nope

granite night
granite night
lost matrix
lost matrix
paper cosmos
#
        <repository>
            <id>spigotmc-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>sonatype</id>
            <url>https://oss.sonatype.org/content/groups/public/</url>
        </repository>
        <repository>
            <id>playpro-repo</id>
            <url>https://maven.playpro.com</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.21-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>net.coreprotect</groupId>
            <artifactId>coreprotect</artifactId>
            <version>22.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>```

I'm getting this error when trying to get CoreProtect API:
```net.coreprotect:coreprotect:jar:22.4 was not found in https://hub.spigotmc.org/nexus/content/repositories/snapshots/ during a previous attempt.```

What am I doing wrong?
#

Why it is looking at the first repository and not the last one that is supposed to contain the file?

lost matrix
#

It looks in all repositories. This message simply means that it wasnt found at all.

hazy parrot
#

Oh u added it

lost matrix
hazy parrot
#

I'm blind

lost matrix
#

And the credentials look the same as well

blazing ocean
tardy delta
#

what awful font is that

lost matrix
#

Just whatever my browser spit out, no idea

paper cosmos
hazy parrot
#

Is it possible to just add repo urls into a single repository tag like u did

#

I mean does it work like that

blazing ocean
#

wdym

hazy parrot
#

Nothing phone formatting is just awful

tardy delta
#

discord on phone is just awful

#

have they fixed the image upload bug already?

keen charm
#

πŸ‘‹

#

If we modify a texture property's value, such as removing it's cape, can we keep using the same signature?

wet breach
keen charm
#

But not sure about the signature, that's why I'm asking

wet breach
#

thought it was a separate texture

#

since its optional to show capes

keen charm
#

It's included as a JSON object in the base64 encoded string, aka textures value

wet breach
#

hmm, then not sure if you can remove it without altering the sig

#

but I mean you could just try it and see what happens lol

#

worse that happens you get some errors XD

mortal hare
#

is there any way agnostically for a implementation of specific plugin version to give its implementation without explicitly mentioning classnames of implementations in core part of the plugin?

#

basically implementation reports itself instead of core trying to find the implementation tiself

wet breach
wet breach
#

have you looked to see how spigot inputs the implementation stuff?

mortal hare
#

no

wet breach
#

probably should, specifically look in the craftbukkit pom

#

it embeds the implementation details into the class file meta and manifest area

sterile breach
#

Hey the fact that the server thinks that the client is in spectator mode but the client thinks that he is in survival gamemode does it risk crashing the client? or is it risk-free?

wet breach
#

this way you can use the JVM to get those implementation details

mortal hare
mortal hare
#

and then loads it?

wet breach
#

of a class

#

it doesn't have to be a specific class, just a class from the jar or you read the jars manifest file

lime wave
#

what is the best way to save an object and all its data? (the object has arraylists of other objects and a hashmap<uuid, arraylist of itemstack>)

wet breach
wet breach
lime wave
mortal hare
#

didnt knew that you can attach metadata to a package

#

well that's helpful

wet breach
mortal hare
#

thanks

#

literally what i needed

lime wave
#

i want to save LeilaoManager
LeilaoManager:
ArrayList<PlayerLeilao> player;
ArrayList<Leilao> leiloes;
Map<UUID, ArrayList<ItemStack>>

PlayerLeilao:
UUID player;
int maxLeiloes;

Leilao:
UUID uuid;
UUID owner;
ItemStack item;
int bid;
int price;
int duration;
ArrayList<Bid> bids;

Bid:
UUID player;
int value;

lime wave
tardy delta
#

or what are we talking about

lime wave
#

if base64 encode, how could I do that?

wet breach
mortal hare
# tardy delta ServiceLoader?

Kinda like ServiceLoader i guess, is it a good approach though, im trying to decouple loader from version specific classes, its going to be shaded alongside loader itself, and there would be bunch of jar files for each version specific version with loader built in

mortal hare
#

basically i want to load a class, that loader itself doesnt even know the path to

#

ServiceLoader seems to do that

wet breach
#

ok, but you wanted a way to check version without knowing a specific class?

mortal hare
#

no

#

i wanted to get a class path for a specific implementation to load it

#

but without explicitly constructing it in source code by declaring imports

#

reflection shit i guess

#

or ServiceLoader

wet breach
mortal hare
#

ServiceLoader does reflection probs itself

#

"specific plugin version" phrasing really caught you here i guess πŸ˜„

#

i'll try using ServiceLoader i guess

wet breach
#

well there is in fact a way to check version of something without knowing much about it XD

#

hence I provided what I did lol

#

now you must wait till they are not busy πŸ˜‰

#

fortunately they will respond to you when they are not

tardy delta
quaint mantle
#

can i somehow access the contents of webui from Common.java ?

#

this is the decompiled jar

white root
#

Anyone have an idea on how I can teleport a player the same way that an end portal does?

I dont really want to create an end portal block on the player then destroy it
But I also dont see any way to emulate what the end portal does

even teleporting players to Bukkit.getWorld("world_the_end")?.spawnLocation doesnt work
seemingly this just puts them on the end island somewhere random

lime wave
#

which means that ItemStack does not implement Serializable (ig)

#

how could I fix that?

shadow night
#

Serialize it using the bukkit way

eternal oxide
#

Yeah it's ConfigurationSerializable, not Java Serialize

lime wave
#

my head hurts

alpine cairn
#

How dod I get a jar with gradle on Intellij?

remote swallow
chrome beacon
alpine cairn
#

I have only done it with Maven

blazing ocean
#

yes

#

the gradle task named build is the one you want

#

you'll get your jar in build/libs/

alpine cairn
#

Ah thx

#

Wasn't sure where the output was

gentle sapphire
#

One message removed from a suspended account.

blazing ocean
#

"the bug"?

alpine cairn
#

lol

gentle sapphire
alpine cairn
#

Other languages use their version of "the" much more liberally than English

gentle sapphire
#

One message removed from a suspended account.

eternal oxide
#

?ask

undone axleBOT
#

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

tardy delta
lime wave
#

how could I get the score of a certain player on certain scoreboard?

lime wave
wicked beacon
#

guys do yall think it would be possible to make this effect of different gravity directions in a plugin, I've only seen it in mods, and if so how?

blazing ocean
torn shuttle
#

I am currently competing in the procrastination olympics for making this command structure

#

I've had the file open for 12 hours and have written maybe 3 lines

shadow night
smoky anchor
#

Hmm...
Shader to change the vieport orientation/location (takes care of blocks and entities)
Making a box where you would copy part of the world and rotate it, would take care of some block hitboxes, most would still have to be faked with shulkers tho (you can resize them since 1.21)
Making that box invisible with shaders too.. somehow
Using interaction entities for entity hitboxes
All would have to be client-sided tho, so that means taking care of block hitboxes by your plugin.
I think it would be doable, but incredibly difficult.

torn shuttle
#

does anyone have a really, really nice command class structure for me to look at for inspiration, I'm trying to figure out something that will nicely deal with both fixed and variable arguments and their autosuggestions

#

similar to how cloudcommandframework does it in a sense

smoky anchor
#

Brigadier ? :D

shadow night
#

Lol

torn shuttle
#

they use that I am pretty sure

shadow night
#

Brigadier is built into minecraft so use that

torn shuttle
#

oh I don't really know what it is or what it does

smoky anchor
#

It's the vanilla command library

#

It has example on github I believe

torn shuttle
#

got it open yeah

#

hmm

#

that looks kinda nice

#

any downsides to it?

smoky anchor
#

Uhhh... I think NMS/reflections if you want to create commands on spigot server ?

shadow night
#

It's made by mojank

torn shuttle
#

one thing I wanted to make sure of is that this is reload-safe which cloudcommandframework was not

smoky anchor
#

And it does not look the pretties when writing it I think

#

You can make it reload safe, I've done that

torn shuttle
#

yeah I forget why ccf wasn't

smoky anchor
torn shuttle
#

might have to do with how they weren't using the plugin.yml to register commands

#

hmmmm

#

commands are always kind of annoying to set up

eternal oxide
#

I kinda like teh Bukkit command API, but I dislike having to add them to plugin.yml

lime wave
#

do you guys know how I could get the value a certain player has on certain scoreboard?

torn shuttle
lime wave
torn shuttle
#

it's just finding a good way to do tab completions for fixed and dynamic arguments plus good error handling and messaging of bad arguments to users is a pain

eternal oxide
#

yep

torn shuttle
#

especially if you want something that will scale without becoming annoying

#

which uh I definitely need, this is probably going to be over 100 commands

worthy yarrow
finite garden
#

is there an event for when tnt gets dispensed by a dispenser?

#

where you can like actually get both the tnt entity and item

#

BlockDispense event doesn't allow me to get the entity

finite garden
#

no, I'll try

#

actually I don't think this will fire for tnt

#

since getEntity() only returns a Projectile, which TNTPrimed doesn't extend

#

also I don't think I can get the item

eternal night
#

BlockDispenseEvent it is

finite garden
#

both of these don't do what I want

#

BlockDispense event doesn't give me the entity

sand spire
wet breach
#

TNTPrimeEvent gives you the entity

finite garden
#

and TNTPrime event doesn't give me the item (and also I'm pretty sure it only fires for tnt ignited with a flint and steel as stated in the javadocs)

finite garden
wet breach
#

what item?

finite garden
#

the tnt item

wet breach
#

it doesn't get dispensed

#

it disappears

eternal night
#

I think you'd be best of to completely take over the tnt spawn logic

finite garden
#

I know

finite garden
wet breach
#

not sure why you need the item and entity

finite garden
#

I have a custom tnt item that does smth special when it explodes

#

and I want it to work through dispensers as well

river oracle
#

Revolutionary idea πŸ’ͺusing multiple events to achieve your goal

wet breach
#

ok, well when primedTNT is spawned, look for a dispenser within like 1-2 blocks

#

still not sure why you need the item though

eternal night
#

To identify if the tnt was the custom item..

wet breach
eternal night
#

Well, it is a bit ugly because you need two events

#

or, as I said, maybe just spawn the tnt yourself

finite garden
wet breach
#

sounds like a you problem at this point making excuses why you can't do something

finite garden
wet breach
#

all we can do is provide you solutions

finite garden
#

fact of the matter is that none of those things work

eternal night
#

but yea, the item you get there is a mirror

finite garden
#

and I've explained why for each one

eternal night
#

so you setting its count to count - 1 would work, even if you cancel the event

finite garden
#

spawning the tnt myself should work tho

eternal night
#

Wait I lied, it is cloned

wet breach
#

well just know kids have already accomplished what you are wanting themselves without the api πŸ˜‰

finite garden
#

ok

river oracle
#

Api is lame just go raw on everything with ignite and mixins

#

Lol

eternal oxide
#

always go raw

finite garden
#

about to ask on paper discord if they have an api for it

eternal night
#

we don't

#

can save ya that trip

finite garden
#

ok thanks I guess

eternal night
#

but yea, spawn own TNT.
Then you also need to manually reduce the stack in the dispenser

#

it is a bit ugly

wet breach
#

they will need to cancel the entity spawn event

eternal night
#

Or just the block dispense event

wet breach
#

or I guess cancel the dispense event

#

maybe do both just for insurance purposes

eternal night
#

well, that gets a bit funky with other plugins e.g. on monitor

wet breach
#

XD

eternal night
#

but meh

#

gotta do what you gotta do

sand spire
#

oh wait that's paper but you said you're using that so

clever zephyr
#

Hey, i was wondering if caching the connection for database is the proper way of perserving performance in spigot plugins development

eternal oxide
#

hikari

clever zephyr
eternal oxide
#

you will never get a performant db connection

clever zephyr
eternal oxide
#

too many variables cause them to be unstable

clever zephyr
#

big servers use mongo, and they have high performance

clever zephyr
#

or just fetch the connection each time I apply an db-operation

eternal oxide
#

to be performant you need a connection pool

clever zephyr
#

MongoDB has a connection pool i think

eternal oxide
#

you then fetch a connection from the pool as needed, returning it when done

clever zephyr
#

ummm

#

ok thanks

sullen marlin
#

MongoDB is web scale

young knoll
#

The java driver for mongo handles pooling for you afaik

wet breach
#

this eliminates connection pools and tcp over head

#

and java 17 has native support for unix sockets πŸ™‚

clever zephyr
#

I have a question, right now should i create "MongoClient" object each time i want to do some operation to my database or just cache it
because im still confused about the right thing to do

#

recreating mongo client each time means i will have to cache the connection string

chrome beacon
#

Create the client once

quaint mantle
#

Connection pool should do it for you.

#

If you cache, dont forget check if connection is lost.

clever zephyr
#

ok so what about the MongoDatabase object ?
should i do the same or just get it everytime

#

Because i find that running "client.getDatabase()" everytime is annoying

mortal hare
#

guys have you ever seen code this bad to maintain that's open source that you would love to contribute but decided not to

#

i've found a mod which concept is so cool

#

but the fabric mod insides are sooo bad

#

statics everwhere

mortal hare
#

code for parsing config is like:

static void readConfig()
static void writeConfig()
static void saveConfig()

#

i mean its so bad

#

that it really screams for a rewrite

#

not even talking about public field

#

protected fields everywhere

wet breach
#

well, write and save being static makes sense, but not the read really

quiet ice
#

as long as it works it works

wet breach
mortal hare
wet breach
#

private and protected should be utilized the most and only use public when necessary

mortal hare
#

i avoid protected since it can be manipulated from the same package

quiet ice
#

Yeah protected isn't great for field 90% of the time

pseudo hazel
#

protected isnt only for inherited?

mortal hare
#

my rule is that if you need protected instead of private 99% of time you're doing smth wrong

mortal hare
wet breach
#

protected is if you want it only accessible within the same package

mortal hare
pseudo hazel
#

oh

#

I have been misusing protected all my java life then

#

nice

mortal hare
#

mainly why i hate protected is that you can access them from the same package

#

if it was only for inheriting it would be great

wet breach
#

it is the entire purpose of them

pseudo hazel
#

is theer no keyword for only inherited?

mortal hare
#

no

pseudo hazel
#

sadge

quiet ice
#

Even with only inheritance it ain't great

pseudo hazel
#

it saved time writing pointless functions

#

and helps defining what should be done by subclasses and what can be done by the outside

quiet ice
# mortal hare

Also same class is technically incorrect due to nest hosts and members

#

Just slap an @Internal to it :p

mortal hare
#

i prefer getters and setters with private fields, with composition

#

usually if you need protected you need to split your code into multiple fragments

#

for quick slaps its a time saver sure

#

but its like c++ you can shoot your foot with it in a long term imo

unreal tapir
#

I am trying to make it so ravagers can't destroy blocks in specific area. Any idea which event is that or how to do it? (ping if you respond)

#
@EventHandler
    public void onRavagerBreakBlock(EntityChangeBlockEvent event) {
        if (event.getEntityType() == EntityType.RAVAGER) {
            event.setCancelled(true);
        }
    }
#

I already tried this

#

but it doesnt work

rose frigate
#
public class rtp implements CommandExecutor, Listener {

    private final HashMap<UUID, Long> combatLog = new HashMap<>();
    private static final long COMBAT_COOLDOWN = 10 * 1000; // 10 seconds

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            UUID playerId = player.getUniqueId();

            if (Banton.getInstance().blockedbycombatlog(playerId)) {
                player.sendMessage(ChatColor.RED + "You cannot use this command while in combat!");

                return true;
            }

            Bukkit.getLogger().info(ChatColor.GREEN + "Hugo rtped");

            World world = player.getWorld();
            Random random = new Random();

            int x = random.nextInt(5000) - 5000;
            int z = random.nextInt(5000) - 5000;
            int y = world.getHighestBlockYAt(x, z);

            Location randomLocation = new Location(world, x + .5, y + 1, z + .5);

            player.teleport(randomLocation);

            player.sendMessage(ChatColor.GREEN + "Successfully teleported!");
        }
        return true;
    }
}```
#

my blocked by combatlog does not work

unreal tapir
chrome beacon
#

WorldEdit does not have that feature

#

They're most likely talking about WorldGuard

unreal tapir
#

Well kinda makes sense, I was like "What"

#

oh right

#

I need something I have a full control over

rose frigate
unreal tapir
#

And ideally programmed by me

unreal tapir
#

...

#

yes

#

this happens ALWAYS!

rose frigate
rose frigate
unreal tapir
unreal tapir
#

and always forget that I am always forgetting it

rose frigate
#
public class rtp implements CommandExecutor, Listener {

    private final HashMap<UUID, Long> combatLog = new HashMap<>();
    private static final long COMBAT_COOLDOWN = 10 * 1000; // 10 seconds

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            UUID playerId = player.getUniqueId();

            if (Banton.getInstance().blockedbycombatlog(playerId)) {
                player.sendMessage(ChatColor.RED + "You cannot use this command while in combat!");

                return true;
            }

            Bukkit.getLogger().info(ChatColor.GREEN + "Hugo rtped");

            World world = player.getWorld();
            Random random = new Random();

            int x = random.nextInt(5000) - 5000;
            int z = random.nextInt(5000) - 5000;
            int y = world.getHighestBlockYAt(x, z);

            Location randomLocation = new Location(world, x + .5, y + 1, z + .5);

            player.teleport(randomLocation);

            player.sendMessage(ChatColor.GREEN + "Successfully teleported!");
        }
        return true;
    }
}```my blocked by combatlog does not work
chrome beacon
#

Send the blockedbycombatlog method

#

?paste

undone axleBOT
chrome beacon
#

Also follow naming conventions

#

?conventions

rose frigate
# chrome beacon Send the blockedbycombatlog method
public void putintocombatlog(UUID player) {
        Bukkit.getLogger().info("UUID " + player + " in combat with another player.");
        Long timestamp = System.currentTimeMillis();
        combatLog.put(player, timestamp);
        Bukkit.getLogger().info("Number of players in combat: " + combatLog.size());
    }

    public boolean blockedbycombatlog(UUID player) {
        boolean blocked = false;

        if (combatLog.containsKey(player) && (System.currentTimeMillis() - combatLog.get(player)) < COMBAT_COOLDOWN) {
            blocked = true;
        }

        return blocked;
    }```this is in the main onenabled
vast ledge
#

sir

#

?paste

undone axleBOT
rose frigate
#
public class EntitydamagedbyEntity implements Listener {

    @EventHandler
    public void manageCombatLog(EntityDamageByEntityEvent event) {
        Bukkit.getLogger().info("DEBUG: EntityDamageByEntityEvent fired.");

        Entity damager = event.getDamager();
        Entity damagee = event.getEntity();

        boolean damager_is_player = damager instanceof Player;
        boolean damagee_is_player = damagee instanceof Player;

        if (damager_is_player && damagee_is_player) {
            UUID damagerId = damager.getUniqueId();
            UUID damageeId = damagee.getUniqueId();

            Banton.getInstance().putintocombatlog(damagerId);
            Banton.getInstance().putintocombatlog(damageeId);
        }
        else {
            Bukkit.getLogger().info("Not Player got damage");
        }
    }
}```
hard radish
chrome beacon
#

Define not working

#

?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.

chrome beacon
#

Slow bot

hard radish
#

its not doing what it suppose to do

#

its doing nothing

chrome beacon
#

And that is

rose frigate
chrome beacon
#

That wasn't for you

#

Also you can just use CombatLogX uwu

rose frigate
#

oh okay

hard radish
#

summary of this codehttps://paste.md-5.net/imasatetiw.java
is basically whenver player opens advancement tab it will close the advancement tab and just sends a command instead

hard radish
#

using packetevents API

#

and yes i have asked the packetevents discord and wasn't given a response

chrome beacon
hard radish
#

event.setCancelled(true)

chrome beacon
#

Also does the listener trigger

hard radish
#

yes listener does trigger

chrome beacon
hard radish
#

would i have to send a closing advancement tab packet?

chrome beacon
#

You're just stopping the server from knowing about the advancement tab

chrome beacon
hard radish
#

alright let me try

grand scroll
#

does anyone know why classes like GameMode or Material dont seem to exist on 1.20.6 spigot

chrome beacon
#

Update Intellij

grand scroll
#

ight

hard radish
sullen belfry
#

question for a public and free plugin is it best to save player data in a json file or a mysql data base?

young knoll
#

Ideally you’d offer both

#

But having local storage (json, SQLite, etc) is recommended

sullen belfry
#

alright thanks

grand scroll
dull whale
#

Guys I need help implementing a polar function into minecraft

drowsy helm
dull whale
#
        for (int theta = 0; theta < 180 * 2; theta++) {
            double rads = Math.toRadians(theta);
            double r = Math.cos((5) * rads) + 5;
            double x = r * Math.cos()
            d(x + r, y, z + r);
        }
``` just not sure
#

how do I actually derive x/z offset from it

#

my precal teacher wouldn't be proud

drowsy helm
#

So you just want to convert it to cartesian plane?

grand scroll
#

soo is there any work around since like material and gamemode classes just dont exist on spigot 1.20.6

quiet hearth
#

oops alt account

#

to spawn in in world you know

grand scroll
drowsy helm
#

sec havent done polar in a while

drowsy helm
quiet hearth
#

...

drowsy helm
#

x = (cos(5t) + 5) * cos(t)

#

then y is just that but sin

#

socatoah >:D

grand scroll
quaint mantle
#

how many display entities start to lag a client?

drowsy helm
blazing ocean
eternal oxide
#

depends on teh client

quaint mantle
drowsy helm
blazing ocean
#

text displays? a lot. block displays? less

eternal oxide
#

server, connection

quaint mantle
#

Like 500?

eternal oxide
#

impossible to set a number

blazing ocean
#

🀷 never needed that much

grand scroll
blazing ocean
#

really dependso n the client

quaint mantle
#

How do I start to test that?

#

My pc is beefy so I cant really test

blazing ocean
#

why do you even need to know that

quaint mantle
blazing ocean
#

then don't spam display entities

#

it really depends on the client and their computer

grand scroll
#

the emphasis on really helps your point honestly

young knoll
#

Well, what do you want to do with them

grand scroll
hard socket
#

?nms

hard socket
#

any app that helps explore the nms code?

blazing ocean
hard socket
#

like view it

blazing ocean
#

?mappings ig?

undone axleBOT
blazing ocean
#

IJ

hard socket
#

noo

#

I was using jd-gui

blazing ocean
#

don't

hard socket
#

but it doesnt support the newer java versions

blazing ocean
#

IJ has all that integrated lmfao

hard socket
#

IJ?

#

oh the ide

#

but its a pain to find the class

blazing ocean
hard socket
#

yeah I know that

#

but what about method in a class

#

like now I am trying to understand how the PlayerFishEvent works

blazing ocean
#

nms is not documented or anything

#

it's internals, glhf

hard socket
#

well I learned nms and more about the SpigotAPI that way

wet breach
#

place them in some project and now you have them loaded

restive mango
#

if i have a class (A) which extends another class (B), but i get it from a list of (B), and it has method (C) which overrides method (D) in B, and I don't cast it as class (A) when i get it from the list

#

will it use the original method or the override method

eternal oxide
#

depends hwo your List is defined

restive mango
#

it's a list of class (B)

eternal oxide
#

if it suffers type erasure and you don't cast, then you call the super method

restive mango
#

List<B> fart = new ArrayList<>();

#

how to avoid type erasure?

#

@eternal oxide

echo basalt
#

creative variable naming there

worldly ingot
#

Generic types do not matter at runtime. It's unlike C++ where the type actually matters when it comes to inheritence

#
public class Animal {
    public void speak() {
        System.out.println("*animal noise*");
    }
}

public class Dog extends Animal {
    @Override
    public void speak() {
        System.out.println("Woof!");
    }
}

// Somewhere
List<Animal> animals = Arrays.asList(new Animal(), new Dog());
for (Animal animal : animals) {
    animal.speak();
}
#

Assuming this is the paradigm you're referring to, you will get an *animal noise* and a Woof!

gentle sapphire
#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

#

One message removed from a suspended account.

drowsy helm
#

and also format it

#

its hard to read like that

gentle sapphire
drowsy helm
#

send it in this ?paste

#

i might be able to help you

#

?paste

undone axleBOT
gentle sapphire
#

One message removed from a suspended account.

drowsy helm
#

your indentation is messed up

gentle sapphire
drowsy helm
#

362, 363, 364, 367, 375

#

paste your config in this and it will tell you whats wrong

gentle sapphire
drowsy helm
#

Anyone know what tag a material would be if it can be interacted with (i.e crafting tables, furnaces, buttons etc etc)

#

just anything that if you would right click it, it would not place a block (unless hifting)

drowsy helm
#

thankyou

tame wolf
#

Is there a way to check whether an item has a furnace recipe?

#

Or can be smelted?

#

I looked on the javadocs and almost everything is deprecated

quaint mantle
#

Hey! Is there a semi-easy way to save an inventory between server restarts? I have a variable with an inventory in it for a backpack plugin, but I need it to keep its contents exactly the same between server restarts, etc. Is there a way to do this? My code so far:

GiveBackpackCommand.java: https://paste.md-5.net/juleniwuci.java

mellow edge
#

do most plugins only support mysql database or do they offer others as well

mellow edge
#

wdym help-server I am a developer here

#

and want to know if it's ok that I implement just mysql support

agile anvil
#

Your question is related to existing plugins

#

Mhhhhh, then it really depends on yourself

#

If you are not sure, start by making a database interface so you can implement multiple kind of database in the future

#

(and ofc make the MySQL implementation)

mellow edge
#

ok, that sounds good

agile anvil
# quaint mantle Hey! Is there a semi-easy way to save an inventory between server restarts? I ha...

There are plenty of ways. If you search on the search bar of this channel you might find many methods. I'll cite one from lynxplay:
"Convert either the inventory or stash to ItemStack[].
Create a BukkitObjectOutputStream.
Write the length of the array
Write each item in the ItemStack[]
Grab the bytes the from the OutputStream the BukkitOutputStream was based on
Profit
I don't know of a better method on spigot
"

quaint mantle
agile anvil
#

I'm not sure

#

You should try to make it by yourself and ask for help for this in here!

quaint mantle
#

can I just save an itemstack to config?

eternal night
#

Yea

hybrid turret
#

when changing a player's name using their GameProfile. Will this change the return value of Player#getName?

mint nova
#

Can i somehow change drops on BlockBreakeEvent like set custom drop for exact block or i need to give the Item to player inventory when block was broken?

blazing ocean
mint nova
lost matrix
mint nova
sterile breach
#

Hey, question
because server are monothread

if I call
p.setGameMode(GameMode.SURVIVAL);
p.setGameMode(GameMode.SPECTATOR);

between these two call I'm sure nothing else will happen on the server? so no entity will move, no block will be broken etc? (requests for this broken block will be called afterwards)?

ivory sleet
#

everything that runs on the server thread will surely either run before both method calls, or after both method calls

#

single threaded stuff is always sequential and runs linearly to code flow declaration

sterile breach
#

good

ivory sleet
#

however ofc there are netty threads, and other threads that may do stuff between the two method calls

sterile breach
ivory sleet
#

yea a lot of the times packets are intercepted initially on some other thread and then the server queues the actual logic onto the server thread

ivory depot
#
TextComponent confirmation = new TextComponent(color("&eClick me!" + team.getTag()));
            confirmation.setClickEvent(new ClickEvent.);
``` It is possible to return true from this click event without creating a new command?
#

Or is it another way to make clickable confirmation on chat?

ivory sleet
#

iirc u need to run an additional command w click event

ivory depot
#

oh, thx

hybrid turret
#

oh wait ppl are saying both things

chrome beacon
#

Then try it and see

hybrid turret
#

but ig this is meant to show that when changing the name in the GameProfile Player#getName does indeed return the fake name huh

hybrid turret
torn shuttle
#

mamma mia

#

I am coding up a mean command code pasta

#

just like grandma used to make

#

there may not be a best way to make commands but I am definitely on the search for the worst

acoustic pendant
#

Hey, I'm trying to use PDC to store integers but for some reason i'm getting this error

#

why does this happen ?

#

It says that it cannot store Integer but I thought it could?

quaint mantle
#

"NBTTagString"

#

It wont store integer because type is string

acoustic pendant
#

In this case the item doesn't even have the key

quaint mantle
#

Where you did set the value?

acoustic pendant
runic pine
#

intellij does not recognize lombok
someone know fix?

mortal hare
#

where was Enchantment#isTreasure() moved in Minecraft 1.21? I can seem to find how to access such info about an enchantment anymore

#

im interested in NMS only

chrome beacon
runic pine
#

recognizes it in the code but it doesn't recognize it when compiling

tall dragon
#

does any1 know if it would be easily possible to auto update my plugins?

for example i run a couple " game servers" they restart after each game is concluded. so i would love to just be able to check if a plugin update was pushed and automatically download it. i do have a maven repository to which i push these updates. maybe its possible with that. any1 any ideas?

mortal hare
blazing ocean
#

i just push the new plugins there

mortal hare
#

EnchantmentTags seems to hold i need

tall dragon
#

yea thats exactly what im looking for rad

mortal hare
#

but i cant find Enchantment registry

eternal night
#

you need to grab the registry from a reg access via its key

tall dragon
#

some kind of script?

blazing ocean
eternal night
#

given that 1.21 made ench reg non-built in

tall dragon
#

ah i see

blazing ocean
#

just made a fork of itzg/docker-minecraft-server

tall dragon
#

well mine run on pterodactyl ;/

blazing ocean
#

need to make a new one, pleas edon't fork itzg as it uses up all your gh org resources

chrome beacon
blazing ocean
tall dragon
#

hmm yea

#

id have to look into how that works tho

mortal hare
#

yea i tried itzg/docker-minecraft-server but got dissapointed that i cant just compile the server files

#

without running the server

tall dragon
#

thanks for the ideas will try that

blazing ocean
mortal hare
#

pterodactyl's architecture naming scheme is one among the weirder ones

eternal night
mortal hare
blazing ocean
#

i mean you can just do this

eternal night
#

what version?

mortal hare
#

1.21

eternal night
#

it 100% exists

blazing ocean
eternal night
#

wrong mappings?

mortal hare
#

I use yarn

#

so it must be smth

eternal night
#

yea

#

if you use useless mappings

blazing ocean
#

?mappings

undone axleBOT
eternal night
#

you get useless answers

tall dragon
eternal night
#

Tho yarn apparently also calls it ENCHANTMENT

blazing ocean
eternal night
#

They call the class RegistryKeys tho

#

soo

blazing ocean
eternal night
#

(could just switch to mojang mappings and not suffer)

mortal hare
#

That's so weird wtf

#

literally no mention of ENCHANTMENT registry in Registries

eternal night
#

Yea that is their name for BuiltInRegistries

#

you did check what we typed yea?

#

the class name is different on yarn

mortal hare
#

why is it even separated in a first palce

eternal night
#

hm?

mortal hare
#

why there's bunch of objects of type Registry inside Registries but when i need to access Enchantment registry i need to use the key to access it

eternal night
#

those are only still there because they are not synced

#

The more registries are moved to be data driven, the less constants in that fun yarn class

mortal hare
#

so basically its a legacy thing that those static fields even exist

#

?

worldly ingot
#

Not necessarily legacy. Just "this registry doesn't need synchronization with the client" :p

mortal hare
#

but they're moving to almost everything to be synced approach

eternal night
#

Yea

#

But yea, you cannot have a static reference to a registry that may just reloaded/re-created

runic pine
runic pine
#

let me see

#

compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34' i have this only

#

spigot have integrated lombok right?

quiet ice
inner mulch
#

since minecraft is changing their item system in 1.21, is there a breaking speed stat for pickaxes or something?

runic pine
#

My gradle is acting weird today. It's buggy and taking 2 minutes to compile.

eternal night
runic pine
inner mulch
eternal night
#

or the respective tool rules

quiet ice
eternal night
#

if you want to edit stuff for specific blocks

runic pine
#

are integrated

#

on spigot

#

shadow yk

eternal night
#

it is not a runtime library

#

lombok is purely a compiler hack

quiet ice
#

Yeah

runic pine
#

oh

#

does it affect performance by any chance?

eternal night
#

no

quiet ice
#

It does severely impact stability more so than performance

#

But only at compile-time

runic pine
#

im with this and plugin

#

and compiler no works

eternal oxide
#

it can make teh IDE run like shit, but not a final jar

eternal night
#

just use the gradle plugin

runic pine
eternal night
quiet ice
#

Newer versions of java will refuse to run the lombok annotation processor

runic pine
#

this?

#

I always used Java 22 and Lombok this way but today it decided to bug yk

quiet ice
#

Well what lynxplay is suggesting is a gradle plugin, not a standard dependency layout

eternal night
#

Gonna save you some hastle with configuring things correctly

runic pine
#

?

eternal night
#

Yea

#

you throw that into your plugins section

#

and off ya go

runic pine
#

yes

#

plugins {
id("java")
id("net.minecrell.plugin-yml.bukkit") version "0.5.1"
id("io.freefair.lombok") version "8.6"
}

java {
toolchain {
languageVersion = JavaLanguageVersion.of(22)
}
}

eternal night
#

πŸ‘

runic pine
#

Does lombok take long to compile? It's taking a long time

eternal night
#

no

runic pine
#

I usually compile in 10 seconds. Today it's taking 1 minute

quiet ice
#

what exactly is taking long here

runic pine
#

and it still doesn't work

quiet ice
#

Dependency resolution or something else?

runic pine
runic pine
quiet ice
#

Giving gradle log outputs, the build.gradle and more may be of help

quiet ice
runic pine
#

remove the getters from 100 classes lombok ?

quiet ice
#

It's eyecandy anyways and if you think it doesn't work correctly there is no point in trying to fix it

quiet ice
runic pine
#

but I find it very practical

quiet ice
eternal night
#

I mean, just post the ./gradlew build log

runic pine
#

ok

eternal night
#

screenshots are rather useless

#

?paste

undone axleBOT
eternal night
#

additionally, full build.gradle.kts would be nice

quiet ice
#

Oh, kotlin gradle -.-

runic pine
#

gradle build doesn't say anything, it just says as if lombok doesn't exist. It gives an error in getters saying that this getter doesn't exist, etc.

quiet ice
#

I really need to find that "only help, no information" comic one of these days

eternal night
drowsy helm
runic pine
#

ok

quiet ice
drowsy helm
#

Still needs to be explicitly defined in gradle

runic pine
#

a

#

this is useless

#

but ok

drowsy helm
#

annotationProcessor 'org.projectlombok:lombok:1.18.34'

runic pine
#

I had this before

#

but i remove and i add the plugin

drowsy helm
#

The ide plugin or gradle plugin?

quiet ice
#

gradle plugin

runic pine
#

both

mortal hare
#
Objects.requireNonNull(Registries.REGISTRIES.get(RegistryKeys.ENCHANTMENT.getValue())).containsId(EnchantmentTags.TREASURE.registry().getValue())
eternal night
#

What is the point of that

mortal hare
#

im working on clientside fabric mod actually, so i dont have an access to MinecraftServer instance

runic pine
tardy delta
#

Registries.registries?

mortal hare
#

yes

#

it does exist

#

its a root registry for all dynamically allocated registries

tardy delta
#

a registry registry, good lord

mortal hare
#

that's mojang for you

quiet ice
# runic pine any suggestions?

delombok would be mine, albeit rather intrusive.
If it isn't your project then I'd just nudge the person who wrote the buildscript to fix the buildscript

runic pine
chrome beacon
#

it depends

mortal hare
chrome beacon
#

some do

#

some do not

mortal hare
#

its double edged sword

#

if you use it for simple stuff it works so good

#

but then you need to change smth in a getter or setter

#

and now you're fighting against a problem that wasn't before

quiet ice
#

I mean, this is Java 22 - Records have LONG been invented

runic pine
quiet ice
#

Immutability ✨

eternal night
#

The client registry you get via minecraft.level.registryAccess()

eternal oxide
#

record has no setter

runic pine
runic pine
#

lombok not have getters only

runic pine
quiet ice
#

Records gens ctors too. Otherwise, IDEs are capable of generating all these things

eternal night
runic pine
mortal hare
tardy delta
quiet ice
#

For getters and setters eclipse has this window. For constructors there probably is a similar feature somewhere else too

#

And IntelliJ will definetely be more capable on that front

runic pine
#

eclipse lul

eternal night
quiet ice
#

Yeah, eclipse can generator a constructor, too

alpine urchin
runic pine
alpine urchin
#

dont reload

#

but i don’t experience issues

runic pine
#

Oh I have, every time I restart the plugin with plugman I get kicked from the server and can't log in anymore until I reload the server

eternal oxide
#

oh dear plugman

runic pine
#

😭

alpine urchin
#

i don’t see anything regarding packetevents

#

maybe saint augustine can help

mortal hare
#

??

#

wait

#

i've used wrong method

#

that returns registry key itself

#

not the enchantment tag id

#

i guess .get(RegistryKeys.ENCHANTMENT).get(EnchantmentTags.TREASURE.id()); is correct here

eternal night
#

what is your end goal anyway?

#

because that looks wrong

mortal hare
#

im porting 1.20.6 code to 1.21

#

and it made whole lot of code regarding enchantments broken

eternal night
#

Yea but what is that piece of code supposed to be doing

mortal hare
#

it should check if given Enchantment is of TREASURE Type

#

before 1.21 there was Enchantment#isTreasure() method

eternal night
#

oh....

mortal hare
#

now its gone since now tags is being used apparently

eternal night
#

could have said that sooner KEKW

mortal hare
#
        MinecraftClient.getInstance().world.getRegistryManager().get(RegistryKeys.ENCHANTMENT).getEntryList(EnchantmentTags.TREASURE)

#

ok this seems right

#

since they introduced EntryLists for tags

#

in 1.21

eternal night
#

yea good enough.

mortal hare
#

and it expects a TagKey

#

so it must be it

eternal night
#

if you can, instead of passing around Enchantment

#

pass Holder<Enchantment>

#

makes your life a lot easier

mortal hare
#

its a shitty code ngl

eternal night
#
Minecraft.getInstance().getConnection().registryAccess()
        .registryOrThrow(Registries.ENCHANTMENT)
        .wrapAsHolder(enchantment)
        .is(EnchantmentTags.TREASURE);
#

exists too

runic pine
#

lombok gives an error when compiling. Does anyone know what it could be? I added the annotation processor etc in gradle

mortal hare
eternal night
#

Maybe xD

mortal hare
#

well Holder is RegistryEntry in Yarn

eternal night
#

yarn mappings suffer from the good old wrong naming

#

depressing

mortal hare
#

its just hard to map from one to another

eternal night
#

RegistryEntry is wrong tho

#

Holder can hold onto values defined in a registry and values that are defined inline and not registered in a registry

mortal hare
#

well maybe you're right

drowsy helm
#

Since you dont have the test dependencies

runic pine
#

i have all depends

#

but the compiler give me getter errors etc because not see the lombok

mortal hare
#

I wonder if there's some kind of diff checker just like it was with cs go files

onyx fjord
#

is there any way to detect when mace was used with fall damage to boost dmg?

mortal hare
#

but for minecraft versions

hexed quarry
#

How to hide command from console?

eternal night
torn shuttle
#

how do I hide tax fraud from the gvt? asking for a friend

eternal oxide
#

Marry a Clinton

torn shuttle
#

also, unrelated, how do I hide the body of a taxman from the police? asking for a friend

#

also, unrelated, how do you get out of a police chase with a helicopter? asking for a friend, this one is kinda urgent

tardy delta
#

get a bazooka

torn shuttle
#

hey again unrelated how do I become a sovereign citizen

#

and is there anyone who wants to join my friend's militia

wet breach
quaint mantle
#

with me always comes at simplevoice voice voice chat not connected what do I have to do

hexed quarry
#

lol I want to hide user password when user type it by login {password} so admin can\t see it....

torn shuttle
wet breach
wet breach
# torn shuttle all of them

well for some fraud easiest way is setting up false things that make it appear legit for tax. Other times its just staying below certain limits

runic pine
#

FUCK U LLOMBOK

#

7 HOURS IN THIS SHIT TRYING TO FIX THE SHIT IN LOMBOK

torn shuttle
#

have you set it up in your maven

#

or gradle

runic pine
#

gradle in this case

#

the project always worked. today it decided to bug this shit

#

I didn't even touch the damn build.gradle.kts

eternal oxide
#

have you considered not using Lombok?

runic pine
#

delombok is also bugged

eternal oxide
#

I used it a few times but I found it too annoying

runic pine
#

and I'm not going to take the lombok by hand 300 classes

torn shuttle
#

lombok is great

#

if you think it's bad that's probably because you're a bad person

runic pine
torn shuttle
#

sorry I take that bad that was mean

torn shuttle
#

if you think it's bad you're DEFINITELY a bad person

runic pine
#

You are the one who is drawing conclusions from your only personal experience LOL

eternal oxide
#

I just found it laggy and annoying

torn shuttle
eternal oxide
#

I do need a shower. Wife says I shoudl shower more than once every six months. What does she know anyway

runic pine
#

Since Lombok is very good, solve my damn problem.

torn shuttle
#

see

#

that's what I'm saying

#

bad people

runic pine
#

YES AHAHAHA

torn shuttle
#

I'll build a wall with a method that uses lombok to get people in, keeping the bad people out

#

also I'm pretty sure my project would be 120k lines without lombok

eternal oxide
#

bigger is always better

torn shuttle
#

that's why you're a bigger bad person

runic pine
#

If no problem happened to you, it doesn't mean that it won't happen to others. With all due respect, but are you playing dumb?

hexed quarry
#

fuck this shit...

#

this.getServer().getLogger().setFilter(new CommandFilter()); and // Inner class for filtering log records private class CommandFilter implements Filter { @Override public boolean isLoggable(LogRecord record) { String message = record.getMessage(); if (message.contains("issued server command: /login")) { // Log a message before filtering out the command log getLogger().info("Komenda '/mycommand' zostaΕ‚a ukryta."); return false; } return true; } }

torn shuttle
#

alert badass alert alert

wet breach
mortal hare
#

those all updates from 1.20 to 1.21 to minecraft code makes me suspiciously think that enchantments are now server based primarily

#

yea kinda

torn shuttle
#

that'd be cool for us

#

well... you know what time it is

#

that's right it's gym time

eternal oxide
#

better lose those cops...err your friend had

torn shuttle
#

oh we resolved that amicably

#

I mean

#

he did

#

just had to trade in some favors with some russian friends

#

he did, that is

mortal hare
#

neato

wet breach
mortal hare
#

what do they mean across "server transfers"

#

minecraft doesnt have proxy server

wet breach
#

only issue with that is it being incompatible with bungee I believe since bungee doesn't use the transfer packet

wet breach
mortal hare
#

wtf there is

#

really

#

since when?

wet breach
#

uh. think since 1.20?

#

not entirely sure

mortal hare
#

eh but its kinda useless imo

#

proxy servers are more lightweight

#

and scale better

#

also phishing attacks?

wet breach
#

wouldn't say light weight, but what they allow is the ability to not have your mc servers all exposed to the outside directly as well as not taking up pulbic ip's

mortal hare
wet breach
#

unfortunately current proxies and implementations are incompatible with the transfer packet exception being it being used to transfer from one proxy to another

mortal hare
#

is there any restriction on where the player can be sent to

#

isnt this succeptible to smth like CSRF on web

wet breach
#

not that I am aware of

#

you could put any address and port in there to transfer them to

mortal hare
#

imagine server pretending to be some kind of hypixel server

#

and player joins it thinking that its legit

#

inputs whatever it needs

#

and it pushes him to the real one

#

and the player wouldnt even know that was not a real server

wet breach
#

well, the transfer packet is analogues to a disconnect and connect

mortal hare
#

sure IP and domain names would give away

wet breach
#

without the player having to do those things themselves, also not sure if it asks permission for it to happen or not. Haven't really tested it

mortal hare
#

but knowing that even till this day phishing attacks are succesful im quite worried here

wet breach
#

I am not worried about the transfer packet, I am more worried about the cookies thing being combined with transfer packets

mortal hare
#

fingerprinting?

#

what is on your mind?

wet breach
#

well it depends what can be stored there

#

also whether or not the client does anything beyond just simple storing and sending

mortal hare
#

well storing some kind of static data onto player's machine sounds cool

#

session data which does not change often

wet breach
#

well its only static as long they don't hit disconnect

#

apparently the cookies persist if a transfer packet is used

#

but they don't persist if the player hits disconnect

mortal hare
#

name is kind of bad

#

its not equivalent to web cookies

#

those persist even after communication has ended with the server

wet breach
#

right, I was just stating how they do persist

mortal hare
#

i just struggle to find a proper use for such a feature in a first place

#

communicating back and forth for couple kb of data that could be stored on the server really sound not optimal

wet breach
#

I can see it being useful to share data about the player between servers or networks but beyond that I don't really see the use. Also how can we be sure it hasn't been tampered with? lol

mortal hare
#

if they did persist after disconnect, that would be interesting

#

and bunch of things would pop up

#

probably first the sessions for offline mode authentication

wet breach
runic pine
#

FUYCK U LOMBOKKKKKK

eternal night
#

and well, the packet is for routing to geographically closer servers

#

or switching proxies if you are shutting down a proxy in your pool

runic pine
#

how i use delombok

wet breach
#

talking about that cookies thing

eternal night
#

I mean, what is the issue with cookie packet

#

it works great

wet breach
#

I don't really see it being useful, and how would you know it hasn't been tampered with?

mortal hare
eternal night
#

JWT

eternal night
#

And I mean, cookie usefulness is okayish

#

you can achieve the same with a KV store

#

but it is easier to just throw a JWT into a cookie of a player and be done with it

quaint mantle
#

JWT will be good for offline mode servers

mortal hare
#

is there a point of jwt token in a first place if its not persistent across disconnects anyways

eternal night
wet breach
mortal hare
#

i just feel like that you will be probably sending more packet data to read and store that data in a first place

#

its small af

eternal night
#

what

#

again, you'd only use JWT to ensure the contents are unmodified

wet breach
#

I can't really think of many uses at the moment for it, but I could see it maybe being useful to store some stuff like preferences

eternal night
#

Well, the cookies are mostly to be used in combination with the transfer packet