#dev-general

1 messages · Page 19 of 1

cursive jolt
#

We live in a society.

crude cloud
#

no I don't

long dagger
#

I think of it like a regular crime. If you helped with it without knowing it was a crime or was going to turn into a crime, you arent in trouble, but if any mention of you knowing it was happening and going along with it, that instantly makes you an accomplice and subjects you to the hands of your countries legal system (at least thats the rule in the U.S.)

#

but I think as long you werent the one to pirate it, you are fine. and once it is pirated, I think it is fine, like, owning it is fine, but getting it isnt (I hope that makes sense, it also could be wrong)

cursive jolt
#

Well when you buy a premium plugin you should get the right to modify and redistribute it

#

It’s not really piracy, piracy is more ethical than purchasing premium plugins

half harness
#

piracy is more ethical than purchasing premium plugins

#

🤨

cursive jolt
#

Wish there was a better site dedicated to freedom over just purely leaking for profit

#

Maybe remapping and uploading to github

cursive jolt
#

But GitHub sadly blindly follows DMCA’s

long dagger
cursive jolt
#

Leak proof != crack proof

long dagger
#

I meant both

#

here

#
Polymart will automatically and uniquely obfuscate and fingerprint your premium .jar files. This means all strings (including placeholders like %%__USER__%% and %%__VERIFY_TOKEN__%%) are encrypted and obfuscated.

Obfuscating your code deters would-be plugin leakers — it makes it hard to make sense of your de-compiled code, and even harder to find any of the secure Polymart %%__PLACEHOLDERS__%% that you use.

Each obfuscated file download is uniquely fingerprinted, so it's easy for Polymart to find out who leaked your plugin, if you happen to find a copy online. This won't interfere with any dependencies at all, and should have no effect on performance.

The best part? All you need to do is check a box on your resource page. That's it! Polymart handles the rest.
#

so it wont stop it from running, it will just help find out who leaked it. The first half is just regular obfuscation. and I guess the 2nd half is just that they are claiming that if it gets leaked they will do something (idk what)

cursive jolt
#

Polymart is more of a hellhole than BBB

#

It’s where the people like yoonicks who got kicked off of mcmarket for DDOS'ing servers to promote his own plugin, plus also included a rat in his plugin.

#

See the aegis dev

#

This community is fucked that these people can still exist and sell software. They sold literal malware and committed crimes to advertise their plugin.

half harness
#

although you make it sound like polymart has its own server where you can verify - however I don't think spigot has that feature

long dagger
long dagger
long dagger
wind patio
#

Had an argument with him quite a while back

obtuse gale
#

If you rename an item in the anvil, then you can sell it indefinitely through deluxmenus)

obtuse gale
#

'26':
material: honey_bottle
slot: 25
amount: 1
display_name: '&aБутылочка мёда &ex1'
lore:

  • ''
  • '&aЦена продажи: &e75$'
  • '&bЛКМ&a, чтобы продать'
  • '&bПКМ&a, чтобы продать 9 слотов'
  • ''
  • '&8> &aБаланс: &e%xconomy_balance_value%$ &8<'
    left_click_requirement:
    requirements:
    item_check:
    type: has item
    material: honey_bottle
    amount: 1
    deny_commands:
    - '[message]'
    - '[message] &6&lМагазин &a&l▷ &cУ вас нет такого предмета, либо их недостаточно для продажи!'
    - '[message]'
    left_click_commands:
  • '[givemoney] 75'
  • '[refresh]'
  • '[console] clear %player_name% honey_bottle 1'
#

but i can infinity sell this, after anvill renaming

rotund egret
glossy crane
#

@frozen magnet

humble prism
#

yalls opinion on pufferfish+

#

they say they are gpl compliant due to their patch system?

half harness
#

I thought gpl compliant meant that it has to be OS?

#

Patch system is to prevent like DMCA, no?

#

For like copyright or smth legal

humble prism
crude cloud
#

GPL and the patch system are completely unrelated things

half harness
#

That's what I was thinking

humble prism
#

whenever u launch pufferfish+ it downloads the patches from a external server /shrug/

crude cloud
#

yeah and that has nothing to do with GNU GPL, it's to do with Minecraft EULA

#

Kevin is just an a-hole

half harness
#

O

rotund egret
# half harness O

I don't know if your about me has anything other than "Hello there", but I can't see past that.

#

Discord lets you make really big about-me's and then hides the bottom of it for some reason

humble prism
rotund egret
#

Yeah, it's honestly one of the more frustrating parts of discord.

#

Mostly the fact that I can see when a user puts too much in there and I know they don't know 😩

half harness
#

Lol

#

Although

#

If u open the profile window

#

U should be able to see everything

rotund egret
#

I cannot on yours

half harness
#

Oh

#

On mobile u can at least

rotund egret
#

Oh really? lemme look

#

Wow, very cool

prisma wave
half harness
#

Ye

distant sun
#

Ha ha sure @prisma wave

#

I've seen trash devs selling the source for 50$ to 200$

prisma wave
#

Well obviously people aren’t gonna follow the license

wind patio
#

so, pufferfish fork = kotlin = bad?

rotund egret
#

People break rule, so rule isn't real

prisma wave
#

Although I believe BBB is enforcing GPL compliance for server forks now

prisma wave
wind patio
#

we've been using pf fork for a while now, but if it has bad rep then I might as well switch to paper as it is fingerguns

rotund egret
prisma wave
#

they might be involved too idk

#

they probably should be

rotund egret
#

I don't think most plugin devs are considered buisnesses

wind patio
#

the BuiltByBit is such a weird name
they should of changed to a 'faucet' or something like that

prisma wave
#

What?

#

ngl suing every shitty plugin and fork developer would go hard

rotund egret
#

TRUE

prisma wave
#

If I ever become a millionaire that’ll be what I spend my money on

rotund egret
#

Frivolous lawsuits

prisma wave
#

precisely

rotund egret
#

You'd get so many tossed out in the states tbh

prisma wave
#

With the only goal being to annoy

wind patio
prisma wave
prisma wave
#

I’m not impressed

rotund egret
prisma wave
#

Not yet

wind patio
rotund egret
#

A+

#

They even explained a bug in the javadocs

wind patio
#

I like the 'doThat'

#

// : )

rotund egret
#

That is actually based

wind patio
#

indeed

prisma wave
#

lmao

#

That is wonderful

#

doThat

