#dev-general
1 messages ยท Page 20 of 1
15- preview and 17- released for sealed in java
that wouldn't fix the issue of having to have several classes for several games
instead of a single class
hence why I asked if this would work
that's what we were suggesting?
oh
Yes, but it will allow the compiler to make sure you handle all "game" classes
It's the best way to handle that
^
I am so confused ngl
You don't want a single class that does half of things half the time
Single responsibility principle
will have to research those
Okay, so just to confirm if I understood correctly, create a sealed class (like GameItem or whatever) with all the common stuff everything has, then create a class for each game which has more detailed/uncommon proprieties?
the only difference between sealed and abstract is that sealed can't be extended by anyone
only you can extend a sealed class
which means you get some nice safety benefits but other than that it's the exact same
okay but like. is the logic correct that I sent?
there is little benefit from sealed types in a project that isn't meant to be consumed as a library/framework
Yeah mostly nice for switch
although...
you could argue that even needing switch on subtypes in an OO context is bad design
yes
I am shit at making good coding designs lol
chances are, even with what you guys told me, I probably will fk up somewhere and do a bad design
lol
OOP Bad?
obviously
prolog moment
prolog relieved
now that I think about it, is all this really needed for a discord bot?
"a discord bot" doesn't really mean anything, it doesn't have any measures or limits
it's like saying "a minecraft server"
what you decide to include or exclude in it is up to you
gonna be real, I am a bit lost on how to properly execute this, I understood the theory you guys gave, but executing it is a bit different, but we will see
interface Item {
val name: String
fun printItem()
}
class ColoredItem(color: String, override val name: String) : Item {
override fun printItem() {
println("$color-$name")
}
}
class ShapedItem(shape: Shape, override val name: String) : Item {
override fun printItem() {
println("$shape-$name")
}
}
fun doSomethingToItem(item: Item) {
item.printItem()
}
fun main() {
doSomethingToItem(ColoredItem("#fff", "bob")) // prints -> #fff-bob
doSomethingToItem(ShapedItem(Shape.ROUND, "no-bob")) // prints -> ROUND-no-bob
}
@pastel imp Still confused?
kotlin, so yes, but suppose I can figure it out
thanks
Yes cuz java would be bigger and I aint typing more than that
fair
kotlin makes great shorthand for java
kotlin is just skript ๐
someone should recreate Skript on the JVM platform
That's already a project actually
oh shit that's actually kinda cool
Yo guys, is there a way to prevent player from using crafting table to fix tools? Like merging 2 swords/pickaxes/whatever toghether?
Like setting the result to null?
https://www.spigotmc.org/threads/crafting-recipe-with-blank-result.404234/
in this post, ForbiddenSoul's last comment uses a PrepareItemCraftEvent
Isn't there a event?
yes... PrepareItemCraftEvent
I mean a event called when player fix tools by merging them
hmm, maybe. im not sure if there is
it seems a little specific to deserve an event
oh
found this on another thread
call PrepareItemCraftEvent
check if event.isRepair() and then remove the result
apparently PrepareItemCraftEvent has an isRepair method xD
simple enough
nah bro the whole java thing is a skript
JVM itself is already a running plugin for all the platforms
and java bytecode is essentially skript
so java is basically a scripting language lmao
theres no such thing as a scripting language
it's a completely arbitrary term that doesnt actually tell you anything
it suffices as long as it tells me something lol
yeah scripting language is pretty unhelpful
a better (though still critically flawed) distinction that people often correlate with "scripting language" is interpreted language
which primarily applies to languages like Python, JS, PHP, Ruby, etc. that aren't compiled
but I mean, technically languages like Java and Kotlin and C# are interpreted by the JVM, though they go through a compilation step first
Well, the languages are compiled, the bytecode is interpreted
yeah bam i stand by my point lol
https://tratt.net/laurie/blog/2023/compiled_and_interpreted_languages_two_ways_of_saying_tomato.html I'll just leave this here
My favorite part of programmer culture is designing terms and systems and then disregarding terms and systems later
I'm pretty sure scripting language refers to languages that don't have an explicit compilation step
that's interpreted languages
Sometimes it turns out that terms and systems weren't as good as thought
Is mcm down?
bbb?
unfortunately it's still up for me
I got excited when I saw "goodbyte MC-Market..." as an announcement
but also unfortunately that was just the renaming announcement
Well with cypthon, python source code is not interpreted but it's still a scripting language
what is a scripting language?
so hang on
if i wrote a compiler for python, is it still a scripting language?
From that perspective then java is also a scripting language, since you can simply do java Whatever.java, passing a source file rather than a compiled classfile
true!
Thats why i said with cpython because it depends on the implementation
Yes lol
so java is then an interpreted language, a compiled language and a scripting language
all in a single runtime
How is it interpreted
Im pretty sure that compiles it in the bg
it sure does but does that mean if i'm using V8 then javascript is no longer an interpreted language?
This is gonna get a bit confusing woth definitions
java launcher automatically invoking the compiler and storing the compiled code in-memory
wait you can?
Ig thats interpreted then (java not tallin abt js)
exactly
it would be incredibly stupid if an "actual interpreted language" runtime didn't compile it to any form of ast before processing it
and parse every single thing every time lol
can someone help #general-plugins ??
no
k
I wouldnt call bytecode a form of ast
no, but it certainly is the first step before getting to bytecode
my comment was more about a runtime that does not perform any kind of compilation and does absolutely every single thing on the fly every time
even an ast would be helpful to have cached for that
uhm random question, taking into account that there are several stuff in this object, would you prefer something like object.getName() (aka a method for each data) or should I store the data in a hashmap and get it via object.get(Type.NAME)? (PS: technically not all data needs to be present, if it isn't, it should return --) What could be the better practice/design?
and my point is that the terms are utterly meaningless because there are so many different implementations
absolutely not
absolutely bruh
lol
lol
getName so the compiler and ur pther statoc analysis tools (like ur ide) can help u out more
I personally prefer getX rather than get(Type)
for ex in Spigot, not all Attributes are supported on every entity, whereas with getX, you could just have an interface for that method (and IJ gives a warning for getting attributes because it is nullable which might get annoying to do Objects.requireNonNull)
gimme that postgres hand sanitizer
You are welcome
Is it just me or PrepareGrindstoneEvent is not working?
what is not working exactly
fr?
didn't realise
not like there can be some event-related methods that he's trying to call and it's not working

Oh I have received that email a while ago
although their tracking site doesn't work
Also, will probs have to pay 20 bucks of fees according to the email
:-:
oh. no mail for me yet ๐ญ
im kinda confused whqt on the invoice is the fees?
no idea, I am also confused
I assume that's what you have to pay for delivery
etc
no idea
first time that participated in Hacktoberfest
delivery is supposed to be free but there could be import taxes.
I believe those are what can end up costing you money.
how am I even supposed to pay for this ๐
oh I am blind
there's an invoice number and reference
my tshirt weights 0.00 lbs ๐
Congrats you've bought air
still surprised since it was literally "free"
but welp
I was an "admin" on a project for hacktoberfest, could've asked me xD
we were hosting a UI-UX web project
basically several css/html components
etc
oh
๐ญ
Intellij be trippin ๐
I invalided caches, deleted all of gradle caches, and when i import my gradle project and build it with the gradle command it's successful but in Intellij its just syntax errors everywhere for some reason
Try File -> Repair IDE button
๐คท
worth a try
so when is the gatekeeper gonna open up the gate?
like it keeps asking you for the proof, but can you control the gate opening condition tho?
does that involve messing with chatgpt? like beta character ai or something?
@inner umbra i actually did the thing you tried to accomplish using simpler alternatives,
just by replacing the packet listener in the pipeline by my custom packet listener
theres no need for messing with low level socket tho (too hard for me lolz)
also tried to bait for downvotes in the mean time
also i could mess with the player counts and stuffs lmao
literally every time i use copilot it writes incorrect tests that i dont notice and spend 500 mins debugging my code when the test is wrong not the code
and then i disable it cuz bad but then i have to write so boilerplate so i turn it back on and cycle repeats
๐ญ
chatgpt
working on it, he wil actually open or do anything interactable soon. still wip
if you don't validate the code it provides then it's your own fault
it's like blindly copying from stack overflow, plopping it in without adjusting it and expecting it to work out of the box
ik its my fault
but the reason i use gh copilot is when im lazy
cuz tests are boring af
:)))
Could not resolve io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT.
I hate when this happens p.p
ah great, I had java 8 sdk for some reason
please write unit tests
nah
Very real
But my conclusion is yes because i like big numbers (like coverage)
Yeah with my code everything can be modified. And I'm making my packet system super simple, atleast by my standards. And it's all my own code so no injection, no minecraft code, currently no apis/libs.
so that was purely a socket server that responds to ping packets?
thats super nice!
Yeap
java
But with how simplistic it is I'm sure the code can be ported to any language. (or at least most lol)

