#dev-general

1 messages · Page 621 of 1

static zealot
#

and most of the time was just scrolling to find a good one

#

it was just not worth it

inner umbra
#

I hate when I find a good video only to see its a "short"

static zealot
#

idk. shorts just don't do it for me. like its so much bad content to find that 1 good video that will end very fast. I'd rather scroll the same time on youtube main page to find a good 5-20 minutes video

inner umbra
#

yeap

obtuse gale
#

youtube is a waste of time and energy

eager fern
#

naw

rancid hollow
#

hi guys i am cheking source code and i want to know wath this mean:

private static final String[] pTo;
pTo[3072 >>> 7241]
#

i want to know wath mean the '>>>'

old wyvern
#

Unsigned right shift

rancid hollow
#

?

#

oh okay thx

brittle leaf
#

me and another person want to work on the same plugin thats on github, what would be the process so that we can both work on the same project without fucking up eachothers work?

#

im never worked on something with someone else before and up to this point i always commited and pushed to master when ive made any major changes

urban sleet
#

Branches

#

Then make PRs to master

static zealot
#

can you guys recommend me a browser extension for page translation? one that works on firefox btw.

ocean quartz
#

Put the page link on google translate

static zealot
#

I'm sorry what? this is cool af

#

I also found a translate addon that uses google translate but is unofficial

#

has 800k downloads so hopefully nothing bad xD

#

also 4.something rating

half harness
#

more convenient to have an extension already do it

although chrome/edge already does it

pastel imp
static zealot
#

not on the mozilla/firefox one

obtuse gale
#

yo

#

i have a bug on my server

#

where even if keep inventroy is set to false

#

players are keeping their inventories when they die

#

any plugin you think overrides this?

pastel imp
#

Uh, so I suppose we all know that packages should be lowercased, methods lowerCamelCase, etc. But one thing I couldn't find is, is there a "good practice" for NamespacedKey names?

cinder flare
#

camelCase probs

steel heart
cinder flare
#

camelCase, PascalCase, snake_case, kebab-case

steel heart
cinder flare
#

yeah if you're a chump

steel heart
#

What

cinder flare
#

you know what i said

steel heart
#

They’re literally both correct, idk why you’re so fucking pedantic over something that wasn’t even wrong

cinder flare
#

okay chump

steel heart
#

Why would you be a chump just because you use one over the other smh

cinder flare
#

you tell me, you're the chump

steel heart
#

How?

cinder flare
#

ya didn't call it PascalCase

#

obviously

pastel imp
#

Sus

cinder flare
#

that's what im saying

steel heart
#

Well literally both are equally correct, it’s not being a chump at all if you’d prefer latter or former

cinder flare
#

i wouldn't say equally correct

steel heart
#

They’re tho? Both mean the same

#

UpperCamelCase occurs just so often as PascalCase occurs

cinder flare
#

I don't believe that's true

steel heart
#

I believe that’s very true

cinder flare
#

you're the first person I've seen say UpperCamelCase

cinder flare
#

there it is

steel heart
#

Interesting because Python calls it upper in abbreviation for it, Java calls toUpperCase, and well if you want to include the camel both jackson and Gson use upper camel case and not pascal case

#

I’m far from the first person if anything lol

cinder flare
#

bro what are you talking about

#

toUpperCase is all caps

steel heart
#

Oh yeah might be

cinder flare
#

as is Python's

steel heart
#

well ignore those

#

But point persists, upper camel case isn’t less used than pascal case at all

cinder flare
#

I think it is

#

You named two libraries lmao

steel heart
#

You want more or what? Tell me where pascal case is used then?

cinder flare
#

in most speech 🙂

#

Conclure you're very easy to troll I have to say

steel heart
#

I don’t know what you mean

steel heart
cinder flare
#

🙂

#

"literally"

steel heart
#

welp, I’m out…

cinder flare
#

took ya long enough buddy

pastel imp
#

Even the spigot wiki uses upper and lower camel cases lol

obtuse gale
dawn island
#

Well, Choco's popular forum post talks about common mistakes with the usage of UpperCamelCase/lowerCamlCase schemes.

steel heart
obtuse gale
#

for NBT pascal case used to be super common ages ago but nowadays new tags are camel case

#

but like Bukkit forces pdc through namespaced keys so like ¯\_(ツ)_/¯

hot hull
#

I tend to use pascal case since looks cleanest I guess

tranquil crane
#

nbt is anything but consistent with the name casing

#

it's actually kinda funny seeing {NoAI:1,carriedBlockState:{Name:"grass_block"}} for an enderman's nbt

#

it's just so inconsistent

#

and then sound/translation resource keys are separated.like.this screams

#

and advancements be lookin like adventure/kill_a_mob

distant sun
#

true

#

also custom_model_data

pastel imp
#

idk what to say.

#

besides idk

hot hull
#

Just ban him

pastel imp
#

sadly enough not the owner of the server

hot hull
#

Tell the owner to ban him

pastel imp
#

will enter in contact with the owner

inner umbra
sly sonnet
gusty glen
#

I'm so proud of myself rn. I just made a script to install redis-cli by building it from scratch, which can be run within a single line in a linux terminal.

https://github.com/SecretX33/redis-cli

#

Context: The redis-cli that you download through redis-tools package available on Ubuntu repo is very old, and the only easy way of getting the redis-cli was to download the entire redis-server package just to be able use an up-to-date redis-cli.

But now that's no more! This script will automatically download, build redis from scratch, install just the redis-cli, then get rid of all build files

humble silo
#

Wow Github copilot works sometimes... I had written something like this before, but before i even started typing it suggested this

static zealot
#

yes it works nicely sometimes. but sometimes its so bad

#

I still use it in Rider bcz I don't care but in IntelliJ I personally just disabled it

humble silo
#

lol

static zealot
#

oh I do

#

I don't like when ti gives me actual useful code actually

old wyvern
#

Really useful for something like prepared statements and sql queries tho

pastel imp
#

uh do minecraft GUIs title's support MiniMessage?
AKA hex colors?

forest pecan
#

It should?

pastel imp
#

k ty

#

just wanted to know

night elbow
sly sonnet
#

Is this ok?

hot hull
#

Why ChatUtils

#

pLuRaL eW

sly sonnet
#

wdym

sweet cipher
#

Why are you using Permissible?

distant sun
#

yeah, you are looking for CommandSender

sly sonnet
#

CommandSender will work for both Player and ConsoleCommandSender?

distant sun
#

ConsoleCommandSender

#

d;spigot CommandSender#sendMessage