wind patio
#

the sense of being a boss

#

telling the code to DO THAT

true cedar
#

I need help i cant open a dll file

half harness
#

Uh

#

They're not meant to be opened

true cedar
#

it says "You are attempting to open a file type 'System flie' (.dll)"

cursive jolt
#

why are you trying to open a dll file?

true cedar
#

working on a sever and my friend sent me a dll to put on it and open it

half harness
#

🤔

#

Ask ur friend how to open it

true cedar
#

lol

cursive jolt
#

why would your friend send you a dll?

#

why is your server on windows

half harness
#

Lol

solemn laurel
#

when the LuckPerms.dll cant be opened 🙁

cursive jolt
#

probably a virus, virustotal it

half harness
#

Paper.dll

prisma wave
#

dlls are not executables

#

they are quite literally impossible to run

true cedar
cursive jolt
#

yeah, exactly.

prisma wave
#

using windows isn't exactly relevant

#

whatever the answer is, it's not gonna help

half harness
#

Dll file 👎

prisma wave
#

thanks for that

#

very good contribution

true cedar
#

Bruh my friend is dumbass he says oops that was a dll make it a bat I was scripting it fast I did not see that

half harness
#

What

#

How

#

Do you mistype bat as dll

true cedar
#

idk

prisma wave
#

that does sound a little suspicious

half harness
#

Send us bat file

#

Maybe

#

If u wanna be sure it's no suspicious

true cedar
#

no its a start for the sever

half harness
#

Yea but bat files are powerful

true cedar
#

making a gmod server

half harness
#

Oh

#

OK then idk

true cedar
# half harness Send us bat file

this is the script on it