Doesn't seem that hard
The real fun is the login process
That's next yes. And yeah after I got the hang of it, it doesn't seem hard but for never making a server software before it was pretty annoying to get a handle on packets.
lol i remember having to study that in hs
then i went ahead and never used any of that knowledge and it vanished from my mind, crazy
Packets in high school what the fuck
Yeah well I wasnt aware schools around the world have that kind of stuff in hs
ye
in luxembourg you can choose a so called "section"
for the last 4 years of hs
(total is 7 years in hs)
I studied 2 years engineering
and now on my first of informatics
(you have to do engineering to be able to go to informatics, don't ask me why)
but yeah, like emily said, communication systems. We are literally just learning how protocols work like OSI and TCP... Overall networks, the types (LAN, PAN, MAN, WAN and GAN), circuit- & packet switching, etc.
Now we are going a bit deeper into the layers of OSI & TCP respectively
anyways enough speaking ๐
yeah we have middle and highschool combined into one and you can choose between 3 "directions" in the highschool part of the time spent there
I had AP Computer Science in my US high school
yeah what do you have
Here you have at least 8 directions you can follow for the last 4 years in hs
shesh
that's not the norm where i live but to the school i went it is (the 3 "careers", high school is 6/7 years here)
yeah i get confuselled with different school systems and I don't exactly remember my time there
same
yeah no not here lol, you just take high school and get like, total of 8 electives over 3 years
well at least we don't have sixth form
in most of the US, it's: 1-5th grade Elementary, 6-8th grade Middle School/Junior High, 9-12th High School
I mean, it's in french (one of the main langs in luxembourg) but you can see the amount of sections
For context, you go from 1st to 6th in primary school and then in highschool it's from 7th to 1st grade
confusing, ik.
But for the first 2 years you have 8 options, and then you have for the last 2 years, 15 options lol
this isn't a school based thing though, only some specific options are only available in some schools
but ye pretty much yes
lulz
in my hs I have 12 from those 15
11*
Although my hs is specialized and known for being the best in informatics
UwU german

(totally hate it, but I understand it sadly)
same goes with french here lmao
lmao
you saw nothing
what language you speaking then?
yeah
there's no specific language ๐
or with your teacher idk
everyone pretty much knows 5 languages
so we do a big mix
if we don't know a word in luxembourgish, we say it in english
some convos legit start in portuguese, go to french, then to english, back to portuguese, then luxembourgish, then french, then german, then english, then french again and end with portuguese again
๐
Ech Lรฉift waarm Bunnen!
the power of speaking 5+ languages be like
lmao
ech och
and I can't deal with 4 languages lmao
xD
You kinda get used to it in luxembourg
since you are forced to know at least 4
AKA the 3 main ones french, german and luxembourgish... and english although it isn't main
- your own language, since most people here come from the outside and know another language
like me with portuguese
nice nice
in theory, if we count the languages I can only speak a tiny bit
I know 9 languages
๐
mr language god
no shut up
excluding dialects lol
i give up
this is an extremely confusing chart
look it from bottom to top
exactly the point
uh
1s
red is from 4th to 3rd (hs)
blue is from 2nd to 1st (hs)
the numbers represent the grade
the letters behind is just the acronym for that section
like what do the numbers mean
.
so there's multiple 3 and 4 grade?
besides in A3D, that's just arts and 3d stuff
yes
what the jesus
although don't forget to take this into account
americans โ
you read it top to bottom lol
yeah like the mcdonalds menu
like any well formatted data visualization
800
and honestly, you kinda read that left to right depending
a largely varying amount
oh that's near us
they be getting less and less
my high school had 3000 students and we were only grades 10-12, some people i know went to schools with 400 people from 9-12
we have ~1k
dont
i am what
near me in the sense of germany is literally a few kms away from me
the country
not you
this looks nice
xD
kinda similar to a school we have here too
i mean yeah
do you also have like swimming pools and football fields?
integrated to the highschool
we don't usually have swimming pools
oh k
although there is usually one near
fair enough
luckily for me my swimming pool was like 10 meters away xD
xD
WHEN I had swimming
mine was legit in the same building at my old high school
that looks clean
ye my old hs was quite new
and modern
it had like pretty much everything you can imagine
like half of the schools I went to are >50 years old
oof rip
also at my old hs
wasn't that bad tbh
I believe that
I switched schools specifically because of sections
they didn't had GIN (informatics) where I was
this one is older
although with the renovations it looks basically new
def
luxembourg is also technically "rich"
shitty politics currently here

I am rlly glad government here prioritizes education a lot
i can see
we are also the first country in europe (even world?) to have 100% free public transports
gimme
you might get it soon
i mean I have free cause school but
I recall hearing that several countries in the EU loved the idea
ye, but I had too, but it became free for everyone xD, it's even funnier, cause if you come from germany to europe, you have to pay
but then you come here and it's everything free
then to go back is also free lmao
you only pay in germany
in that case
it's quite confusing
germany is in europe afaik, iirc
but it's like state stuff that's half privatized that didn't work out correctly, has expensive tickets and is ALWAYS late
gotta wake up at 6am ๐
same
although if I sleep now, I'll be tired in the morning
ye.. happens to me too..
If I sleep more than 3 hours, I wake up dead
I either sleep less than 3h or more than 8h lmao
same
in between and I am dead
stupid but true
gn
From what I have read my country has a similar teaching system to France
๐ญ why are my colleagues always like this
w indentation
w naming conventions
w java 8
w DRY
why cant the property be just put inside the switch?
Why can't he use Enum#valueOf ๐
that makes me break down emotionally
i thought they were constants cuz of the highlighting but thats even worse lmao
it is faster lol cuz if its not cached it might have to allocate an array of all the constants and a hashmap so a second array
but its a premature optimization
"Premature optimization is the root of all evil"
Did you benchmark it?
i asked in JDA but got no response, is there a way to make the selection persist? https://upload.skyslycer.de/Discord_FxPxhmEQdb.mp4
I've had that happen before, I think it's updating the message that does that on the client
doesn't it go away on client restart?
all those modifiers ๐
public abstract static sealed
i wonder what else you can add
Ngl tho strictfp can be useful at times
Like yeah its a joke cause you never have to touch it 99.9% of times
but sometimes in like for ex a multiplayer game you don't want calculations to be different
no it cant
as of java 17 it is literally useless
Wait yeah lmao i just checked
also non-sealed is slightly longer than sealed if ur going for longest modifiers
im still not over the hyphenated keyword
where is strict-fp!
!sealed ๐ค
real
wait why is there even non-sealed
surely that's just the default
no
its to allow already sealed classes to be unsealed
^
sealed class subtypes are sealed by default
^
ah
so you have to explicitly mark them as non-sealed
that does indeed make sense
you can seal certain part of the hierarchy while also unsealing others
imagine knowing things about java
im a python dev now
all i know is self and **kwargs
i hope you die in a horrific and tragic fashion
kwargs makes for nice to use interfaces
java is also kind of nice
languages without function overloading are not nice
php is also kind of nice
lol
bro tried sneaking php in there
im ngl, my dream api is one function that takes like up to 20 kwargs and has every option you'd want as a kwarg
thought we wouldnt notice
java and especially rust like separate classes/objects just for configuration are the bane of my existence
nah bro
i want one like database.connect() that takes every connection parameter i might want
you can split it up yourself like in the implementation if you want
terrible
but constructing 5 configuration objects just to make one thing makes me want to stab someone
who cares
me and the lines of code it takes to create them
like they're literally just data classes
just pass the params straight in what's the point
easy deserialisation, copying is easier (eg "use all of these settings but with a different host"), better code organisation in that it's easier to split up the config loading and usage
and you dont need to write functions with 30 parameters
and yes i know you said kwargs
yeah you only use the ones you want
that's the point
like 3 required params and the rest optinoal
cause most people won't use like any
you could say the same about config objects
look at like hikari
you make a single config wrapper, set the normal attributes and then never touch it again
yeah but config objects take a line to instantiate then a line per setting
instead of just inline params
.let {} ๐ค
they have that in java?
i bet there are many other things that you cant do inline in python
public static <T> T also(T t, Consumer<T> consumer) {
consumer.accept(t);
return t;
}
return also(vehicleFactory.createVehicle(vehicleConfig),
curry(flip(this::spawnVehicle)).apply(location)
);
``` ๐
worst thing ive ever written
no
you have conveniently ignored all of these points
what do i want to deserialize, i'm putting arguments into a function
i rarely need to copy and if i want to, i can make a python dict and then spread keyword it out
os.getenv()
imagine if you could do
ConnectionFactory cf = ConnectionFactories.get(args[0]);
and took something like r2dbc:driver://user:password@host:port/database?prop1=val1&prop2=val2 and realised what driver to use from it too
damn if only there was a database connection library that did it
what lol
๐ค
i don't want connection strings
i want type safe parameters
named parameters, even
very easy to read
bro talking about type safety in python ๐ญ ๐ญ
well theoretical type safety lol
barking up the wrong tree mate
unenforced type hints ๐
So useful
yeah they're good for my ide
Actual static typing is way better
to be fair I did just recently get bitten by doing a refactor of a form and trying to access old data
i agree
TRUE
i would love a statically typed language with a kwargs style
Builder pattern ๐
OOP ๐คฃ
builder pattern is certainly an improvement over making 15 data objects
but still kinda yucky
Isn't kwargs just basically a dictionary as parameters?
yeah that's literally just a record type lmao
i've recently noticed kotlin's like "builder" init block thingy where you like pass in this and set stuff
like the exact same thing
So then how would you make that statically typed
it's pretty sweet
record type
in other words
a data class
yeah less so the actual mechanics of it and more the style
i guess you can do that with just optional unordered named arguments
But don't you not have to pass all the possible values?
yeah so default values
Why not just use a map
easy in kotlin
you wouldnt get name and type safety
yeah what lol
this is the summary of the dream
just nobody in other languages ends up doing that
Ooh i thought he was tallin abt **
and some languages don't even have function overloading so it gets even worse
well we are, but in a hypothetical static language
what is the 2 stars for? python? lmao
Yes
i mean the primary reason i use python now is Django
Because Python is 2 stars out of 10
no other web framework has come close
Real
Django feels so messy
messy? it's one of the most structured, that's why I love it so much
it's batteries included and has an awesome structure for everything
excellent conventions for where every type of file goes, configuration in the programming language instead of like xml files, awe man it's great
@cinder flare gimme a good example of what you want
im not trying to argue
just experimenting
scroll down to Connection parameters are:
yeah
but you only end up using like, 4 or 5
con = Connection(LDAPPool.pool, auto_bind='NO_TLS', client_strategy=SYNC,
user=settings.LDAP_AUTH_CONNECTION_USERNAME,
password=settings.LDAP_AUTH_CONNECTION_PASSWORD, check_names=True)
only if u r using spring from like 60 years ago ๐ญ
that's my usage
ktor has config files too, though in .conf instead of xml
i dunno, i just really like batteries included frameworks
config files are good actually
building my own from a microframework is ass
config in code is nice and all
but in practice
config files are far easier to hotswap
no need to recompile anything
hows that any different to a config file
not checked into your version control
why is that required for xml??
i suppose it's not really but the version control thing and the integration with docker compose
huh?
no ones forcing u to add an xml config to vcs
okay
.env = one central config
and u can use env vars in spring for everything
okay but i'm not using spring brother
you can do that exact principle with any file format
I mean for things other than programs
like nodejs
besides that idk
and docker mostly lol
i'm sure spring has docker integration lol
yes but that's not what i'm talking about
you make one .env file with your postgres user/pass/host/etc. and then import it into your web app and into the postgres docker container so that they match
but yeah most of my opinion on web frameworks is batteries-included vs not
there aren't many batteries included and basically all the big ones have a thing i don't like
Spring is in Java, Rails is kind of outdated and is in Ruby, Laravel is in PHP
and that's basically all the batteries-included frameworks i can think of
what's wrong with spring being in java?
Java is tedious to write for many reasons lol
yeah i mean i feel like if i ever to swap it'll be spring with kotlin
jython
but still i dunno how much i like spring, annotation hell and all that
the organization feels bizarre from what i've seen
oh I also quite like languages with map literals I've come to realize
like that's a big part of why i like python so much
use groovy ๐
[(a, b),
(c, d)]
``` ๐
lol
best literals
i mean the good old json-style ```python
dict = {
'pog': 3,
'gamer': 'pogchamp',
}
what, it just makes the most sense to my brain
maybe i've looked at too much json lol
def map = ["name":"Jerry", "age": 42, "city": "New York", "hobby":"Singing"]
close enough
yes lmao
oh no
you're dissing my language choices and you like groovy lol
its a joke
im not that crazy
ah
was gonna try make a type-safe version of this in haskell but i dont know how and cant be bothered. it's quite easy if you just throw runtime errors for unknown values though
might try again tomorrow
spock alr tho
you could do it with like a type level list of all the set attributes
and then have calling the function like merge that list with the defaults
somehow
moral of the story, i feel like kotlin is my best way forward in terms of modern language for web backend but there aren't any really good batteries-included frameworks
maybe C# and ASP.NET Core? I've heard good things from one of my friends but the ecosystem is kinda cringe i feel like
i mean yeah theoretically i would like to
Kotlin#
but i think im at a point where i just want a nice procedural lang yk
ew
there really aren't that many nice ones though man, it's kinda painful
oh I also just had to do a MIPS assembly assignment
so maybe that's why I'm pining for super high level languages lol
you know whatโs even higher level than procedural?
Dude Spring is magical, I am having to learn backend dev so I've been watching our backend dev do things and it's bizzare, add a class here add annotation there, and boom you have a microservice fully functional
I'm always like "what wtf, how does that work" - "I have no idea" lmao
Jokes aside, it surprises me how much is done for you in the background and just adding a few annotations change the behaviour completely
Sometimes you add a library that you don't even have to touch and it'll change how everything behaves
I mean that's similar to how a lot of Django works with class-based views, just less magicky and annotation-y
though even DRF uses annotations, i dunno, the java lifestyle just feels so outdated
maybe it's better in Kotlin?
Probably, never really used it with Java so can't comment on the differences
I do know it works nicely with coroutines and kotlinx.serialization
real
u should try micronaut its more modern and if u know spring u dont its easy to learn
my thing is I want batteries-included
i don't want to find a separate orm and authentication framework and serialization library and template engine and piece em all together
isn't micronaut, as the name implies, a micro framework?
micro for microservices
thats good
well no because that's what I like about Django
there's one big tool for a lot of things
there's one ORM, there's one templating language (mostly), there's one file for your views and it's called views.py, etc.
makes it easy to scale and makes it easy to get acquainted with a new project if you are introduced to one
Nvm i read that wrong i thought u said it doesnt look unopinionated
When adding ads to a website, can you somehow make google place the ads in specific places where you want them to be so it doesn't break the design??
oh so you add hat ins with class adsbygoogle, nice
damn. I didn't even receive an email yet
ty
I still cant track mine ffs
Gaby be like
also received these
and also me
I still have the ones from last year. I'm not really that much into stickers
exactly
yeah isnt like i will stick them anywhere xD
My beloved
PROCESSED AT LOCAL DISTRIBUTION CENTER
11:45 PM EET, ROBUHC, RO
yesterday ๐ฎ
looks like the tracking url is broken on mobile, but works fine on desktop
wait rlly?
I didnt think about trying it on mobile
so I just didnt track it
lmao
yeah it says Bad Request on mobile
came home today to find out it came today
but it wasnt working for me either
yo what
I got free credits on appwrite.io
and 100 bucks credit in digital ocean
damn what
quite a W
other way round for me, on desktop it tries to access the url via http, mobile browser seems automatically switch to https
oh .. I didn't realise it is http in email
Yeah I've only seen it today too
looks like I have 200$ credits on digital ocean, is that some new user bonus?
think it is
cause the 100$ credits I got were from a qr code
totally different page
it expires in 60 days, I think it is
nvm I got an email saying I've received 200$ "promotional credit"
no
@pastel imp did you got the code via email?
no qr code
wrong channel, and you need to verify your purchase and to be patient
behind this
xd
@hot widget Don't mass ping.
Which server jar would you guys say is the most efficient in 1.19?
As in Paper, Purpur etc
most stable & efficient = probably Pufferfish
there's also a newer one which is a fork of Pufferfish but I don't remember the name
Paper is more than enough for most people, if you want more custoizability then Purpur
I mean he specifically mentioned most efficient ๐คท
I personally use paper since my updater script uses paper and I couldn't find a pufferfish api
But going from 1.12.2 to 1.19 is a huge change in required performance, right?
Yes, but not as bad as how 1.13 was
I see, what makes the later versions require better hardware? New map generation?
I mean itโs a lot of things, but what are the main reasons
From 1.12.2 to 1.19 for example
just look at the changes
What Pufferfish API?
ooh downloads
they use jenkins, you can get the last artifact from here https://ci.pufferfish.host/job/Pufferfish-1.19/lastSuccessfulBuild/artifact/build/libs/pufferfish-paperclip-1.19.3-R0.1-SNAPSHOT-reobf.jar
yeap wanted to find the link
There is just more of everything in newer versions, think of it like carrying around boxes, the more boxes you add the harder it is to carry, that's mc, the more features they add etc it gets worse
But ofc there are optimizations they do once in a while like in 1.15
im so used to spigot's command handling that i remade it in JDA (java discord api) ๐ญ
my god its so scuffed
Bad api + bad api

like this?
I hope you didn't
๐
it's fine for minecraft but not so much for discord
oh lmao no not like that that
just like how commands r created/managed by the plugin (in this case, the bot)
public abstract class CoCommand {
@NotNull protected final Cobalt cobalt;
protected CoCommand(@NotNull Cobalt cobalt) {
this.cobalt = cobalt;
}
public abstract void onCommand(@NotNull SlashCommandInteractionEvent event);
@Nullable
public Collection<Command.Choice> onAutoComplete(@NotNull CommandAutoCompleteInteractionEvent event) {
return null;
}
}
then i just extend the abstract class when making new cmds ^
here's simple one without autocomplete:
public class Invite extends CoCommand {
public Invite(@NotNull Cobalt cobalt) {
super(cobalt);
}
@Override
public void onCommand(@NotNull SlashCommandInteractionEvent event) {
if (isOwner(event)) event.replyEmbeds(new CoEmbed(CoEmbedType.SUCCESS)
.setTitle("Bot invite")
.setDescription(cobalt.jda.getInviteUrl(Permission.ADMINISTRATOR))
.build()).setEphemeral(true).queue();
}
}```
matt is typing im going to get bullied now ๐ญ
Oh dw nothing to do with your problem, it's actually me that have a problem
what happened to spongebob's teeth :( https://tenor.com/yiL5.gif
pov: user discovers basic interfaces and object oriented programming
shhhhhhhhhhhh, its actually "user discovers java exists outside of spigot"
I need a math expert, given 2 points in a grid, how would you count how many points are available inside?
Under you'll see an example of an it on an inventory, the top stone is at min position which is 2, 2 (starting from 0 ofc), the second stone is at max position which is 4, 4, the area would be 9 slots, I can get to it using 2 fors, like:
for (row in min.second..max.second) for (col in min.first..max.first) {
counter++
}
Counter would be 9, but I'd like this to be done with math instead, any big brains?
I know (min.second..max.second).count().times((min.first..max.first).count()) gives the same result which I could turn into some funky math but idk if there is something better and it's too late for my brain to think
isnt it just something using A = lw
(4 - 2 + 1) * (4 - 2 + 1)
Yeah that one I had gotten, was expecting to need to type less 
Sir, it's 3am, what is A, l, and w?
Ah, well it'd all turn back into the range count above, aka what define sent
I'll just go with it, too tired
yeah lmao
is that range count just subtraction?
because you can do that with just subtraction
Yeah it is
ah okay good
๐ค
With DeluxeMenus , is it possible to add a custom item game in menus ?
ask in multiple channels, see if anyone knows LOL
that is sarcasm just to make sure.
convert into single point (2,2 (would be 11, if start from 1, not zero), 4, 4 (31) -> (row - 1) * 9 + slot, might be reduced) -> subtract (p2 - p1) (31 - 11 = 20 (can simply do -1, and that's it, 19), size between 2 points)
smth like that
(abs(x2-x1)+1) * (abs(y2-y1)+1), no?
given your example
(abs(5-3)+1) * (abs(5-3)+1) = (2+1) * (2+1) = 3*3 = 9
Who knows how to disable possibility to Push other players
I can move a player from spawnpoint to warzone . How to disable it
Some .yml server config does that, I think. paper or spigot one, idrm
google it
there, I did googling for you
I have spigot
wait
I found solutions
I have to download some specific plugins
Thanks
How can I get the name of everyone within the Guilds category, I tried that but it's returning []
List<String> guildc = ylc.getStringList("Guilds.");
I want to get the "TKBOGAESFOLADO" and the "gate" etc, everything inside "Guilds"
TKBOGAESFOLADO:
Owner: YTDragon00100
Name: TKBOGAESFOLADO
Level: 0
Members:
- YTDragon00100
gate:
Owner: YTDragon00100
Name: TKBOGAESFOLADO
Level: 0
Members:
- YTDragon00100
Set<String> names = ylc.getKeys(false);```
would this get only the guild names?
i have no clue what are the guild names
TKBOGAESFOLADO and gate?

in case I'm going to need a List<> and the way you sent me didn't work very well
I need a List<> for me to use in the hashmap I created
matt's config lib >>>
Configurate is pretty hot
it's no longer being updated btw
for a couple reasons
๐ฅฒ
i mean it still works
what's that
well no
kotlinx is the namespace for extension libraries for kotlin.
Two notable libraries being serialization & coroutines.
does IJ have that side bar thing from VSC where you can see your code and where you are currently?
Close enough xD
thanks bb
np
who needs regex when there's chat gpt ๐
Just going to make an api call to chat-gpt to format something for me instead of using a regex expression
50$ a month
Can anybody figure out what's causing these spikes? https://spark.lucko.me/jEZWXPlLBb
first mistake is running on windows ๐
first thing I notice is entities, chunks and tile entities drop down at the moment when tps drops
and you're using clearlag - dont
Not my profile, thank you very much
I'm not a certified spark profile analyzer so dont take my word for it, this is just what I noticed
Yeah no it makes complete sense
Is it possible to update a 1.12.2 world to 1.19? Even though the world generation is entirely different?
I'm not entirely sure. I know between some versions you basically have to upgrade version by version but idk for how many versions that works
pretty sure you can upgrade just by straight up running the newer version, but of course make backups as always before performing major updates
U mostly can, u can't downgrade tho, and World generation will only affect new chunks that hasn't been generated, except for the new world height
How to make in the plugin to appear behind the player particles OR resistance appeared?
I see, thanks
i have a vehicle plugin and when i try to place it says you cant place vehicle in this world
why ๐ญ
- this is not a #dev-general related question, use #minecraft or #general-plugins
- check permissions
- ever heard about configuration files
- we are not magicians, we don't know why
ik that i was saying why like someone who just lost a love one would say why
lets see if someone else can help me in #minecraft
and i wont say why just for you bbg ๐
nvm i figured it out
me reading this: ๐
Is there a way to bring back the warning that occurs when you run/debug a configuration already running?
I accidentally pressed the checkbox to disable it ._.
missing ๐
oh well its not a huge deal
for me that checkbox says "Store as project file" instead
oh nvm found it
it was below in a dropdown "Modify options"
ty
realest discord support response
i usually just stop responding to their pings/messages
but this is much funnier
lol
I agree
recommend me an idea for a website for my bachelors degree project
ask chat gpt
A website where you can upload images with metadata and then you can see all the images uploaded and also lets you get only some images by using filters on the metadata. And then you can add a theme to that website such as cat species.
So people can add images of a cat and add metadata such as cat species, age, etc they can also use filters to get an image of a cat that is a specific species and between ages x and y
so basically an image storing platform, similar to, let's say, imgur?
been there, done that
I mean, does a bachelor project need to be unique/fancy?
lol
doesnt it just need to prove you know what you are doing?
I guess? Tho I believe there isn't really a way to filter based on user inserted metadata?
Or I guess that's what tags are for
basically, yes
but fancy - easier pass, as usual
what's wrong with my idea? Are cats not fancy enough for you? :))
Yes, especially if you want a good grade and want to get a master's degree as well because that's the only place where the grade matters - at least that's how it works here.
But if you just want to pass, bare minimum is enough.
fair enough
export declare type InferIdType<TSchema> = TSchema extends {
_id: infer IdType;
} ? Record<any, never> extends IdType ? never : IdType : TSchema extends {
_id?: infer IdType;
} ? unknown extends IdType ? ObjectId : IdType : ObjectId;```
This looks .. cursed
I'll tell you once I feel like finding out.
pure example of procrastination be like
its been so long since ive written a kotlin plugin im kinda struggling
ive completely abandoned all my knowledge of this language
Ikr
thats a good thing ๐
just dont procrastinate
you gotta have that alpha male top g mindset
by lazy {}
is it possible to edit a datapack with just the given zip?
or would i need the source code or something
Yes
student license op
What could have caused this? https://paste.skyslycer.de/VUSdt I am very, very confused
hi guys
hi
https://github.blog/2023-01-30-action-needed-for-github-desktop-and-atom-users/
Tl;dr update github desktop and atom