ruby craterBOT
#
void sendMessage(@NotNull String message)```
Description:

Sends this sender a message

Parameters:

message - Message to be displayed

sly sonnet
#

¯_(ツ)_/¯

pastel imp
#

adventure was added to paper when?

obtuse gale
#

late 1.16.5

#

or... 1.17.1

prisma wave
#

1.6.9

#

4.2.0

#

ha ha

pastel imp
#

which is it now

inner umbra
pastel imp
#

lul

#

no

#

the api

prisma wave
#

i think 1.16

#

actually maybe not

inner umbra
#

ah

pastel imp
#

1.17?

#

uh

#

found it

hallow crane
#

Does anybody know if there's out-of-the-box support for proxies like this:

hot hull
#

fantastic drawing

hallow crane
#

Thanks

inner umbra
hallow crane
#

Yes

inner umbra
#

Try SubServers

hallow crane
#

What is that

inner umbra
#

Proxy and server manager

hallow crane
#

Does that use two proxies

inner umbra
#

It can connect proxies (I think)

hallow crane
#

I am trying to keep things modularized and the best way to do that is to develop plugins for the sub-proxy that aren't related to the root proxy. I don't want them to share data at all and the sub proxy manages a gamemode that has multiple servers.

#

It's gotta be able to scale with K8s, which is why I wanted to modularize it

inner umbra
#

Well you can contact the author to see if that resource does what you want but if it doesn't you will likely have to create your own proxy management system. Would probs need to use docker or such.

hallow crane
#

Do you know if it's possible right now to have a proxy underneath another proxy?

#

I just don't want to start developing if I don't know that it will work

#

I've already got a k8s scaling system I wrote anyway so that would work

oblique heath
inner umbra
inner umbra
#

no, me1312

hallow crane
#

I’m not really asking about any resources or existing projects, I’m just asking if Bungee even has support for passing a player through to another Bungee server below it. I don’t plan to use any existing resources, I’m developing my own.

#

Strictly just Bungee/Velocity

inner umbra
hallow crane
#

Ah so you’re saying that resource might add support

inner umbra
#

yes (might)

hallow crane
#

Thanks

inner umbra
#

np

#

If not someone mentioned redisbungee above.

hallow crane
#

That only synchronizes two horizontal proxies if I recall

#

My goal is to not share any data at all

cinder flare
#

Should allow you to do exactly that

#

Though generally Velocity can handle like more than a thousand players, but if you're gonna be above that then either do like different regions or look into HAProxy

hallow crane
#

HAProxy would be at the root level right? I've tried stacking velocity proxies and I was getting very odd errors.

#

Would HAProxy allow a user to connect through a proxy then connect to another proxy below that (then get forwarded to a gameserver)?

cinder flare
#

Yeah so it'd be like a pyramid, one HAProxy at the top, Velocity proxies below it, then Paper servers below that

cinder flare
#

I looked into it a bit when I thought I might need multiple proxies but I realized that a thousand people was enough for me lol

hallow crane
#

My reason for having multiple vertical proxies is to modularize game servers. So there would be X number of root proxies, and then a 'Skyblock' proxy, and that 'Skyblock' proxy would have multiple different paper servers to distribute the load.

#

Creates a little bit of vertical complexity but heavily simplifies the horizontal part

cinder flare
#

Well so you have to have one single proxy that everyone connects to if you want them to be able to move servers

#

So everyone would have to connect to the HAProxy, then you can dish them out to a Velocity per gamemode or whatever

hallow crane
#

Ah I see. The issue I see with that is that I'd have to write a plugin for HAProxy (in C) that would handle switching players between servers

cinder flare
#

I'm not sure what you'd have to do as Velocity has native support for it

hallow crane
#

Is this what you're saying? (drawing something rq)

cinder flare
#

So yeah that's what I envision in my head

#

Yeah I guess the big question is how to move players between backend servers

hallow crane
#

How would I switch players from "Velocity for Lobby" to "Velocity for skyblock"

cinder flare
#

Or backend velocitys more like

#

Yeah I'm not sure about that

hallow crane
#

I was envisioning a root velocity for the network in place of the HAProxy

#

However, I was getting errors when trying to do that

#

I am definitely open to writing a custom solution with HAProxy instead of a root velocity

cinder flare
#

Yeah you can't stack velocitys as they do a bunch of minecraft stuff

hallow crane
#

I was really hoping you could

#

How does Hypixel do it then?

#

Afaik they have a root proxy (horizontally scaled to many), and when joining a Skywars game, you join a Skywars lobby under another proxy

obtuse gale
#

From what I've heard which btw it might be 100% false lmao hypixel has some custom multi-proxy system written in nodejs lol

#

But that is as true as it is also false so

#

No doubt they 100% have a custom solution for all that stuff tho, such large networks do things no normal network should do

hallow crane
#

Yeah they have a thing called MasterControl but they won't give me the source

obtuse gale
#

Well of course not lol

hallow crane
#

But in front of that is a bunch of Bungee instances

#

but I can't figure out what is in front of that

distant sun
hallow crane
#

Yeah

obtuse gale
#

lmao

distant sun
#

welp

cinder flare
#

Something like this might work

hallow crane
#

That looks promising for horizontal stacking

pastel imp
#

Uh so while making a plugin that supports multiple languages, you would have a lang file for each language's messages, my question is, how would it work for GUIs? Currently I have a guis.yml, but then they couldn't be translated (well they can, but they wouldn't have them by default)

ocean quartz
#

Instead of the gui.yml holding text for items/title make it hold language keys

pastel imp
#

Also, wouldn't that be confusing for users? idk

ocean quartz
#

Configurable GUI is already confusing for users

# en.yml
gui:
  title: "Hello"
# pt.yml
gui:
  title: "Ola"

# gui.yml
title: "gui.title"
pastel imp
ocean quartz
#

2 - No and yes, ofc they would need to change both if they wanted to have both customized, but if they don't want to touch the gui they can just change translation
3 - Sounds terrible

pastel imp
#

Mainly concerned about lores since those can have multiple lines.

#

and adding just "gui.lore" wouldn't be as good

#

What if I just don't give the option to change it in the gui.yml?

#

since you will change it in en.yml for example, why should I add an extra step

#

I could make gui.yml be used only to change position, materials, etc of items in the gui

#

or is that a bad idea?

ocean quartz
#

Up to you how you want to implement that
For lores you can either point the key to a list or each line to a different key
And if you want it less configurable sure you can have it so they can't change those keys, would definitely be easier
Also you don't have to ping me on every reply

pastel imp
steep veldt
#

Can anyone help me, I keep getting the following error message:
"java.lang.IllegalArgumentException: Cannot set to an empty path".

       if (new File(getDataFolder().getAbsolutePath()).mkdirs()) {
            File file = new File(getDataFolder().getAbsolutePath() + "/config.yml");
            YamlConfiguration configuration = YamlConfiguration.loadConfiguration(file);

            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }

            configuration.set("test.", 0);
            try {
                configuration.save(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }```