cls
echo Protecting srcds from crashes...
echo If you want to close srcds and this script, close the srcds window and type Y depending on your language followed by Enter.
title srcds.com Watchdog
:srcds
echo (%time%) srcds started.
start /wait srcds.exe +host_workshop_collection 2796177013 +r_hunkalloclightmaps 0 -console -game garrysmod +gamemode darkrp +map RP_EvoCity_v2d +maxplayers 16
echo (%time%) WARNING: srcds closed or crashed, restarting.
goto srcds```
prisma wave
#

ok that's fine lol

half harness
#

Seems fine

cinder flare
#

oh yeah that's chill lol

prisma wave
#

god knows how he got that as a dll

half harness
#

The dll file

#

Lol

true cedar
#

lol

#

hay it works too

pastel imp
#

Uhm quick question, I have a bot that serves as a wiki for a game but was planning on expanding it to other games since that game died a bit. Would it be a wise idea to have several games in a single bot? each game having their own command with subcommands for that game.. or would that be too confusing? I didnt wanted to lose the guilds I have already...

eternal compass
#

and only register commands in servers for games which they're using

pastel imp
eternal compass
#

This is true, but, that's complicated to some people

pastel imp
#

Also dont guild commands have a limit?

eternal compass
#

yeah

#

it's like 50 or something

#

same as application commands

#

*global

pastel imp
#

I mean, limit to number of guilds

eternal compass
#

no

pastel imp
#

oh so even with Thousands, it wouldnt change?

eternal compass
#

Either strategy could work, I would just worry that non-experienced server admins would get overwhelmed and remove the bot

eternal compass
pastel imp
#

hmm

#

idk about overwhelmed

#

each game would have its command so for ex.
/mc
/roblox
with each having their subcommands

eternal compass
#

Yeah yeah, I get the idea

#

my only concern is people would see all these commands they don't need

#

and remove the bot

#

but who knows

pastel imp
#

ye...

#

its a fair concern

eternal compass
#

my largest bot is only at 25 servers, so I don't have that much experience

pastel imp
#

mine is at 465

#

xd

quaint isle
#

i have a question but I'm not sure if it counts as "configuration help" 😟

pastel imp
#

and if I disable all of them and wait for them to enable them, then that can also be an issue

#

lol

eternal compass
#

register a setup command at the beginning, and maybe send a message in some sort of private channel you find

#

(eg. look for the community channel that gets discord updates)

pastel imp
#

maybe in their dms too?

eternal compass
#

and if that's not there, the channel with the least people

#

that too, yeah

#

You'd need audit log privledges to know who though

pastel imp
#

so disabled by default?

eternal compass
#

imo yeah

#

just a /setup command

#

but that might just be me

pastel imp
eternal compass
#

mhm

#

as far as I know

pastel imp
#

hmm okay, I quite like the idea

#

the issue is, what if a new game gets added

#

automatically disabled too?

eternal compass
#

yeah

pastel imp
#

maybe have a way to notify admins?

eternal compass
#

yeah that's a good idea

#

a (optional) bot updates channel

#

that literally just follows your server's channel

#

for updates

pastel imp
#

although if they already follow it via discords feature

#

they would have double

#

lol

#

unless you can also check that with the api

#

wait can you even register guild commands and inregister them without restarting the bot?

#

also, werent guild commands unregistering bugged?

eternal compass
#

restarting the bot has nothing to do with registering commands

#

those are seperate things

#

unless you use an API that combines them

pastel imp
#

I use jda so no idea

rotund egret
#

JDA does the same thing

pastel imp
#

as in combines them or doesnt?

rotund egret
#

Doesn't, they're two separate things.
Technically you could register commands when you restart, but that's a overkill

crude cloud
#

you could even make a command to un/register commands!

#

of course that implies having registered it beforehand

rotund egret
#

Thanks for the clarification

half harness
lavish notch
#

@dark veldt What placeholders do you need?

dark veldt
#

oh hmmm, one of the placeholder is to rate players based on armor+weapons they have with what enchants

#

like %player_power% to use for levelled mobs, so mobs can be levelled up according to armor players have in inv

wind patio
#

um

#

any staff around?

#

@distant sun I choo-choo choose you

#

(sorry for pingpong)

distant sun
#

done

wind patio
#

here's a croissant as a reward

#

🥐

queen saffron
#

Can I have one too?

wind patio
#

fresh out

queen saffron
#

Aight bet

ruby dew
#

Here’s your mutated croissant

#

That will be 4.99

oblique heath
#

andre spotted

wind patio
#

The spigot review resource section is a disaster

#

Some guy left 4/5 star review because it didnt support the latest version. 🤠

ruby dew
sly sonnet
#

Since when spigot resource reviews are relevant?

ruby dew
#

lol you can literally make hundreds of alts and give 1 star review

#

to absolutely trash that one plgin

distant sun
wind patio
#

💀💀💀

oblique heath
#

i've been pretty lucky with reviews so far

distant sun
#

Ive had another bad review regarding the same subject, people not being able to understand that MM is the future and I won't add support for legacy color codes :))

sly ibex
#

Why do the channels reset if I may ask?

#

What's the point in doing so?

humble prism
#

gives other people a chacne to be seen

#

i guess

sly ibex
#

sindssygt, en dansk programmør

#

og entreprenør

#

GG

crude cloud
#

gg!

humble prism
sly ibex
#

ja

humble prism
#

jeg går ind i it-support/it ungdomsudannelse, er 6 måneder fra at gå ud af skole i 9 klasse

sly ibex
#

Ahva

#

Går du i 9. klasse?

#

Ung entreprenør

#

God stil 🙂

humble prism
#

tjener fine penge

#

er op på 3k danske?

#

på et par måneders on-off

#

med nogle fine store kunder

sly ibex
#

Godt klaret 👍

humble prism
#

fik købt mit bruge arctis pro headset for 4-5 timers arbejde 😄

sly ibex
#

Hvad er det for noget du laver?

#

Server set ups?

humble prism
#

forskelligt

#

server configuration og setups (setups er mere sjældne og er smertefulde)

humble prism
sly ibex
#

Nice, ung hustler

humble prism
humble prism
sly ibex
#

Gode skejs for en i 9.

#

Så behøver du ikke arbejde i fakta

crude cloud
#

guys this is an english only server 🤓

prisma wave
#

🤓🤓🤓🤓

sly ibex
distant sun
#

@crude cloud what was the alternative for jda, d4j?

prisma wave
#

Or javacord

#

But d4j is based

#

Reactive streams 😌

crude cloud
#

d4j my beloved

pastel imp
#

jda better ngl

wind patio
#

TRUE

prisma wave
#

false...

rotund egret
#

Using Kotlin I particularly like JDA with the kotlin extensions.
Some of the other libs makes it a lot more bearable to use.
I like the DJS lib a lot, but I don't fancy JS particularly.

prisma wave
#

djs would be better if it didnt make a million breaking changes every minor update

rotund egret
#

I don't like the build-system Js has either.
I feel spoiled with gradle 😌

prisma wave
#

true the js ecosystem is one of the worst things ever created

#

which is a shame because TS as a language is pretty nice

#

until you get some exceedingly complex type

pastel imp
#

JDA + JDA Framework

#

best

prisma wave
#

JDA + JDA

pastel imp
#

nha

#

frameworks make life easier

prisma wave
#

?

ocean quartz
prisma wave
#

at least that's a major update

#

djs will break shit in a patch version because nobody in the js ecosystem follows semver

ocean quartz
#

During the beta though every single one would break everything

#

But again, it's beta

pastel imp
#

also somehow I only discovered lombok annotations yesterday 💀

rotund egret
#

Undiscover them

pastel imp
rotund egret
#

Lombok bad

pastel imp
#

bruh what?

#

in what regard?

crude cloud
#

also lombok is for closeted kotlin users

rotund egret
#

temporary pin until piggy makes a faq

crude cloud
#

just use kotlin for that matter

rotund egret
#

but relocating kotlin is hard

#

😩

pastel imp
#

I refuse to use kotlin

#

👀

rotund egret
#

Why? It's a very nice lang

pastel imp
#

ik

#

but I only recently got used to java, and dont wanna go on switching to another lang just like that

#

idk, besides that, looking at kotlin code scares me

#

lol

rotund egret
#

What about kotlin code is scary?

#

It's pretty straightforward for the most part

ocean quartz
crude cloud
#

it doesn't have @Getter and @Setter !!!

pastel imp
#

me not being familiar with it ¯_(ツ)_/¯

crude cloud
#

lombok is literally cancer

pastel imp
rotund egret
#

I mean it introduces the elvis operator, which is a nice addition

#

:?

#

or the otherway, Idk

#

?:

pastel imp
#

which does what

rotund egret
#

It's a null-check basically.
If the left side is null, it gets the right-hand value

ocean quartz
pastel imp
#

sooo getOrDefault indirectly?

ocean quartz
#

Not exactly

pastel imp
#

(en2do)

ocean quartz
#

For example:

val test = nullable ?: return

Equivalent to

if (nullable == null) return;
var test = nullable;
pastel imp
#

hmm interesting

#

I mean, I do know kotlin is pog

#

I am just scared to make the change to a complete new lang, besides, I do Java in school (although sadly just basic stuff)

ocean quartz
#

That's understandable

pastel imp
#

eitherway, scared to make the change, scared to relearn everything and scared to confuse stuff in java with kotlin vice versa

#

it probably wouldnt affect anything at school

#

since java I do at school I already knew years ago lol

#

dont even know where to start

prisma wave
#

u dont need to relearn everything

#

theyre very similar and fully compatible with each other

prisma wave
#

wdym wdym

#

what's unclear about that

pastel imp
#

does that mean for ex. mc plugins coded in kotlin fully work in bukkit? without any extra steps?

prisma wave
#

yes of course

#

that's true for any jvm language

pastel imp
#

hmm ok

rotund egret
#

scala plugins here we come

prisma wave
#

based!

pastel imp
rotund egret
#

Groovy

prisma wave
#

scala, clojure, groovy, jython, jruby, frege, probably many more

pastel imp
#

groovy is also jvm?!

prisma wave
#

elara soon

#

yes

rotund egret
#

I didn't know jython existed, and I'm scared

pastel imp
#

same

prisma wave
#

jython is truly something

#

ive heard stories of servers writing their entire stacks in jython

rotund egret
#

Does it perform better in a JVM environment?

prisma wave
#

probably

#

almost certainly actually

#

normal python performance is not very good

rotund egret
#

Right

static zealot
#

Hi. I'm back

rotund egret
#

Whale...

crude cloud
#

You could say you're having a whale of a time

static zealot
brittle leaf
#

🐳

wind patio
#

bad at math
help me calc this real quick

#

I'll give a croissant as a reward

#

(chatgpt is dead, can't ask 😦 )

rotund egret
#

Calc what

wind patio
#

Level function

rotund egret
#

oh I see

wind patio
#

based on the amount of the XP player has, which level he should be

distant sun
#

for (i = 0; i < max_level; i++)

wind patio
#

I used

int level = (int) Math.floor(0.1 * Math.sqrt(exp));

int levelStart = level * level * 100;
int levelEnd = (level + 1) * (level + 1) * 100;

before

#

decided to adjust the bounds a bit, now my brain hurty from math

#

FLOOR(0.1 * SQRT(E5 + 1))?

distant sun
#

does that work? I've tried 0.1 * sqrt(20000) and the result is 14, while 20k exp should be lvl 13 according to your sheet?

wind patio
#

the code is what I used prior to adjusting

distant sun
#

what exactly did you adjust?

wind patio
#
int levelStart = level * level * 100;
int levelEnd = (level + 1) * (level + 1) * 100;

to

int levelStart = level * (level + 1) * 100;
int levelEnd = (level + 1) * (level + 2) * 100;
#

and the question is
int level = ?

pastel imp
#

it's an equation no?

#

lol

wind patio
#

yes

pastel imp
#

so just say levelStart is 1

#

make the equation solve on level

#

and voila

agile galleon
#

?

pastel imp
#

or wait

#

your

#

ok

#

ignore that

wind patio
#

im too tired to solve basic math 💀

agile galleon
#

there should be an equation in mc src, right?

wind patio
#

hoh

agile galleon
#
    public static int getLvlForXP(int xp) {
        if (xp <= 255) {
            return xp  / 17;
        }else if (xp > 272 && xp < 887) {
            return (int) ((Math.sqrt(24 * xp - 5159) + 59) / 6);
        }else if (xp > 825) {
            return (int) ((Math.sqrt(56 * xp - 32511) + 303) / 14);
        }
        return 0;
    }``` found this
wind patio
#

no, it's not based on in-game experience

distant sun
#

that is not for minecraft xD

agile galleon
#

what thef fucj

#

hold up what

wind patio
#

it's a custom level system

agile galleon
#

what

#

then get its equation lol?

wind patio
#

i know right

agile galleon
#

or are you making this shit up

wind patio
#

the question was help me solve this simple problem that my monkey brain cannot

rotund egret
agile galleon
#

yeah

#

bro

half harness
#

does the first column not represent the level?

wind patio
#

plaintext

#

B col

agile galleon
#

he wants to reverse that shit, right?

wind patio
#

basically

#

yes

half harness
#

i am so confused

wind patio
#

yeah I don't know how to explain it more clearly

#

it does represent level, but I just wrote it in, it's not calculated from the amount of XP or wtv

pastel imp
#

wait what's exactly the purpose here? to create a good formula for a good xp system?

half harness
#

so level 1 = 200 - 599 xp

#

thats what i was thinking

#

also just steal dev den code ez

pastel imp
#

use HelpChat's formula

#

lol

half harness
#

HelpChat's is private i think

pastel imp
#

it's quite decent

half harness
#

dev den isn't

pastel imp
half harness
#

😮

pastel imp
#

👀

half harness
#

oh wow a whole graph

wind patio
#

💀 well yeah I know I could of just yoinked someone elses calculations

#

but wtv

wind patio
#

Ig it will do

rotund egret
#

Wasn't that a prediction and not the actual formula

half harness
#

yes

pastel imp
rotund egret
#

But was rendered "pretty close"

prisma wave
#

Worked though

prisma wave
pastel imp
prisma wave
#

not to leak anything but i believe barry uses some sort of loop whereas our formula was constant time

rotund egret
#

That would make sense

half harness
#

why is it so complicated

#

its not like it's exploitable

rotund egret
#

Because of what BM just said

pastel imp
#

technically could

prisma wave
half harness
#

👍

#

also bm

#

what happened to /rolecolour

prisma wave
#

Because in cube’s own words, barry is a mess

#

idk

half harness
#

while you're here

prisma wave
#

maybe perms broke when I banned the bot

rotund egret
#

You what

half harness
#

lol

pastel imp
#

lmao

#

god I am getting old

rotund egret
#

You are a child

half harness
#

no you're not

pastel imp
#

my first message here was sent the 08/16/2018 10:08 PM

pastel imp
half harness
#

this is mine

agile galleon
#

Is the equation still needed?

rotund egret
#

I don't think I need to

half harness
#

i am still confused on what the equation is for

#

bam i got the equation

agile galleon
#

cause i might have found something xD

prisma wave
pastel imp
prisma wave
#

I think

agile galleon
half harness
agile galleon
#

what you want me to do bruh

prisma wave
rotund egret
half harness
#

dont u just reverse it

rotund egret
#

Cryslycer 😌

wind patio
wind patio
prisma wave
#

Dare i ask why when you could just store it?

wind patio
#

culture

#

I could but am i gonna

agile galleon
#

yeah just reverse it

rotund egret
#

Honestly levels are just a way to make a big number a smaller number.
Just make the xp the level

prisma wave
half harness
#

idk

agile galleon
#

the equation

half harness
#

ignore me

prisma wave
#

you can’t just magically pull an inverse function out of nowhere

wind patio
#

sorry for all the ruckus, I'll stick to one of the two suggestions

prisma wave
#

DO NOT ask questions ever again

wind patio
#

I wish discord added a way to pause gifs

compact perchBOT
#
Invalid Usage!

=purge <num>

static zealot
#

oh

#

lmao

prisma wave
#

?

static zealot
#

I didn't know it worked with / as well

prisma wave
#

I did

static zealot
prisma wave
#

/purge

#

Trivial

agile galleon
#

why are we pruging this now lmao

wind patio
static zealot
agile galleon
#

-.-

#

what the fuck is up with me today

#

i even saw this shit

#

lmao

static zealot
#

haha

#

@wind patio are you alright?

wind patio
#

but yes, I'm good

static zealot
#

nice

half harness
#

wow

#

@wind patio

#

chatgpt is smart

#

In order to find x, you would need to solve for x in the equation y = x(x + 1) * 100.

One way to do this would be to first distribute the 100 on the right side of the equation, giving y = 100x + 100x^2.

Then you could rearrange the equation to get 100x^2 + 100x - y = 0.

This is a quadratic equation, which can be solved using the quadratic formula:
x = (-b ± √(b^2 - 4ac)) / 2a

where a = 100, b = 100, and c = -y.

So x = (-100 ± √(10000 + 4100y)) / 200

You would then need to substitute the value of y into this equation to find the values of x.