half harness
#

not test.

#

. is a separator between paths

#

so you have to either do test or test.subsection

dawn island
distant sun
#

@old wyvern skeson sounds like a skript library 🤣

ruby dew
#

lmao helpchat nft
why is that even a thing

distant sun
#

Look at the date

peak junco
#

Hey does someone know a method, to update the configuration?

I mean:

Plugin has old config, in the new version i added some new keys and how to check if they got updated.
And when i update the config, how should i keep the old values, which the user of the plugin has defined

boreal needle
#

set default values in whatever config system youre using

#

stuff that calls the bukkit api needs to be called on the main thread iirc

#

ah

#

why are you doing it through papi then lmao

#

just call the bukkit method directly

#

cut out the middleman

#

oh i see

#

not sure if the placeholders will work when the player goes offline

peak junco
#

Does someone know why this line would cause a NPE?
line.setPrefix(ChatColor.translateAlternateColorCodes('&', lineString));

lineString is not null! Its executed in a for-loop

potent nest
#

well either line or lineString is null

#

but when using a modern java version, it'll tell you exactly what's null

peak junco
#
    public void updateScoreBoard(Player player) {
        if(instance.getPluginConfig().getScoreboardEnabled()) {
            Scoreboard board = player.getScoreboard();
            int listSize = instance.getPluginConfig().getScoreboardList().size()+1;

            for(String string : instance.getPluginConfig().getScoreboardList()) {

                String lineString = string
                        .replace("%online%", String.valueOf(Bukkit.getOnlinePlayers().size()))
                        .replace("%maxplayers%", String.valueOf(Bukkit.getMaxPlayers()))
                        .replace("%kills%",String.valueOf(instance.getStatsConfig().getKills(player.getUniqueId())))
                        .replace("%deaths%",String.valueOf(instance.getStatsConfig().getDeaths(player.getUniqueId())))
                        .replace("%kdr%",instance.getStatsConfig().getKDR(player.getUniqueId()));

                listSize--;

                Team line = board.getTeam("line" + listSize);
                line.setPrefix(ChatColor.translateAlternateColorCodes('&', lineString));

            }

        }

    }

this is the method it gets executed

potent nest
#

that sucks

peak junco
#

ja leider

#

aber ich habe keine andere möglichkeit gefunden für spigot 1.8

#

it says line is null

#

but why

boreal needle
#

probably because line is null

peak junco
#

yes but i search why its null

boreal needle
#

Team line = board.getTeam("line" + listSize);

obtuse gale
#

seeing the error message and the stack trace would help

boreal needle
#

what happens if no team exists with that name?

peak junco
#

its null, yes

#

but the team exists / must exist

#

okay found why it is

#

the scoreboard was not set before, and this because i forgot one line in the onEnable

#

thanks for the help :)

pastel imp
#

Also, any reasons to be using 1.8?

#

it's quite outdated

peak junco
#

xd i used it because of the pvp system

but i will switch up soon

pastel imp
peak junco
#

i am lost, what is MiniMessage ? xD

boreal needle
#

&-codes but actually good

ocean quartz
boreal needle
#

also a little more complicated tho

distant sun
ocean quartz
#

Yeah nah kek

pastel imp
peak junco
#

I know, i requested a lot help, but this is irritating me:

    @EventHandler
    public void playerCrouch(PlayerToggleSneakEvent event) {
        if (instance.ready("playerSNEAK")) {
            updateScoreBoard(event.getPlayer());
        }
    }

    @EventHandler
    public void onJoin(PlayerJoinEvent event) {
        if (instance.ready("scoreboard playerjoin")) {
            setScoreBoard(event.getPlayer());

            for (Player player : Bukkit.getOnlinePlayers()) {
                updateScoreBoard(player);
            }
        }
    }

    @EventHandler
    public void onQuit(PlayerQuitEvent event) {
        if (instance.ready("scoreboard quit")) {

            for (Player player : Bukkit.getOnlinePlayers()) {
                updateScoreBoard(player);
            }
        }
    }

The 1. is ok
The second too
But the 3. doesnt to anything
Also no error

Does someone know Why?

The scoreboard is only getting updated after i crouch.

boreal needle
#

what is instance

peak junco
#

JavaPlugin Class

static zealot
#

what's the ready method then?

peak junco
#