Please note that in most cases the equation will have two solutions, one positive and one negative, and the solution will depend on the value of y.

#

it works! 😮

static zealot
wind patio
#

In order to find x, you would need to solve for x in the equation y = x(x + 1) * 100.

yeah, I was thinking about that, but I was too tired to even try to start solving

wind patio
half harness
#

ha

#

i already gave u the answer/equation

wind patio
#

though it's ?wrong?
or am I dumb

#

=FLOOR((-100 + SQRT(10000 + 4100*E5))/200, 1)

half harness
# wind patio though it's ?wrong? or am I dumb
#

¯_(ツ)_/¯

agile galleon
#

idk what that is but its wrong

half harness
#

lol

long dagger
wind patio
#

exam month for me

long dagger
# wind patio though it's ?wrong? or am I dumb

I dont fully remember how to use this, but I used this function in the past for something similar. X1 X2 and X3 are the 3 point's x values, and Y1 Y2 and Y3 are the point's y values. I would put X as the level and Y as the level end/start (idk which one you want).

(y1-y2)/(y1-y3) = (e^bx1-e^bx2)/(e^bx1-e^bx3)
Kind of complicated and will take some calculations, but worked for me (idk how tho) so good luck.

crude cloud
agile galleon
#

Barry messed up

crude cloud
#

barry you rat bastard

rotund egret
#

It's a feature

crude cloud
#

yeah found it lol

#

nice

#

love it

ruby dew
#

i need help

compact perchBOT
#

There is no time to wait! Ask your question @ruby dew!

ruby dew
#

Please i need help

#

With my life

brittle leaf
#

do you want help?

ruby dew
#

yes, please.

#

I am glad I am moved to a private channel, when im literally a new discord user.

pastel imp
#

uh you are tier 2

#

so def. not a new user

oblique heath
#

you joined here 3 months ago

#

x.x

queen saffron
#

He's em

#

Trolling

ruby dew
#

no, i swear the apbroh ...

ruby dew
#

but like I really need help with the apbroh

#

just help im new user because of that

pastel imp
#

thoughts on having social medias for your discord bot to both promote it and announce stuff? (Instagram, Twitter, etc) Random thought I had lmao

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.

pastel imp
#

what?

#

dont mini mod thx

#

@ruby dew

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.

ruby dew
#

im not, he is^^

#

report him for minimodding bro

pastel imp
#

sure you do know that logs exist

#

right?

crude cloud
#

Requested by: WanderingPalace

ruby dew
#

Requested by: WanderingPalace • not-discord

#

bro

pastel imp
#

bruh...

ruby dew
distant sun
#

What was the name of that app that you can use for others to access something hosted in your computer (minecraft server, website) without exposing your IP? You run a command in a CLI and it creates some kind of address from their domain (<random code>.domain.com)

Edit: https://ngrok.com/

brittle leaf
graceful bluff
#

guys there is no normal general

#

just like the capital of brazil

#

they put the capital far in land so people stop living in the coast

#

theres no general so people talk on all channels

brittle leaf
#

#minecraft is the normal general if its minecraft related, then #off-topic for anything not so minecraft related

graceful bluff
#

ok but where is the real gheneral

#

gneeral

brittle leaf
#

ig off-topic is

graceful bluff
#

if i talk about plugins in off topic they wont ping me and say #plugin-updates will they

brittle leaf
#

if you wanna talk about plugins depending on the context then one of the general plugin channels or minecraft

rotund egret
brittle leaf
#

where you type depends on the context of your message

graceful bluff
#

11738 people said something with depend in this server

distant sun
rotund egret
#

This is about Minecraft

graceful bluff
#

3,336 people said depend in this channel

distant sun
#

This channel is for development discussions

graceful bluff
brittle leaf
#

attempting to unify my many inventories is fun, maybe using a framework would be better but the one i found requires you to use xmls

distant sun
graceful bluff
#

thats not general

distant sun
#

Thats all you get

brittle leaf
#

or atleast i think thats correct

rotund egret
#

Other way around

oblique heath
#

#minecraft is actually exclusively for non minecraft related talk

#

common misconception

brittle leaf
#

is that because people use the wrong channels?

graceful bluff
#

i love ecloud

#

whilst i develop my plugin in minecraft

oblique heath
#

i also love that service while developing my puglins

brittle leaf
#

is that english?

graceful bluff
#

Yep, and i had to share my server with the request-free development. the plugins i used are made for developing, wich i am now. im developing a bot and going to use its commands once im done with the minecraft plugin and turning the execution file into a offer-services device. i like using my offer-services after im done with my request free minecraft development and plugins

oblique heath
#

smells like gpt-2

graceful bluff
#

who is gpt?

rotund egret
#

gpt-4 now with bigger circles

ruby dew
oblique heath
#

either gpt or literal circles being drawn on their phone keyboard

brittle leaf
#
@Override
    public LunixHolder getHolder() {
        return new LunixHolder(getTitle(),getSize(), LunixInvType.ARMOR);
    }

if i have a method like that inside my inventory class and i instance the class only once, will it create a new version of the object every time?

graceful bluff
oblique heath
graceful bluff
oblique heath
brittle leaf
#

basically im trying to have all my inventories stored in one map, but i want to create a new inventory and holder object everytime i call the get inventory method

ruby dew
#

you laughed in your heart too?

brittle leaf
rotund egret
#

constructor moment

oblique heath
#

java moment

graceful bluff
#

im playing with fire

oblique heath
#

as long as the fire consents

graceful bluff
#

im putting this shady product with 7 hazard symbols on the fire

#

the fire became green

#

its getting purple

#

should i put more tablets in the fire

rotund egret
#

That's a sign

graceful bluff
#

i touched it help i got an instant blister

#

the fire is purple

#

its so big

#

i tried to blow it

prisma wave
#

blister mitten

graceful bluff
#

me risking my life using YT2mate to download a youtube video knowing theres a 76% chance ill get traumatized when the ad pops up

brittle leaf
#

use an adblock browser extension and you cant be traumatized then, also #off-topic

hazy cape
#

Hi, how to make run() start automatically please (Python)

#
from pynput import mouse
from threading import Thread
from time import sleep

LeftOn = False  