if the first required settings are set (spawn location etc

boreal needle
#

please share code

peak junco
#

javaplugin class ?

boreal needle
#

this ready method

peak junco
#

okay

#

    public boolean ready(String className) {
        if(pluginConfig.getDeathHeight() == -1 || pluginConfig.getSpawnHeight() == -1) {
            return false;
        }

        if(pluginConfig.getDeathHeight() == pluginConfig.getSpawnHeight()) {
            return false;
        }

        if(locationConfig.getSpawnLocation() == null) {
            return false;
        }

        return true;
    }

boreal needle
#

and the purpose of this is?

#

is className even used?

peak junco
#

no it was for debugging

boreal needle
#

move this stuff into your pluginconfig class

peak junco
#

ok

#

the purpose of ready is to enable the listeners and commands after everything got configured

boreal needle
#

that does not enable anything

peak junco
#

no wait i show

#

okay enable is the wrong word

    @EventHandler
    public void blockPlace(BlockPlaceEvent event) {
        if (instance.ready("blockplace")) {
            if(!(instance.getBuilders().contains(event.getPlayer()))) {
                event.setCancelled(true);
            }
        }
    }

i mean its used for this

#

if the game is not ready, it will let this event, if the game is ready it will cancel

#

this was my thought

boreal needle
#

how do you define "ready"?

#

that method only checks config properties which are loaded before your event listeners get registered

peak junco
#

it checks if the plugin is set up

like in the code, i want the spawn to be set and the both heights to be set, and if the values are set, it gives ready == true

#

when not
ready == false

boreal needle
#

they are set in the config, yes?

peak junco
#

the location in the locations.yml and the two other values in the config, yes

boreal needle
#

you do not need that method

#

on your onEnable, load this stuff first, if it's all good then great, register your listeners

#

if not, either fall back to default values or throw an error and let the plugin fail to load

peak junco
#

oh i get it now

#

resource efficient

boreal needle
#

your config won't change unless you explicitly tell it to, so there's no point checking this stuff every time an event is fired

peak junco
#

ok i will change

#

but i have the problem and i dont understand it ->


    @EventHandler
    public void onJoin(PlayerJoinEvent event) {
        if (instance.ready("scoreboard playerjoin")) {
            setScoreBoard(event.getPlayer());

            for (Player player : Bukkit.getOnlinePlayers()) {
                updateScoreBoard(player);
            }
        }
    }

    @EventHandler
    public void onQuit(PlayerQuitEvent event) {

        if(instance == null) {

            Bukkit.getConsoleSender().sendMessage("instance  == null");
        }
        if(instance.ready(" ")) {

        }

        if (instance.ready("scoreboard quit")) {
            Bukkit.getConsoleSender().sendMessage("test");
            for (Player player : Bukkit.getOnlinePlayers()) {
                updateScoreBoard(player);
            }
        }
    }

#

the upper one works, the other not. instance is not null, ready is true. any thoughts why ?

old wyvern
#

I meant it sort of like - Schematic Json

dense dew
#

Hi guys, what do you think, what is best authentication method for REST API? (most comfortable for most developers)

boreal needle
#

depends on the situation

plain dragon
cinder flare
#

Oauth is also pretty cool

sly sonnet
#

oauth2

pastel imp
#

the ready method from what I understood is to check if the user enabled that "system" in the config

#

so the listener will only do anything if that's enabled

#

idk why he's doing it like that, he could just, not register the listener but ye

pastel imp
#

what should I answer to this guy?
For context: He's using .txt files to store data...

obtuse gale
#

does he have any actual proof it's faster?

#

basically profiling

pastel imp
#

apparently yes

prisma wave
#

DOUBT

obtuse gale
#

yeah a lot lol

pastel imp
#

the test he did:

#

read 10000 files

#

all with the same data in them

#

bad testing lol

ocean quartz
#

Oh dear

obtuse gale
#

tbh I'd just let them be

#

then one day they'll hit that hard brick wall by themselves kekw

ocean quartz
#

Just call them dumb, say "your mom" and then move on

pastel imp
pastel imp
#

uh anyone has good SQLite & MySQL guides?

#

totally asking for a friend

oblique heath
#

sure

#

some notes from my university

#

it talks about a lot of stuff

pastel imp
#

"some", proceeds to give me a book

#

thx xD

dawn island
#

I personally just rewatched this to refresh some of my memory but it may be beneficial to just watch the entire thing.

oblique heath
#

'a short review & tutorial' >:)

pastel imp
#

ty both

#

time to watch 3 hours of SQL

dawn island
#

I simply just wrote notes to go back to if I forgot something.

#

Goes over most of everything from the video.

obtuse gale
#

how do I fix my discord getting disabled

dawn island
#

?not-discord

compact perchBOT
#
FAQ Answer:

Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.

dawn island
#

@obtuse gale ^

cinder flare
#

thoughts on Traefik over Nginx for a reverse proxy?

sly sonnet
#

iphone or blackberry

stuck wedge
#

can anyone tell me where i can get a bedwars practice plugin like hypixel ?

pastel imp
#

uh SQLite and MySQL behave the same way right?

#

like, the way to select and insert are the same

#

the main difference is the connection?

pastel imp
#

k ty

pastel imp
#

random question, what's the average pay/hour on Java Plugin Development?

lavish notch
#

varies

ocean quartz
#

The average is pretty hard, some people get well payed, others do it for very cheap or even free

#

Around $20/h is probably a good average for a big server

pastel imp
#

hmm ok ty

viral grove
#

I'm finally looking into doing a bit of coding in TS, and I'm confused about package managers. What's the difference between npm and yarn? Or is there something else I should be looking at

ocean quartz
native haven
#

Hey boys this brotha need some help, so I’m trying to access a server but it won’t allow me due to the iOS age restriction, but my 18+ is on through my desktop version. Any ideas?

obtuse gale
#

Sir this is a Minecraft discord

native haven
#

Well uh

#

I thought that the mine craft discord was above this one

#

That’s very

obtuse gale
native haven
#

Interesting

#

Thanks for the heads up

obtuse gale
#

np ig lol

native haven
#

You have a good rest of your night

jovial siren
#

emily is cool like that

obtuse gale
#

likewise

native haven
#

I can’t leave awkward

#

Can I put something cool

#

Then leave

obtuse gale
#

sure

native haven
#

I beat elden ring without magic

#

👑

#

How was that

obtuse gale
#

uh

native haven
#

Elden ring

#

The new hit game

#

Hardest game on planet earth

#

Took the developers 1,000+ tries to beat the game

#

And they made the damn thing

lavish notch
#

To anyone who has a premium resource on SpigotMC, is there a "export buyer list" feature or similar?

static zealot
#

noyesn't

ruby dew
#

yesno't

rancid gazelle
#

mayben't

lavish notch
#

¯_(ツ)_/¯

#

I've never had experience with a premium spigotmc resource- I only know what it's like on the buyer/customer's end.

#

As part of a project for June/July, I want to improve the verification process at BRC's Plugin Support since I am the primary bot developer.

#

Cause right now- It's just BRC doing a command to verify customers, I want to make something similar to HelpChat where a database is easily update and customers can verify anytime and instantly (when their data is added).

#

-verify @user (spigotmc profile link) (a/c/g/s/p - plugins purchased)

static zealot
#

except you won't be able too bcz cloudflare

#

:kek:

lavish notch
#

Obviously there is multiple ways of gong about it but understandably, BRC doesn't want to give me access to his spigotmc account.

static zealot
#

I wonder why

#

I'd personally trust you with it

lavish notch
# static zealot I'd personally trust you with it

It's a weird one, it's not he doesn't trust me per say- for example, I have admin perms in the discord and I started the server... but I think it's for the fact it's his identity and if I were to do anything on it, people would obviously assume it's him.

#

Additionally, he isn't crazy active- so whilst we've know each other since July 2019, there is still a bit of that "stranger" aspect if you will.

frail glade
#

Yes

lavish notch
#

Via a command.

#

*as and when a buyer wants to verify

inner umbra
#

With spigot, no matter what you need access to the author account to access the buyers list or other data.

MC-Market allows you to have a public token to access certain features of their API.

#

I made a verification bot awhile ago but never finished/implemented it. But I just checked the transaction memo for the ID or the username of the purchaser. And then made them verify the email of the transaction.

lavish notch
#

So if there a form of data export, then I can just have him send the bot that- and the bot can process it, etc.

inner umbra
#

But it requires constant access to the account.

lavish notch
#

Yeah, we previously used that- but it broke due to cloudflare last I heard.

inner umbra
#

Welp... Could always attempt your own. But be careful of spigots TOS since technically automation still isn't allowed.

#

That is the forums lol

#

What do you call the discussions tab?

dusty remnant
#

hello i need help

#

somebody dev here i need help

old wyvern
#

No, nobody here is a dev

dusty remnant
#

i thought this is customer support xd

old wyvern
#

What? xD

dusty remnant
#

about account cant log in

old wyvern
#

What account?

dusty remnant
#

my discord account

old wyvern
#

This is not discord suppourt

dusty remnant
#

thjey dont have live chat?

old wyvern
#

No idea

#

Dont think so

dusty remnant
#

the fuck is this group then?

old wyvern
remote goblet
#

?not-discord kek

lavish notch
#

?not-discord

compact perchBOT
#
FAQ Answer:

Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.

dusty remnant
#

gg

#

thabn kyou

static zealot
#

so basically manually adding every purchaser ID to a database

#

every 24 hours or so

lavish notch
static zealot
#

and then you can just automatically look at someone's discord set on spigot. but I'm pretty sure it only accepts ascii or something like that so it breaks quite a few times

lavish notch
#

Just curious to know if there is a easy and fast way to transfer the data from spigot to a database.

static zealot
#

cube made a fallback where admins can manually review

lavish notch
static zealot
lavish notch
old wyvern
#

most recent

static zealot
#

I believe so. I personally never had premium resources on spigot is just what I heard

lavish notch
#

Aight boys, time to make some image recognition system. It's screenshot time laugh

old wyvern
#

I'd assume many libraries exist for ocr

static zealot
#

I mean still, you might not even be able to load the buyers page from a bot account bcz of anti bot protection

#

what's ocr?

#

ah

old wyvern
#

optical char recog

lavish notch
static zealot
#

I mean maybe the paypal way might work? I've never worked with paypal's api tho so idk

#

but you guys said the buyer id is inside the message so you might be able to access it from there?

lavish notch
lavish notch
#

@wintry plinth What's your spigot profile username? lol

#

Octanna

#

Sounds like Sxtanna laugh

#

Y'all family? xD

#

@static zealot Ban this associate of Sxtanna laughMega

#

jk, ily

#

Registered as well, more reasons to ban. 😛

#

My next question- did you register your company office as your home address?

static zealot
#

no. as his accountant's address

#

bcz his accountant is stupid

#

:kek:

lavish notch
#

Bet.

static zealot
lavish notch
#

Your accountant is a homeless shelter?

obtuse gale
#

homeless Charlie lore

#

tsk tsk

lavish notch
#

Those are a familiar with SQL. Does the Permissions column look right for a BIT(1) type column?

The first one is 0 (false), and the other two are 1 (true).

primal crystal
#

Are u facing any issues?

lavish notch
#

No errors, just curious why the columns where empty.

lavish notch
lavish notch
#

No idea, how can I check?

#

1s and 0s

#

Looks good. 😄

#

Well- it works fine for me ig

cinder flare
#

i suppose this is a good time to switch to Postgres? lol

half harness
#

u can using bukkit schedulers

#

and Thread.sleep

#

creates fake load on the server

#

:)

#
Bukkit.getScheduler().runTaskTimer(plugin, Runnable {
    Thread.sleep(40L)
}, 1L, 1L)
``` 😌
#

well

#

here it removes lag

#

so ig i misread what u typed

#

A

#

😭

#

that'll hang the server 💀

#

you forgot
Long.MAX_VALUE

#

if thats even a thing

deep vale
#

Where would be the best place to hire a developer for a full plugin rework / recode

obtuse gale
boreal needle
# lavish notch

please please please please please please please use a prepared statement

#

template strings are a sql injection speedrun

#

there's no reason not to use prepared statements anyway, they're good for performance too

cinder flare
#

😌

upper canyon
#

Looking at a PR for one of my custom plugins from a dev after I asked for a better way to handle banning cheaters from the network

#

And I see this

#
        if (sender instanceof Player && !Permissions.isStaff((Player) sender)) {
            sender.sendMessage(ChatColor.RED + "You need Staff status to use this command");
            return;
        }

        if (args.length < 1) {
            sender.sendMessage(ChatColor.RED + "/clientrape [name]");
            return;
        }
        Player player = Bukkit.getPlayer(args[0]);
        if (player == null) {
            sender.sendMessage(ChatColor.RED + "Player '" + args[0] + "' not found");
            return;
        }

        PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;

        playerConnection.sendPacket(new PacketPlayOutGameStateChange(7, Integer.MAX_VALUE));
        playerConnection.sendPacket(new PacketPlayOutWorldParticles(EnumParticle.SMOKE_LARGE, true, 0, 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE));

        sender.sendMessage(ChatColor.LIGHT_PURPLE + "Brutally raping " + args[0] + "'s client");
    }```
#

sigh this is not what I meant

lavish notch
#

I- uh-

remote goblet
#

uncomfortable += 100

remote goblet
#

are we able to report offensive PRs

zinc ridge
#

what did i just see

upper canyon
#

exactly

pastel imp
#

Why is using static to get the plugin's instance bad? (I don't use it, but trying to explain someone why he shouldn't lol)

pastel imp
#

it's just a general question

#

always got told to never use that

#

to always use dependency injection

prisma wave
hot hull
#

"god object"

#

Cool terminology

pastel imp
#

what's that supposed to mean

#

lol

prisma wave
prisma wave
# pastel imp what's that supposed to mean
  1. makes code hard to unit test & refactor
  2. if you rely on it too much then your main class will become this massive object that holds a million different things with a million different methods
pastel imp
#

makes sense, ty

prisma wave
#

np

#

if u use a DI framework like guice you'll probably find that you only need to inject / use the main class when you need a plugin instance, eg things like the scheduler methods

half harness
#

what does guice do eaxctly? since isn't DI just passing the plugin variable in a constructor

#

which is like 3 lines of code 🥲

potent nest
#

it's more about managing the instances

obtuse gale
#

I was gonna write a whole ass paragraph on why DI frameworks are better than even DI without one but then I realized I never actually used one lol

half harness
#

💀

obtuse gale
#

in part it's about managing instances but also even more abstraction and loose coupling if used appropriately

prisma wave
#

DI isn't just "haha constructor"

half harness
#

wait what