class Test(Thread):  

    def run():
        print("RUN - ON")
        while True:
            if LeftOn:
                print("Ok")
                sleep(0.50)

    def on_click(x, y, button, pressed):
        if button == mouse.Button.x2:
            if pressed:        
                print(str(button)+" pressed")
                LeftOn = True
            else:
                print(str(button)+" Released")
                LeftOn = False
        print(LeftOn)

    with mouse.Listener(
        on_click=on_click) as listener:
        listener.join()

    listener = mouse.Listener(
        on_click=on_click)
    listener.start()
pastel imp
#

💀

#

Python

#

(no idea)

hazy cape
#

I hate python

pastel imp
#

why are you coding in python then

#

tf

hazy cape
#

Its better for what i want

pastel imp
#

(also there is no X is better than Y in most cases)

hazy cape
#

Autoclicker

#

but with specific features

pastel imp
#

eh

half harness
#

ask chatgpt

#

👍

pastel imp
#

suppose python is indeed indirectly good for that

steep portal
#

Where can I report bugs for DeluxeMenus?

pastel imp
hazy cape
#

i'll try with chatgpt ty

pastel imp
#

@eternal compass sorry for ping, but think it might be useful for you to know. I am unable to do the /setup system with per guild commands etc, since it would literally remove some features from app directory... like most used commands which only show if they are global commands 😭

eternal compass
#

Ah, unfortunate

#

I still think there should be an APi for hiding global commands per-guild

pastel imp
#

yes, you can disable it in the integration menu of the guild

#

although quite unsure if you can make the bot request for it to be hidden by default?!

cinder flare
#

I'm on mobile so I can't do code formatting but those are underscores

#

Okay got it

hazy cape
#

thx i'll try it

distant sun
vestal bobcat
#

Just wondering if there’s a plugin that I could have /inv 1,2 ect.

vestal bobcat
#

Like I have different inv one for moderation and one for survival

distant sun
#

I work on a paste system, similar to barry's, where I want to convert for example pastebin links in paste.helpch.at links.
How would I access all links, wait for all CompletableFuture's to complete, and then send a message with all the new links?

distant sun
#

Actually, I think that this will do it listOfFutures.stream().map(CompletableFuture::join)

crude cloud
#

no

#

nooooo

#

there's a CompletableFuture.ofAll

distant sun
#

Mhm okay

#

I remember trying allOf but I cant remember why it didnt work xD

prisma wave
distant sun
subtle smelt
#

PUlse

#

i have

#

changed my ways

#

and have fixed the big ass arrow

#
public class Multisummon implements CommandExecutor, TabExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (!(sender instanceof Player)) {
            sender.sendMessage("This command can only be executed by a player.");
            return false;
        }

        Player player = (Player) sender;

        if (args.length < 2) {
            player.sendMessage("Usage: /multisummon <mob> <amount>");
            return false;
        }

        String mobName = args[0];
        int amount;

        try {
            amount = Integer.parseInt(args[1]);
        } catch (NumberFormatException e) {
            player.sendMessage("Invalid amount, please provide a valid number.");
            return false;
        }

        EntityType mobType = null;
        for (EntityType entityType : EntityType.values()) {
            if (mobName.equalsIgnoreCase(entityType.name())) {
                mobType = entityType;
                break;
            }
        }

        if (mobType == null) {
            player.sendMessage("Invalid mob, please provide a valid mob name.");
            return false;
        }

        for (int i = 0; i < amount; i++) {
            player.getWorld().spawnEntity(player.getLocation(), mobType);
        }
        String plural = amount > 1 ? "s" : "";
        player.sendMessage(amount + " " + mobName + plural + " have been summoned.");
        return true;
    }```
cinder flare
#
if (!(sender instanceof Player player)) {
    return false;
}
#

then that exposes the player variable for the rest of that function

cursive jolt
#

only on modern java versions

cinder flare
#

hence the disclaimer depending on your Java version

#

and even that's in Java 14, so if you're above 11 you very likely have it lol

crude cloud
#

eeh it wasn't released in java 14, just preview

#

means you need --enable-preview for both compiling and running the jvm

#

and that's a pita for the majority of people who barely even know what they're doing lol

forest pecan
subtle smelt
#

ty

subtle smelt
#

I want it to send a message

#

not just do nothing

#

oh oh ohhhh

#

that would make this Player player = (Player) sender; redundent

#

welp gotta change my language to level 16

#
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (!(sender instanceof Player player)) {
            sender.sendMessage("This command can only be executed by a player.");
            return false;
        }
        if (args.length < 2) {
            player.sendMessage("Usage: /multisummon <mob> <amount>");
            return false;
        }
        String mobName = args[0];
        int amount;
        try {
            amount = Integer.parseInt(args[1]);
        } catch (NumberFormatException e) {
            player.sendMessage("Invalid amount, please provide a valid number.");
            return false;
        }
        EntityType mobType = null;
        for (EntityType entityType : EntityType.values()) {
            if (mobName.equalsIgnoreCase(entityType.name())) {
                mobType = entityType;
                break;
            }
        }
        if (mobType == null) {
            player.sendMessage("Invalid mob, please provide a valid mob name.");
            return false;
        }
        for (int i = 0; i < amount; i++) {
            player.getWorld().spawnEntity(player.getLocation(), mobType);
        }
        String plural = amount > 1 ? "s" : "";
        player.sendMessage(amount + " " + mobName + plural + " have been summoned.");
        return true;
    }```
now i'm left with that
brittle leaf
subtle smelt
brittle leaf
#

you dont have to forloop through EntityType to get the entity type

brittle leaf
#

you dont

subtle smelt
#

yes I do

ocean quartz
#

lol

subtle smelt
#

watch the video I sent you

#

then you'll understand why

brittle leaf
#

EntityType is an enum, which means you can do EntityType.valueof(String)

ocean quartz
#

You're going to say why you can't or just say you can't? lol

subtle smelt
#

i'll send u the video as well

#

damn I can't send the video

ocean quartz
#

Send it here

subtle smelt
#

shut

crude cloud
#

if it's because of the equalsIgnoreCase you can do EntityType.valurOf(name.toUpperCase())

subtle smelt
#

@ocean quartz how am I suppost to send it here

crude cloud
#

copy the link

#

past it

#

hit enter

subtle smelt
#

what link

#

it's a damn video

#

on my ssd

#

not a link

brittle leaf
#

upload the video to youtube, unlist it and post the link

crude cloud
#

lol

ocean quartz
#

That you just sent on Discord which means you can copy the link of it lol

brittle leaf
#

that too

brittle leaf
#

uhh, the video doesnt explain why you cant do that