prisma wave
#

i mean it is

#

but it's more about managing the objects too like emily said

obtuse gale
#

yeah just passing things through constructors is the least of uses of a DI framework

half harness
#

wait what do you mean by managing

obtuse gale
#

what things is the key instead

obtuse gale
#

that kind of stuff

half harness
#

then use constructor to pass in plugin parameter

obtuse gale
#

I mean sure you can do that, and now you're depending on the entire main plugin class to be passed when you only need a single File

#

A DI framework isn't going to fix that for you, that's on you to decide "should I depend on this or that" with or without guice

half harness
#

hmm

obtuse gale
#

it's about managing instances

#

not what you depend on

#

it can't fix your stupid

prisma wave
#

But it does encourage you to split things between classes much more because there's less boilerplate required

#

idk how but it does encourage you to write better code

obtuse gale
#

you should have a

@FunctionalInterface
public interface DataFolderProvider extends Supplier<File> {
  File getDataFolder();
  default File get() { return getDataFolder(); }
}

and get your main plugin class to implement that, then depend on that instead

#

obviously

onyx loom
#

😵‍💫

prisma wave
#

No, make your main class return that

#

Composition over inheritance

#

Fucking dumbass idjot

pastel imp
#

sus

half harness
#

btw anyone else updated intellij to 2022 but it doesn't launch? :(

#

looks cool though

ocean quartz
#

So much better than 2020

half harness
#

hm what was 2020s?

ocean quartz
#

Which plugin? All of mine worked fine after updating

half harness
ocean quartz
#

Oops, I meant to say 2021 mb

half harness
#

oh

#

yes

#

def

#

100%

distant sun
#

let not mention community 🤣

half harness
ocean quartz
#

Oh, never heard of that

half harness
#

🥲 for jetbrains academy i think

#

also

#

anyone know how to disable that

ocean quartz
#

Search for inlay hints

prisma wave
#

dkim19375

half harness
#

ty

prisma wave
#

yw

half harness
#

oh noo

#

can i get the colors back? 🥲

ocean quartz
#

Really? I personally really like the change

obtuse gale
#

hi anyone online

#

I NEED help

compact perchBOT
#

There is no time to wait! Ask your question @obtuse gale!

obtuse gale
#

Please

#

PLEASE

ocean quartz
#

Hard to help if you don't specify with what

obtuse gale
#

can i send pic of my roblox

#

/its not working please help

ocean quartz
compact perchBOT
#
FAQ Answer:

You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/upload to upload images/screenshots.
You can also use a screenshot service like gyazo or jinx and post those links here.

ocean quartz
#

They left kek

static zealot
#

they kinda got timed out

tough crow
#

roblox?

boreal needle
#

oooooh ij 2022 is out

obtuse gale
#

Lucyyyy

boreal needle
#

emyyyy :D

#

hi

pastel imp
half harness
#

it auto updated for me 😤

pastel imp
#

the wut

#

I mean, I checked for updates

#

and 2021.3 was the latest

half harness
#

in IntelliJ?

half harness
pastel imp
#

ye

half harness
pastel imp
#

I mean, is that ultimate?

#

or community

#

?

half harness
#

ultimate

#

but community should also be out

pastel imp
#

well then wtf

#

I have ultimate

half harness
#

this is jetbrains toolbox

pastel imp
#

I will just install that

half harness
#

hmm

pastel imp
#

will install toolbox

#

who here will use fleet over intellij?

onyx loom
#

splash screen for community. i remember someone asking earlier, idk who

obtuse gale
#

it's cool

half harness
#

side by side comparison

#

oh so this time its basically the same

onyx loom
#

ultimate a little better

boreal needle
#

they look so much better than last time

half harness
pastel imp
#

ye updating with toolbox

#

last version comparison?

boreal needle
#

just read the changelog lmao

ocean quartz
#

If you're talking about the opening art

#

Hella ugly

obtuse gale
#

that looks brighter than I remember

boreal needle
#

yeah same

ocean quartz
#

Got it from google so probably edited or something

pastel imp
#

god so bad

#

what does intellij have that fleet doesn't?

#

jetbrains said fleet wouldn't replace any ide

#

but... ye

obtuse gale
#

how are we supposed to know lmao

pastel imp
#

idk, maybe someone is informed

#

who knows

obtuse gale
#

I mean you can probably install a shit ton of plugins to it too and basically use it as an ide

#

just like you can do the same with vscode

pastel imp
#

I mean, but fleet IS an ide?

#

atleast when smart mode is enabled

sly sonnet
obtuse gale
#

well I guess it is lol

#

when did they start advertising it as an IDE rather than a vscode competitor instead?

boreal needle
#

since the start

#

it's an alternative frontend to what is effectively the ij code engine

obtuse gale
#

oh

#

so it's just intellij with a facelift

#

why is there so much hype around that then, is it because it doesn't run on swing? lol

boreal needle
#

bit more than that

#

it's like the google docs of ides with the whole distributed thing and collaboration

half harness
#

its a text editor with a button that can make it have ide auto completion, highlighting, etc

#

i think

prisma wave
#

it's also much more lightweight

half harness
#

ye

#

its so that its lightweight

#

but "heavy" when u want

prisma wave
#

and brings all of the different jb ide's together

half harness
#

im still not sure about that

prisma wave
#

The frontend will still probably be more lightweight even with the engine mode

half harness
#

since different langs need different tools

#

¯_(ツ)_/¯

prisma wave
#

Well in terms of having support for them all out of the box

pastel imp
#

they built it from scratch

#

so yes, it's a lot more lightweight

obtuse gale
#

if it runs on electron I'm killing myself

pastel imp
#

besides that, they have years of experience with IDEs

half harness
#

lol

#

isn't electron bad for performance

#

i think

#

wait doesnt electron apps have to have the code in html/etc

pastel imp
half harness
#

ex discord

obtuse gale
#

source of what?

half harness
pastel imp
#

oh

#

ok

#

mb

obtuse gale
#

gb

half harness
#

tb

obtuse gale
#

🇬🇧

pastel imp
#

we are safe

half harness
#

Kotlin/JS

#

🥲

obtuse gale
#

help I don't know what to cook tonight

half harness
#

i highly doubt it uses electron

half harness
#

!!

pastel imp
obtuse gale
#

there will be no show if I don't know what to make Toni

#

tonight

cinder flare
#

i swear it was written in Rust

#

maybe I'm just trippin

#

it has support for Rust natively though 😌

pastel imp
#

make 4 cheese pasta, good af.

half harness
#

might as well use a language that u made 🙃

obtuse gale
#

maybe you are tripping regardless

cinder flare
#

JetBrains wishes they made Rust

pastel imp
# obtuse gale maybe you are tripping regardless

Easy food recipes for dinner to make at home. cooking videos. How to make snacks for begginers and kids. Cream cheese pasta. A simple and quick food for lunch or dinner

written recipe: https://goo.gl/NnDFUt
SUBSCRIBE FOR MORE COOKING VIDEOS: http://goo.gl/M5HD3j
MORE MEALS DISHES: http://www.alleasyfoodrecipes.net/

Chef: Gorka Barredo

Song: ...

▶ Play video
#

did it once

#

twice

#

a lot of times lol

#

good af.

obtuse gale
#

mm carbonara

#

mm no bacon..

pastel imp
#

well, no

#

that's not carbonara

#

buuut

#

you can do that

#

you can use ham instead of bacon

#

if ya want

obtuse gale
#

eh not the same

pastel imp
#

also, this is totally on topic

#

emily is coding a cooking simulator 👀

obtuse gale
#

yes of course

#

holy shit I do have bacon

cinder flare
# cinder flare i swear it was written in Rust

Furthermore, Fleet uses Rust for the Fleet System Agent, which is a process that runs on the target machine. It is used to build the project, run code, execute terminal commands, and perform other actions in the target environment on behalf of Fleet.

#

YEAH BABY
I WASN'T TRIPPIN

ocean quartz
#

With ham it's actually pretty good

obtuse gale
#

what does Oracle even do

cinder flare
#

con people out of money for "support" and peddle a Java version that came out in 2014

obtuse gale
peak junco
#

Does a custom created inventory get deleted after closing it, or does it exist?
And if it exists, is there a way to delete it?

obtuse gale
#

it will "exist" so long as you save it yourself

#

in a field or a list or a map or whatever

peak junco
#

it should be a temporary inventory, to select a kit

#

so i dont save it

obtuse gale
#

sure that's fine

peak junco
#

thanks

obtuse gale
#

neither the server nor the client cares about how many inventories you create, you manage those yourself

plain dragon
#

i always mix up fleet and flutter

pastel imp
#

Fleet is fleet

echo cedar
#

I have a feeling this isn’t a discord help server I meant to join...

compact perchBOT
#
FAQ Answer:

Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.

distant sun
#

I like how on spigot javadocs are links to methods added on new versions (this was added to Enum on 12) and the link send you to java 8 docs xd

agile galleon
#

cool :D

normal talon
#

Why can't I build with maven anymore it doesn't show up anymore, I haven't touched this for a while so I dunno what is happening

#

Also have Java 18 installed

distant sun
#

where the f is gradle??

#

oh damn

normal talon
#

I don't use Gradle on this project

#

I also downgraded to the community version

half harness
normal talon
#

`error: invalid target release: 1.18

Module JoyChat SDK 18 is not compatible with the source version 18.

Upgrade Module SDK in project settings to 18 or higher. Open project settings.
`

#

Now I can't build it

broken delta
#

any blender nerds

sly sonnet
#

sounds like a maven problem

obtuse gale
normal talon
#

So what is it supposed to be

#

Just 18

#

?

obtuse gale
#

1.18 without the 1. is 18, yes

normal talon
#

Oh aight

humble silo
prisma wave
#

Maybe to reflect the change in update cycle?

#

Maybe they just wanted to be different

#

Who knows

potent nest
#

There’s a JEP about it

obtuse gale
#

kidding, no clue

humble silo
#

fun, idc either way, just kinda strange lol

#

I guess 9 looks a bit nicer than 1.9

pastel imp
#

anyone knows a persistentdata library?

#

sick of using namespacedkeys

#

and whatsoever

#

soo annoying

#

lmao

half harness
#

just store variables for the keys

#

or use nbt api

#

but it seems to be buggy if you're shading it and multiple plugins are shading it even if it's relocated for some reason sometimes

pastel imp
half harness
pastel imp
#

may just create my own xD

half harness
#

using nms just so that u dont need to create variables 🤔

pastel imp
#

by this I mean, use persistendata, but make methods that are smaller and easier to use

half harness
#

hmm

pastel imp
#

that's my only issue

#

big fking lines

half harness
#

wdym

#

its only 1 line to set and get

pastel imp
#

imagine

#

uh

half harness
#

but getting is 1 line
or 3ish if you nullcheck meta

#

¯_(ツ)_/¯

pastel imp
#

pdc.set(new NamespaceKey(plugin, "IdkSomething"), PErsistentDataType.INTEGER, 1)
now imagine
pdc.set("IdkSomething", 1) xD

half harness
#

hmm

maybe the parameter would be a key instead of string though

pastel imp
#

I could change the PersistentDataType depending on the type I enter in the second input

half harness
#

then the key would be a variable in a class

pastel imp
#

plugin instance is well, ez

#

and the name

pastel imp
half harness
#

why

pastel imp
#

write less and wouldn't need to pass the plugin instance each time

#

and instead only inject the Utility class

#

if that makes sense

half harness
#

🤔

wouldn't need to pass the plugin instance each time
either way u need plugin or another class instance

pastel imp
#

uh, fair I suppose, the write less still counts xD

distant sun
#

what is this jetbrains, visual studio??

ocean quartz
#

Very annoying, i turned it off

distant sun
#

how

pastel imp
ocean quartz
#

Search for "inlay hints" on the settings and it's the "code vision" section

pastel imp
#

ty

pastel imp
#

When I set persistent data of something, does it write it to the player file directly for example?

tranquil crane
#

it gets stored with the rest of the NBT so yes

#

It gets shoved in a {BukkitValues:{}} tag and is written to disk with the rest of the values

pastel imp
#

Hmm okay..

#

Sooo, would they be a good way to store data?

oblique heath
#

i think nbt is not ideal for public plugins because they'll remain if/when the user decides to remove the plugin, making it very hard to forcefully reset the state

pastel imp
#

Fair enough

obtuse gale
#

pdc is okay

pastel imp
#

But ye as Ivan said, if the user removes it, data stays

obtuse gale
#

i mean at worse it's a handful of kB of data

gilded hamlet
#

my plugin is giving an error where it can't download expansion what do i do?