subtle smelt
#

multible mobs

brittle leaf
#

i said you dont have to for loop entity type to find the matching entity type to the string, not forloop the amount to spawn them

ocean quartz
#

What does this video have anything to do with what we're saying?

subtle smelt
ocean quartz
#

Congratz .. I guess?

subtle smelt
#

yes

#

congratiz to me

queen saffron
#

@subtle smelt

subtle smelt
#

what nova

queen saffron
#

I know the problem

subtle smelt
#

why are you pinging me

#

i was in chat the moment you pinged me

#

the ping was highly unnessesary

brittle leaf
#

still you probably shouldnt for loop something if you dont have to

queen saffron
#

Because otherwise your short attention span wouldn't see it

#

But your problem is em- yes

#

Just yes

ocean quartz
#

Enums.getIfPresent my beloved

subtle smelt
#

there isn't a problem if it works 🙂

queen saffron
#

Yes

cinder flare
subtle smelt
#

i'm use adoptium jdk

queen saffron
#

Omg I'm tired I read that as "I'm adopted idk"

subtle smelt
#

but my language keeps wanting to change based on what I do

oblique heath
#

if i were it i would also want to change

subtle smelt
#

it's better than this atleast

   @Override
    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
        if (!(sender instanceof Player)) {
            sender.sendMessage(colorize("&b&lTL &b&o: &4Only a player can execute this command."));
        } else {
            Player p = (Player) sender;
            if (p.hasPermission("server.multisummon")) {
                Player player = (Player) sender;
                if (args.length >= 2) {
                    try {
                        EntityType entity = EntityType.valueOf(args[0]);
                        int amount = Integer.parseInt(args[1]);
                        for (int i = 0; i < amount; i++) {
                            player.getWorld().spawnEntity(player.getLocation(), entity);
                        }
                        player.sendMessage(colorize("&b&lTL &b&o: &4You summoned &e&o" + args[1] + " " + args[0]));
                    } catch (IllegalArgumentException e) {
                        player.sendMessage(colorize("&b&lTL &b&o: &4This is not an entity."));
                    }
                } else {
                    player.sendMessage(colorize("&b&lTL &b&o: &e/multisummon [mob] [amount]."));
                }
            } else {

            }
        }
        return true;
    }```
brittle leaf
#

and now to reduce the amount of nested code

solemn laurel
#

paper hates me 😎 WARN Nag author(s): '[Heklo]' of 'BalancedKillRewards' about their usage of System.out/err.print. Please use your plugin's logger instead (JavaPlugin#getLogger).

brittle leaf
#

time to not sys out?

solemn laurel
#

it still works, i refuse to be nagged into submission

subtle smelt
#
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (!(sender instanceof Player)) {
            sender.sendMessage("This command can only be executed by a player.");
            return false;
        }
        Player player = (Player) sender;
        if (args.length < 2) {
            player.sendMessage("Usage: /multisummon <mob> <amount>");
            return false;
        }
        String mobName = args[0];
        int amount;
        try {
            amount = Integer.parseInt(args[1]);
        } catch (NumberFormatException e) {
            player.sendMessage("Invalid amount, please provide a valid number.");
            return false;
        }
        EntitiesType mobType = EntitiesType.valueOf(mobName.toUpperCase());
        if (mobType == null) {
            player.sendMessage("Invalid mob, please provide a valid mob name.");
            return false;
        }
        for (int i = 0; i < amount; i++) {
            player.getWorld().spawnEntity(player.getLocation(), mobType);
        }
        player.sendMessage(amount + " " + mobName + (amount > 1 ? "s" : "") + " have been summoned.");
        return true;
    }``` @brittle leaf HAPPY NOW?
brittle leaf
#

yes

#

:)

subtle smelt
#

🙂

#

how

oblique heath
#

how||dy||

subtle smelt
#

no

brittle leaf
#

:P

subtle smelt
#

:p

#

I can do that

#

but what about the smily face

brittle leaf
#

(:

#

idk

subtle smelt
#

(:

#

🙂

brittle leaf
#

it doesnt auto parse for me

subtle smelt
#

😉

#

bruh

#

😉

brittle leaf
#

then again im on win 11

subtle smelt
#

brub

#

(;

#

there

ocean quartz
#

Enum's valueOf doesn't return null, it throws IllegalArgumentException

cinder flare
#

classic bad design moment

subtle smelt
ocean quartz
#

The world

brittle leaf
#

EntitiesType what

subtle smelt
#

oops mispelled ;- ;

brittle leaf
#

are you writing this in an ide?

#

cus if you are it shouldve picked up on that

subtle smelt
#

then I will overlook it

#

but I wanted to see if it made u happy

brittle leaf
#

and now time to delete the project and cry yourself to sleep :))

subtle smelt
#

anyway

#

tabcumpletoor

    @Override
    public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
        if (args.length == 1) {
            List<String> mobNames = new ArrayList<>();
            for (EntityType entityType : EntityType.values()) {
                String name = entityType.name().toLowerCase();
                if (name.contains(args[0].toLowerCase()))
                    mobNames.add(name);
            }
            return mobNames;
        }
        return null;
    }```
wet glen
#

I'm losing my mind trying to make inventory guis

mental trench
wet glen
#

I tried making it myself following the spigot guide but then the events wouldn't fire properly so I tried multiple different libraries and all of them kinda suck or I can't get them to download

cinder flare
#

MF-GUI baby

wet glen
#

I just used that one and the pagination and scrolling ones don't work

cinder flare
#

they do for me?

#

are you using it correctly lol

wet glen
#

I followed the docs word for word

#

I even copied and pasted after manually writing it :(

cinder flare
#

define "not working", they've been great for me

wet glen
#

I click the next and back buttons and they don't do anything

#

unless whenever you add an item it adds it to all the pages

cinder flare
#

you have to make the buttons move the paage

#

did you add the listener

wet glen
#

I used the code from this page

#

I didn't add anything but that

cinder flare
#

did you cancel the click

wet glen
#

As in lifting the mouse?

cinder flare
#

It is recommended to add a default click action to your GUI to cancel the click when working with pagination, if not, make sure to cancel the click before calling PaginatedGui#next/previous.

ocean quartz
#

Well if you don't add more to the example you won't have pages because it won't have items in the page lol

cinder flare
#

also that lol

wet glen
#

You have to populate the pages for them to work?

cinder flare
#

you gotta like, put stuff in them

wet glen
#

I put stone in the first one

cinder flare
#

it only makes the minimum number of pages

wet glen
#

Ohh okay

#

That makes a lot more sense-

#

It seems like the docs are outdated, it uses the .asGuiItem() for filling pages but that isn't a method

cinder flare
#
        var filler = ItemBuilder.from(Material.GRAY_STAINED_GLASS_PANE).name(Component.empty()).asGuiItem();
``` code straight from my actual working project
wet glen
#

I was using the multiple fill items line

forest pecan
#

?

cinder flare
#

oh yeah I think the parens are off on that one

#

asGuiItem() is a method of ItemBuilder, not fill()

#

just move it over one paren

wet glen
#

Alright, thank you!

cinder flare
#

oh actually yeah you're right, the Arrays.aslist call is also messed up with parens

#

cause that fill method takes one List

#
        gui.getFiller().fill(Arrays.asList(ItemBuilder.from(Material.BLACK_STAINED_GLASS_PANE).asGuiItem(), ItemBuilder.from(Material.WHITE_STAINED_GLASS_PANE).asGuiItem()));
#

that should work, at least in my IDE it does

wet glen
#

yeah that works for me

cinder flare
#

i have submitted a PR, thank you for your reporting lol

wet glen
#

🫡

obtuse gale
#

Boys, question, which anti-cheat do you think is the best and why?

oblique heath
#

idk about it being the best, nor have i ever used it

#

but it's got a lot of nice looking words in the readme 😌

ocean quartz
#

Grim is nice yeah

crude cloud
#

I don't run a server

#

That tactic seems to be very effective, keeping 100% of hackers and cheaters away

quiet depot
#

creative mode is also pretty good

#

stops most combat based cheats

ocean quartz
#

Kicking everyone on join is also known to stop all cheaters

inner umbra
#

Surprised no one mentioned anarchy 😉

obtuse gale
obtuse gale
ocean quartz
#

Paid and closed sourced can't really judge how good it is, never heard of them either so got no opinion on them

quiet depot
#

you haven't heard of spartan?

obtuse gale
quiet depot
#

how do you know about some random anticheat grim

#

but have nevewr heard of spartan

obtuse gale
#

Btw am talking about 1.8.

ocean quartz
#

Because of conversations of anticheats on MCCI, talked about a few, but not closed sourced ones nor ones focused on 1.8

obtuse gale
#

Where did you live when minecraft was at it's golden age?

ocean quartz
#

In the future

obtuse gale
#

I am thinking of using AAC.

#

Don't trust spartan, never tried vulcan or godseye.

humble prism
#

vulcan is awesome

#

combat wise not great tho

obtuse gale
solemn laurel
#

vulcan was made by very good developers, but it's a bit outdated now

obtuse gale
#

We are talking about 1.8 so...

#

Outdated based on mc version?

solemn laurel
#

yes i know, i mean outdated even for that

#

i think it's a bit close-minded for people to focus only on newer versions, when competitive gamemodes require anticheats most, and those are mainly in 1.8. regardless, any decent anticheat will support multiple versions.

obtuse gale
#

We can't use our ML for factions.

solemn laurel
#

yeah is competitive gamemode, like people said earlier grim seems decent. i havent tested it too much but from initial looks its good

obtuse gale
solemn laurel
#

ok well heres my advice - grim is probably the best free option, but if you want long term support im not sure it's reliable.

#

unless you have your own developer that can work with it, because its open source

obtuse gale
#

And am not sure if I can trust a free option.

oblique heath
obtuse gale
oblique heath
#

why don't you trust free anticheats?

remote goblet
#

remember that paid != good

#

the whole epic series plugin line exists

#

jets' plugins exist

inner umbra
#

My plugins 😉

remote goblet
#

eco plugins exist

#

theres a lot of options

#

upgradable hoppers and spawners exist

obtuse gale
#

And their configs are ass.

ocean quartz
#

I can tell you that way too many paid plugins are done by devs that have no idea what they are doing, and a lot of the best ones are open sourced

inner umbra
#

I know some really crappy plugins 😉

obtuse gale
#

@oblique heath I still don't get your comment about permissions systems.

remote goblet
#

it was a comparison

solemn laurel
#

he was joking, saying if you dont trust free things, than luckperms cant be trusted either

remote goblet
#

adding onto what matt said, some of the better plugins ive seen are the people who do freemium shrug

obtuse gale
#

I might just edit an open-source one.

remote goblet
#

a lot premium is actually just i made this kinda mid plugin make it paid and just farm money irl because people believe paid = better

obtuse gale
#

Either premium or free, which one should I try (for factions)?

obtuse gale
#

It helps on affiliating tho.

solemn laurel
#

grim is open source

obtuse gale
remote goblet
#

you chose to not make a factions server because a. its likely 1.8 and b. players on those servers are cringe

solemn laurel
#

you're asking for advice, take it or dont.

remote goblet
#

in comparison to AAC which is a literally dead plugin

#

like actually inactive resource

obtuse gale
#

Alright, thanks boys, I will check it up.

#

Even tho matrix sounds nice.

crude cloud
#

@cursive jolt thoughts?

pastel imp
#

Yo guys, so I am recoding my bot (in jda) and the idea is to be basically a wiki type bot for several games. Here's the question, I am unsure how I should structure it... I didn't really wanna do a class for each "item" type, since several games have several types, sometimes the same name but with different stats, one single class, I am unsure how I would do it either.... thoughts?

ocean quartz
#

Sealed types moment

agile galleon
#

1 item class and you just create them

#

likenew TerrariaItem("some name", some properties)

#

not sure though

pastel imp
#

would that work?

#

Propriety taking the key and value of that propriety ofc

ocean quartz
#
sealed class Item(common, properties, here)
class TerrariaItem(notcommmon, and, common) : Item(common, properties, here)
class OtherItem ...
agile galleon
#

thats what i would do

old wyvern
#

cRusty enums

agile galleon
#

ij not highlighting anything

#

already invalidated an restarted

old wyvern
#

You probably havent marked your source directory

agile galleon
#

it was working

agile galleon
#

i mean you can do the same in java?

ocean quartz
#

Java (15+ I think) has sealed too

#

If it doesn't you can do the same just not as nicely

agile galleon
pastel imp
#

I have never worked with sealed so will have to research it

#

although wouldn't it work how I said it?