half harness
#
private fun setLeastSignificantBitToOne(pixel: Int) = if (pixel % 2 == 0) pixel + 1 else pixel
```anyone know how this works?
then ```kt
Color(
    setLeastSignificantBitToOne(r),
    setLeastSignificantBitToOne(g),
    setLeastSignificantBitToOne(b)
)
```turns each of the rgb to least signficant
but it seems like all it does is set the number to an odd number 🤔 
and I don't understand it when I see this image:
obtuse gale
#

if the least significant bit is zero (if the number is even), it sets it to one (by adding one, because 0 + 1 = 1)

#

if it's odd, then it already is set to one

#

this is literally the dumbest and least efficient way of doing pixel | 1

half harness
#

but how is that the least significant bit if all it is is just the bit?
whats the most significant bit then 🤔

obtuse gale
#

the most significant bit is the right-most one (of each color.. section?)

half harness
#

idk

#

what if pixel is 3

#

not 0 or 1

#

since i think it can be 0 -> 255

obtuse gale
#

the lsb is 1

half harness
#

OHHHHH

#

OHH

obtuse gale
#

and 3 % 2 = 1

half harness
#

TY

obtuse gale
#

np

half harness
#

OH

#

🤦

half harness
#

#959324357090484294 message
@wind bolt
add build/ .idea/ .gradle/ FeelingLucky.imlto .gitignore then run ```bash
git rm -rf --cached .
git add .

#

build = caches from building, so not needed in the repo
.idea = IntelliJ stuff/settings, so shouldn't be needed (ig some cases if you want to share like run configurations and all that stuff there are stuff you can un-ignore in .gitignore, but if not you should ignore it all since it's IDE-specific stuff)
.gradle = pretty sure it's some gradle cache stuff
FeelingLucky.iml = IntelliJ project data - same reason as .idea

latent dirge
#

nerds

#

touch grass

hot hull
#

Ayo you go touch some grass

fossil quarry
#

how to apply

#

for a job

#

my frnd send me link to here

#

but didnt told how to apply

boreal needle
#

i think you may be in the wrong place

fossil quarry
agile galleon
#

Does Bukkit Vector#multiply return the multiplied vector or the old one

distant sun
#
    /**
     * Performs scalar multiplication, multiplying all components with a
     * scalar.
     *
     * @param m The factor
     * @return the same vector
     */
    @NotNull
    public Vector multiply(int m) {
        x *= m;
        y *= m;
        z *= m;
        return this;
    }```
prisma wave
#

I LOVE MUTABLE VECTORS AND LOCATIONS

distant sun
#

vectors and locations are mutable for some reason 🔍

obtuse gale
#

yeah

#

reason is bukkit sucks

tranquil crane
#

Locations and Vectors being mutable brings me agony

#

You ever enjoy doing particle math and suddenly it just spins out of the plane of existence because you forgot to add in a .clone()

distant sun
#

I can't really think of a need for them to be mutable

#

actually I kinda do, but still, I have a feeling it causes more problems than solve

tranquil crane
#

I have a gif of this somewhere that's somewhat humorous I need to go find it now

obtuse gale
#

it's really dumb because it's mutable but every time you get an entity's location and such you get a copy...

distant sun
#

Imagine modifying the location and have the entity teleport around xD

ocean quartz
#

That used to be a thing with armorstands

#

For a very short time

tranquil crane
#

It was supposed to just rotate in a circle under the player but instead decided to discover a new plane of existence because I forgot to clone before transforming it

obtuse gale
#

amogus

agile galleon
#

that was my issue rn

#

Player#getDirection returned the vector but multiplied by 2 because i did that earlier

#

like

#

wtf

#

i dont want to change that?

half harness
#

¯_(ツ)_/¯

#

i remember this happening on one of the updates but i forgot the name of the feature

#

nvm found it... it's called Experimental UI now

#

although

#

it does seem pretty experimental 🥲

ocean quartz
#

Yeah it breaks on some stuff

digital shuttle
#

@primal juniper

peak fern
#

I have a perm like
myplugin.swordmultiplier.*
how can I get the value of * here?

boreal needle
#

the value is *

#

it implies that any value where the * is will be true

obtuse gale
#

you don't "get the value of it", the wildcard is handled (or not..) by the permission implementation, so if in luckperms you have foo.bar.* set to false and in your plugin you check for foo.bar.baz or foo.bar.baz.qux, luckperms will evaluate both of those to false

peak fern
#

and I want to get that value (10 in my example)

boreal needle
#

you have to expect a specific value and check for it

#

some specific plugins might have additional api for handling it but it's not cross platform

obtuse gale
#

meta nodes 🥺

boreal needle
#

by "specific plugins" i mean luckperms because who doesn't use it these days

peak fern
#

I'm using lp, should I implement it?

obtuse gale
#

it has a really extensive API that lets you do from the simplest of things to the most wild things you didn't even think were possible in luckperms

#

Vault has support for "values" too if you want to keep it extremely simple and interact through Vault API instead, LP API might need a bit of relearning how permissions work

tranquil crane
#

thanks copilot

obtuse gale
#

lol

stone linden
#

Is there any way to edit a datawatcher and send it in a PacketPlayOutEntityMetadata without actually effecting the real entity?

#

Because as far as I know, it requires modification to the data watcher before it can be sent in the packet

#

I've made the issue slightly better by immediately re-editing the datawatcher to have the original values after the packet has been sent, however its not perfect

inner umbra
stone linden
#

Oh Interesting.

#

And that would still send the correct packet to the player?

#

As if it were the original entity

inner umbra
#

Should but not sure. Doesn't hurt to try it.

stone linden
#

Ill try it, thanks

#

Stupid question, but is there a method to clone an entity?

#

Cant seem to find one

inner umbra
#

I think .clone()

stone linden
#

Hmm, doesnt seem to exist, Ill find a way though

#

Thanks for your time

inner umbra
#

Np

#

Let me know if it works

stone linden
#

Will do

inner umbra
#

Might have to clone manually. Create a new entity object and set its data as the data of the entity you're cloning.

stone linden
#

Yeah that worked well enough, although I had to do it in a strange way lol

#

Thanks again for the help

inner umbra
stone linden
#

Oh I didn’t even notice that this was the wrong channel

stone linden
inner umbra
#

Either channel is fine.

ocean quartz
#

Well kinda, this channel isn't really for support, it's more for random dev conversations

sweet cipher
#

Like favorite IDE arguments

fresh birch
#

some1 good with maths

#

i need to find a formula

#

for a custom XP

potent nest
#

f(x) = x^x

fresh birch
#

how this is calculated

#

XP needed

#

saw a formula 10000+2500*(level-2)

#

but not matching

#

the levels

#

still not matching

#

at the table

#

ive tried it

static zealot
#

but are you sure the table is correct?

#

if yes, then they probably updated their equation