#dev-general
1 messages · Page 55 of 1
Unless you like to take the most interesting takes like the GP dev who isn’t dropping spigot
.io games are so simple that you cannot really have complex enough interactions for it to be a huge difference between someone being a player or a bot
true
the only reason why users are taking so long to switch is because of developers that keep supporting spigot. Same thing for 1.8 and alike, if devs stopped supporting it, people would move on
yeah that’s true
I blame devs that use spigot and support 1.8 for ruining the community in that way
users*
Funnily enough, iirc FAWE announced they weren’t dropping spigot support, then days later used paper specific api 😭
Another big reason to not swap is because of premium resources
A massive reason in fact
no. Devs are the problem
no
yes
i disagree
yesish
paid resources became a tiny bit less relevant regarding 1.8
Was talking about spigot vs paper only
yeah if i was making a premium thing i'd try and support spigot 1.8
unfortunately
but also im goated so supporting old versions isnt that hard
if people want change, then they should act like it
a perfect analogy is people complaining about nvidia gpu pricing, yet they still purchase them
if you don't like it, why do you keep doing it or influencing it?
unfortunately thats at least partly a fallacy
"we should improve society somewhat" "and yet you participate in society"
there isnt always a choice
right now, there is
and devs prefer to not be part of the solution to get some short term money
only if there's little downside to not using spigot
is this the case for most users?
most of the ones who use spigot currently*
Your argument is based on the idea that using old versions is a problem, which it isn’t necessarily
as long as there's demand for spigot plugins there's likely to be devs providing the supply
There’s nothing inherently wrong with it
exactly
Minestom simply not supporting anything but the latest version:
can you not use an old version?
Also that makes sense cuz they have to implement all the changing protocol stuff
Whereas spigot doesn’t really
you can but there's no ability for older version players to connect
Ah right
versions are a problem both by itself and in spigot usage. spigot is way more dominant in 1.8 than paper since paper was very new there, yet paper is the dominant one in later versions... So versions are also the problem
Well spigot doesn’t have that either by default does it
why is it a problem
the thing is, there isn't necessarily spigot plugin demand, people just go to the spigotmc forums since it's one of the most known. But as shown by several stats, almost everyone uses paper nowadays
so would you say the issue is that spigotmc is used as a plugin market over other more modern markets?
or that spigotmc required people to use... spigot
spigot is dominant in 1.8 -> devs support 1.8 -> support spigot while at it because of being able to post in spigotmc, but also because majority of that version uses spigot and since spigot plugins work on paper, that's a Win / Win
massive?
😏
Humongous
You know what else is massive
fuck u barry
so then why is targeting spigot 1.8 a problem? Sounds like it’s better
kinky
Both? SpigotMC is older than modern alternatives, for instance, like I previously said, modrinth gets about 10m visits per month, lets assume that's 1m for plugins, Hangar gets around 150k per month in comparaison, BBB gets around 650k, and polymart around 240k. While spigotmc gets 2.4m... basically more than all the others together.
So, it being so popular makes it the "go-to" place for plugins. But, I do agree with your second statement that if spigotmc for instance, allowed paper only plugins, it would mitigate a lot of the problems, and I am 100% sure several devs would stop supporting spigot itself.
holy yap
supporting a decade old version? Don't need to say much more
There’s nothing inherently wrong with that
Real software industries work with stuff much older than 10 years
yea i dont get this argument
11 years, even
theres ppl still playing that version cuz its fun
The amount of enterprise shit that isn't even using java 8 yet is surprising
you don't need the latest and greatest minecraft features if you are writing, say, a friending plugin
or a homes plugin
the whole conversation (in my view) is about the minecraft community evolving out of spigot and decade old versions. Yes, people still play it, does not mean it's the best idea. Same thing for software, etc.
you can not want to use old versions personally
I just don’t think the argument that it’s harmful holds up
You need multiple parts to move for that to happen, players, server owners, devs, and marketplaces
I think it's harmful to innovation and evolution of the community and servers
take an example of how resourcepacks changed the whole playing field in later versions
Yeah I disagree because at this point the communities are more or less separate
And look at how many servers still don't use resourcepacks and probably never will because of the amount of work it takes
they already are, aren't they?
the only people still using 1.8 are people who will never update because they like the classic experience, and people using 1.21 will update to 1.22 because they like the latest experience
It’s effectively two different games
The thing is that some people will prefer classic experiences and that's fine, look at OSRS or WOW Classic
I'd argue the only thing gatekeeping people in 1.8 is the pvp actually
I doubt people don't get bored of 1.8 servers xD
it doesn't really matter why, you can't really just get rid of the demand
they are extremely limiting compared to latest versions
people get bored of everything
sure, question is how fast
trying to convince people out of enjoying something isn't a good strategy
If a developer chooses to support 1.8 then they probably aren’t doing anything truly “innovative” anyway, if you’re making something with loads of custom models and textures then it would obviously be insane to try and support such an old version
demand has been going down from what I have seen
people play decade old games because they are fun for them
if it isn't fun for you, that's your problem
My view of that, is that developers supporting 1.8 gives 1.8 users one less reason to move forward
nobody has to support 1.8 if they don't want to.
They are never going to move forward
and it doesn’t matter yeah
just don’t support it, that’s fine
not saying it isn't fun, it's just limiting. I was an 1.8 user myself
just got bored of seeing the exact same things constantly and no innovation
Why do they have to move forward? Who says they need a reason
I wonder how much this will change in the future as Minecraft is supporting more and more features that allow for almost mod-like creativity
Yeah nobody’s saying you have to like the old experience
well, that's you, not the people playing 1.8, or decades old games, they still don't change and are limiting compared to new games
if society didn't move forward we would all be fked lol
Minecraft mods are not society
1.8 players don't harm anyone
flashbacks of germany a few decades ago (this is a joke)
🤨
everyone who 1.8 players "harm" willingly choose to invest time in that market
wdym
Yeah it’s not the same as like, being homophobic
devs aren't forced to do anything they don't want to is what I'm saying.
You'll see a lot of really cool new things coming out and a lot of players playing but 1.8 is still likely going to stay the same
Even if you can 1:1 re-create 1.8 combat in newer versions people might still like how it was better
But yeah Mojang is doing a fantastic job with all the data driven things they are adding, it's very exciting
it's not stunting anything
I think this is a reason Minecraft will keep growing cause you rlly can do a lot with it in accessible ways
there's still constant innovation
no one ever said anything about forcing them, it's whether them supporting 1.8 (in this case) is beneficial
there’s virtually no pressure to support old versions, at worst you might get a few people asking but you can just say no
Beneficial to who?
Who decides what’s beneficial
it's beneficial for people who want to do it
nobody is forced to do it
thus it's not bad
I guess no one, but that's how opinions work
there are pros and cons of each side, anywhere you go
sure
I feel like that’s not what you were saying though
there is nothing inherently harmful or bad about playing and targeting 1.8
I mean, I have always been addressing what I say as my opinion on supporting spigot, 1.8 and friends
broke: playing 1.8 is bad
woke: playing any version of minecraft is bad
lol
There’s a big difference between saying you don’t personally enjoy something, and portraying it as a societal problem
Playing is bad 
from the way I see it, it is
It’s still not clear why
you can apply that logic to anything, hell even recent politics xD
i still think that’s a flawed comparison
I despise toothpaste flavored ice cream. I think it's the worst thing to come out since avocados. but my girlfriend likes it, and thus I must concede that agreeing to disagree is okay.
yeah, that's why i prefer gambling, it brings me joy to life even when my girlfriend dumped me for losing all our savings
political conservatism doesn’t really have anything to do with wanting to play an old game
mint ice cream >
some people say trump is a problem, others say he is the savior of society, opinions I guess? (I do not intend to persue further conversations regarding politics, it was just an example of recent global news)
briste3TRUE
Keep going you can only lose 100% of your money but you can win 1 trillion percent!!
don't you dare say you put pineapple in your pizza
if you make a discord for your twitch account you get free discord nitro
it's okay for Muslims to not eat pork but that doesn't mean everyone else can't eat pork. restaurants who choose to serve Halal food aren't hurting anyone
kind of
90% of gamblers quit right before winning
❌
that’s a nice analogy
And halal restaurants aren’t slowing down pork restaurant innovation at all
and even if serving halal is extra work, no one is forcing you
and if you do the extra work, everyone can still eat it!
yeah, that's how opinions work. You can have opinions on society since you are part of it. Some people would agree with your first sentence aka that no one should eat pork, already seen it myself.
but also (many of) these people have the ability to influence others to vote in order to change how they live
that's (one reason) why political arguments can get quite heated
actually
you are that person who thinks no one should eat pork, in this analogy
Yeah politics actually affects people’s lives, it’s a flawed comparison
Chat I have just reset local main to origin main and lost 3 commits 
agreed
Sad
hopping back into idk what this is but hopping back to spigot
how do people support older versions of mc when methods and whatnot change?
reflection
what D:
btw do you still use gitkraken?
you just target the lowest version you want to support and spigot guarantees forward compatibility in 99% of cases
While eating pork and using spigot/1.8 affects a person in drastically different ways, I guess I am
modules can work as well
A friend of mine somehow wiped their entire git history :/
Yesm
unless you’re doing nms stuff ofc
I lwk didn't read the question 😭
yep unfortunately the situation I’m in, so I’ll burn that bridge when I come to it
sorry to hear that
I mean reflection is a very common method as well, just depends on your usecase ig 🤷
but yeah modules are better than reflection imo
paperweight my beloved
Usually
it's not that bad usually depending on what you're doing
I’m just doing some packet fuckery and worldborder fuckery at the moment
and some netty injection 
they’re both ultimately inconsequential I’d argue but yeah
oh boy
if you want to support more than 1 version, paperweight won't help much (unless you have separate jars for each version)
otherwise, paperweight is awesome
the actual good way ^
On another note, we can all atleast agree that paper and latest versions are much easier and better for devs to work with?
nobody sane and educated
Right now I just have different gradle modules / sub projects (whatever you like to call them) which do the NMS stuff for their respective vers
Usually they are 1.8 spigot users
you sure they don't mean that they prefer playing that version
thus they prefer developing in that version as well
haven't used coreprotect in ages but what's wrong with it? 🥲
oh boy
on another side note, you'd use NMS for packet stuff, right? Been a while since I heard the term NMS somehow
I could go on for a while…
90% of people who say old versions are easier just have a skill issue cuz they’re still used to doing things the old way and don’t know how to learn the new ways
this is random but i am extremely annoyed by how AI has been completely useless even for mindless programming. i needed to switch between YAML parsing libraries a while back. this is like the exact type of task i would rather have AI do, but of course, it's inept!
Usually
So true
Well some would use something like protocollib or packetevents for packets because it means your plugin can technically support more versions without frequent updates (ish)
do you use github copilot?
packetevents by retrooper is smth i've been using recently (if this is what you're referring to)
actually not, from talks I had, purely objectively, they see 1.8 spigot better to work with, according to them "less bloat"
nah
ah
yeah haven't used NMS in ages, I use PE xD
I use NMS because I do a lot of stuff involved with worldborders and then proceed to send packets to each player
and also some netty stuff for signs
yea it's nice
tbh you can make that argument, the old versions definitely do run better
PE & entitylib <3
Though that doesn’t necessarily mean they’re easier to develop with
YESSIR
I remember watching a stream where the dude would spend 30 minutes on AI then annother 20 minutes fixing what AI gave him for something that would have taken like 15 if he had used his brain 
less complexity = easier to learn
especially if you're new, I could probably understand that
and then it becomes hard to move to the stuff that you're not used to (what are these components??)
Even though I have heard some bad things about retrooper, idc
PE better than protocollib
lol
AHAHA you had SO much fun didn’t you with entitylib
repooper as they call him is chill
yeah, I do understand that, but objectively saying 1.8 spigot is _better is eeeeehhhh
Yeah for better or for worse things are definitely harder now, especially for unconfident developers
this is what i ended up dealing with because i find that with AI code, there is a certain level where it's complex enough that you have to spend some time trying to understand it but it's not actually like.. doing what you actually want it to do
xD kinda had some fun
Long gone are the days where you can just type your section symbols and have it work
using it for one of the plugins I am working on
what plugin 👀
most memorable thing AI has given me is that Kotlin has a Number#coerceIn function
secret
damn it
well technically not a secret since I have posted about it in #showcase but it was in minestom at the time
lol
what does coerce mean 💀
my english is lacking
isn’t that like
it restricts it to be within a given range
basically guarantees a number to be between 2 other numbers
Like a combination of min and max
nha
It’s useful
yeah I can see how it would be useful tbf
oh that's nice
in Comet i support javascript in the configuration files, and i've noticed this is like really useful for general configuration where you need to work with numbers, and im probably gonna include it in my UI plugin. anyone else try something like this out?
it’s handy every now and then yeah
The only time I ever found AI useful was when I had a really weird issue with opengl and I couldn't find anyone anywhere with the same issue, so I used it and it kinda told me what was wrong and I manged to figure out the rest on my own lol
I would switch to kotlin but I fear I would write even shittier code than I do already to be brutally honest
although iirc kotlin forces you to handle null values and whatnot so.. who knows
yeah js is a solid config language
easier than json
yea it's pretty good when your problems are simple
the UI part or js part xD
typescript is even better
although iirc kotlin forces you to handle null values and whatnot so.. who knows
strongly recommends rather than forces
:))
i have it so you can use it inside expressions, and i provide environment variables and such
Reminded me of this
Handling nulls is an objective good thing
well.. at least it recommends it more strongly than normal java 
JS. just for simple math related stuff
oh absolutely
It also eliminates a lot of null problems entirely
Like they’re just impossible
they can’t happen
decompiled kotlin.. 😭
Anything is better than nothing
Meh who cares
I have not, probably should though xD for my own UI plugin xD
:/
Look at decompiled clojure if you really want to suffer
oh god no
i would recommend it! it's pretty performant too.
I have some self preservation left
oh question
best inventory / gui lib for spigot
I am sure there are some cool places where they are useful xD
sounds handy, pls provide a typescript definition for the big config file if relevant
for now I am just focusing on working on the barebones of the UI stuff
Makes me sad whenever js tools don’t do this and you have to guess whether the config is valid
you can do a lot with it, like even user-defined variables and such
Add support for kotlin script while you're at it :D
like here i have a dynamic way where you can specify how many "random" variables you want to have generated per context
and then you can just use that inside expressions
reminds me of hocon a bit
i'm unaware of what that is
all the implicit variables read weirdly to me as a programmer but it makes sense to do it like that for the users
JSON but less ugly
they actually aren't implicit
oh?
Oh okay even better
like having on_particle_init be an arrow function would make more sense to me
They have been recovered! God bless git reflog
this is WIP but you can basically define variables which then get replaced with a function, and you can do stuff like interpolation
this is json
so i'm not sure what you mean
Oh
i have a neovim plugin that hides the quotations when i'm not selecting the line
lmao 😭 no the js are inside the expressions
ill check ito ut
Love hocon
we're planning to have an in-game editor eventually for all this stuff
just building the functionality rn
who doesn't ❣️
Right that makes more sense lmao
building configurable systems is an art
Yeah I recall larkyy speaking about it, honestly, it sounds awesome but extremely hard to do properly (even with the UI stuff)
i'm definitely biased, but that's also why we're planning to have a lot of pre-made assets
so people can build off of that
- in-game editor can have live preview
you speaking of comet right?
yes
yeah live preview would be nice
i'm probably also gonna use the UI library i'm working on or something similar to create smth intuitive to use in-game
with dropdowns and sliders and such
you already got dropdowns working?
ahh probably should have clarified, we meant like creating effects that can follow shapes from models defined in blockbench. like for example having a sword that explodes into particles, or defining paths for particles. i'm not quite sure yet to be honest
well it's already possible to create with my system
jesus
like you would create some elements which have a tag of like "popup_something" and then have a button which toggles visibility for them, then each element can be its own selector
that's how popups work for example
I really want you to succeed, so one less "competition" (not that it would be) always helps I guess
i don't know if this is ever even going to be released so i wouldn't worry about it lmao
why wouldn't it?
it has the potential
it's exclusive for a client
maybe if we convince them to become like an investor and then they get some % of revenue
but I guess you can still use the same library/system or similar to make it a plugin
we'll have to see, there does seem to be interest in something like it right now
somewhat yeah, hence why I wanted to try it
but honestly out of respect for your work, I'll leave it be for now
btw one of the ways i think to get around the mouse-delay issue is to show an indicator on the cursor instead
and then you can try and do some prediction to account for ping even more
there's a lot to explore
I already fixed that xD
fixed mouse-delay? wdym
yes
just with like predictive movement?
no
how then?
oof yeah
welp
now I gotta find a new project to work on my free time
been hard to find much time for stuff, hence why I had to "quit" the project I was doing with you guys
well, I didn't fully quit, just didn't have the time to work on such a big system
but larkyy didn't give me anything else to do soooo
ye
lmao fair enough
I lacky creativity sooooo
Just buy a better brain
my next projects that i wanted to do was fluid simulation in minecraft
but that might get delayed by a while
AI is too generic
lmfao
give me monie rich boi
are you into math?
wait using display entities, etc?
couldn't comet technically be used for that?
Am I into math? No. Do I like a challange? Sure
either particles or block displays
(Well deep down I like math, but she doesn't like me)
perhaps it is time to delve beyond minecraft..
into what?!
Relatable
what else is there to do besides blocks
look who decided to pop out of nowhere
charlie, it's not relatable
you have 2 lambos, I have uh... a PC (I am thankful for it)
I don’t really have time for projects either, my life is so hectic
you still working at bisect? (or however it is pronounced)
Haha, if I had that money I’d be gering you a Mac not a PC 😂
Yeah
i've been trying to balance development on multiple projects with school + ec's and it has not been going well :Sob:
somehow I'd accept that, needing a laptop for uni
I moved my gf out, so I live alone now, and house work takes agesss, that paired with work, I don’t have much time
I normally get up at like 10am, then I start work at 12pm until 9pm. In the morning or in the evening I usually sort house work, dinner, walk dog etc
wait wut
Days are just so hectic
Complicated but didn’t agree with me doing all the work in the house
does that mean there is a gf (bf) spot open?
Yeah go put a wig on
interesting
W 😂 on my way to london
oh i was confused because you didn't say ex
Yeah still together just live separately atm
I’ve been chipping away at Bug.io, and another stealth project, but I just don’t have the time or energy.
After work the last thing I want to do is code on something, and on weekends I may do stuff, but I enjoy just playing games now 😂
Yeah, I was doing all the house work, while she done none
Just wasn’t fair on me, I had work, she didn’t
you back at bug.io? thought you had abandonned that
oh so she was essentially living under your roof, not paying anything and not doing anything? lol
don't wanna be the one to say it, but kinda red flag lol
I did abandon it, I then spent quite a bit buying another domain, then I was gonna get a lawyer to clear things, and decided I couldn’t be arsed. So I went back to Bug.
I’ve got a nice design and everything, I just can’t be bothered lol
Not necessarily a red flag, it all depends on context
true, one which we are lacking
lol
typical charlie
Not much else to say really, I was the one doing house work, while she hardly did any. I have work full time, while she doesn’t.
It just didn’t seem fair on me to do everything
if charlie doesn't buy a domain, you know he has been kidnapped by aliens
LOL
I kinda wanna add plugin analytics to Bug like bStats, but also just can’t be arsed to build stuff
FancyAnalytics is a thing now too
Well I don't know much of the circumstance, but that kinda sounds like it could be depression, sitting down and talking and trying to figure out things is what I would do
I'm not saying you are wrong, I'm just saying there could be more to it
ultra random, tf, rp applied but not fully?
Sweet, extra validation it’s worth doing 😂
xD
Been there, of course I’ve redacted a lot as I don’t wanna go vent my life in some Minecraft chat. But yeah, mainly just wanted to give a brief explanation for being busy
true that, you can always talk with her and see the situation. Sometimes what matt said can be a cause, other times it's just the opposite. Relationships are difficult
this is beautiful
They definitely are, I did a house tidy over the weekend, god it took me an entire day
I suddenly don't wanna live alone xd
😂
It is spooky living alone, just glad I’ve got the dog here and security system
Otherwise I’d hate it
fair
on another day of AI being crazy
(I mean, cool idea but like, does it look like I can do it?)
you’ll never know until you try
Honestly, just build something fun for the enjoyment if you want an idea. Don’t care if it “will make money” or not.
From my own experience, the ideas that take off $$ wise are the ones you didn’t focus on money for
I mean, it's not something I am interested in
Analyse is a good example, I built it for the enjoyment and it took off. Whereas previous ideas I focused on the money, and they failed.. lol
Yeah, fully agree, not looking at money
b- but I don't get any ideas
I am a perfectionist at heart, I can take an existing idea, and build upon it, but building from scratch? hardly
the one with AI?
Yeah
I completely agree with this.
I’m a dev who works for a network for free and I’ve been working on a gamemode core for months.
I have been dedicating all my time, and then the owner said I should make it a premium plugin, I agreed and now I have lost all motivation.
it’s a complete trap
Almost like quicksand.
Yeah, it’s weird because people would assume that money would be an instant motivator, but it’s not.
It’s more motivating when it’s unexpected
absolutely
Honestly, it can be quite boring, I spent days looking at data, training different types of models, and yeah. The idea of the project didn't seem like it was worth it (future wise) and I wasn't having much fun either
Like if you worked on stuff for free and suddenly you was making a boatload of money, you’d be like hell yeah let’s go more at it
the quality of something that you enjoy maintaining and developing far outweighs one motivated by money
with a few exceptions actually
It’s sorta why Bug.io has been the only project I’ve bothered with when I can be arsed. I enjoy it, and I’m not fussed if it generates $$ or not.
I just wanna build cool shit now for fun
there’s still plenty of projects that are paid and still fantastic
yeah... I haven't found that fun yet
but the wide majority of them, are not
although now that I think about it...
there has always been this one project I always had interest
Doing an app, wiki style like fandom, but you'd have like a grid system, do templates, and variables, etc. More of a wiki for games, and not too general I guess
but never ended up doing it
oh and with an actual api
cause whoever has ever had the pleasure of using fandom's api....


Also, if the idea you’re thinking about has already been done, it’s even more of a motivator IMO.
It’s usually instant validation that the thing you want to build, is what people are actually looking for.
I wasn’t too sure about building Bug, but now seeing you’ve just linked me FancyAnalytics, which does some of what I wanted to do, it’s made me realise hell yeah
Go for ittttt
Eh it's not like I have anything to lose
so why not I guess
gotta get used to working with web stuff again though
haven't touched it in months
git reflog :3
You missed my other message smh
It’s good fun for the most part 😂
yeah
gotta start learning vue too
cause I have a feeling I am gonna be the one that's gonna code my Hangar redesign if it were to happen
lol
😂
web dev seems awful
It is, don't let the propaganda distract you from the truth
To be fair I love it, but it can be frustrating. I’ve been diving into react land and love it so far
I am not a huge fan of web dev myself tbh
triumph-guis (V4)
mmmmmm
note: paper only
I swear triumphgui had some giant dupe or bug like a month ago
(v3 is spigot too)
@ocean quartz inform us
If you're doing something wrong sure you can have dups and bugs
never heard of any
it was something like
if you use the api wrong it tries to open a gui while one is already open
and introduces some dupe
just don't use the api wrong :5head:
I just realised, I used TriumphGUI for Tebex plugin (I was the guy that rewrote it), and Tebex devs got rid of it for Bukkits own, lol
https://github.com/tebexio/Tebex-Minecraft/commit/c4905838883ff1658395a718bcac847ff6783f8b
the only "exploit" I heard about was a crashing exploit where they froze the gui, spammed a button then unfroze it, depending on the gui it would crash
and it was some internal code of triumph that was causing the dupe (cannot remember)
v4 added a click interval that fixes that though
oh no 😭
I’ve been messing around with invui recently
been quite fun
and fastinv actually
I love invgui
I didn't write code correctly and it broke, godamn library that I use that has nothing to do with the issue!
😭😭 🤷♂️
I’ll read into chat logs a bit more in a second
funny, now that I think about it, I have no idea how wikis work
so many different wiki frameworks 😭
https://js.wiki/ use this one it came up first on google
Okay; turns out i was misremembering
It was a dupe with excellentcrates I was getting confused with, we were talking about triumph at the same time so I must have confused both.
🫡
whoops!
Plus if some exploit or bug does come out and it doesn't get reported and instead the library is blamed for it then it's really dumb lol
coreprotect has issues relating to its logs, and it's so funny because i talked to a few people and they said they reported it to coreprotect and coreprotect devs just refuse to accept it
unsure if the devs' response is correct and maybe the server they play on is having some other stuff, but there definitely are issues with coreprotect on that server, specifically relating to people far from the server doing stuff
his database system is utter dogshit
ESPECIALLY patches
he makes at minimum $2,800 a month and barely pushes anything
-# context: me counting all discord members with patreon roles and totalling the monthly income
it was months before any version came out publicly supported 1.21.x - that version is still the only one available, isn’t an ‘official stable release’ and is on patreon requiring you to sign up
and only supports 1.21-1.21.2
the code is one of the most awful things I have ever seen
Especially the command classes
for some reason he turns the action type strings (e.g. +item) into numerical values ???
and then checks that value to know what code to execute
okay i write some questionable code sometimes but that's
like
that doesn't seem necessary at all
control flow obfuscation in 2024:

I’ve been tempted to fork it and fix some of the underlying issues but the code is some of the worst I’ve seen - and I write very questionable code myself
I’d rather start again
coreprotect might be poorly coded, but it’s one hell of a plugin
especially with how long it has been around for
Also like
the coreprotect discord is
literally 95% community support based
Intelli will pop in every now and again
usually every other day
Has time to thank new patreons, make very rare fixes and publish on patreon
and yet no spigot or modrinth release
anyways, rant over!
Thanks for coming to my ted talk
it's not about using xd, I wanna do my own
oh then
it's just a database right
its not really any different to any other website
I am more misinformed on the whole process the user does to create a wiki, etc.
and if I wanna do my own, gotta know how others work
what do you mean exactly
don't be a copycat!
click create -> create wiki
😌
true!
I am not, the whole idea is to have a different approach to wikis
but I do not know how current wikis work internally (as a wiki owner)
which is something I should if I am doing this
I have no idea how collaboration, internationalization, reviews, etc. work in current wikis
What I said above, I am doing a wiki platform from scratch
I still have it hard coded in my mind to use io.github
Even though I know I have my own domain
Lmao
Has anyone ever used Supabase, Appwrite, Pocketbase or Firebase?
Just wanted to know about the experience you guys had with any of these
or if there were any recommendations
pros and cons of each and such
uh, idk, firebase was quite simple
granted I was using it with a forked project, the initial setup was a bit confusing at first, but thats just knowing where to get your app/project ids and what not
the storing and retrieving is very simple tbh
var database = firebase.database();
// set
database.ref('data').set({
somekey: 'Some value'
})
// get
database.ref('data').once('value', function(snapshot) {
const data = snapshot.val();
console.log(data.somekey);
})
(no backticks on iphone lol)
There is :(
idk mine is missing
oh you can select multiple lmao
Lots of the characters have these alternatives, I think I only knew by mistake 😂
Just held down once and thought wtf
≈
would be nice to know if the symbol has multiple options
now all of the keyboard buttons look the same lol
yeah just went through all of them lmao
pocketbase on top
why
cant agree nor disagree, havent used
supabase and appwrite are also open source and selfhosted
supabase selfhosting is much more annoying by comparison
i dont know much about appwrite so cant comment on it
does pocketbase have query limit?
wdym
I assume not if you can self host
yeah no your hardware stack is the limit
like firebase, you can only do N amount of queries/day for free tier
thats pretty nice then
yeah you have 50k free queries per day on firebase
reads*
and 20k writes
seems like vercel where it makes money by gutting every app as soon as it gets popular
lol
not a bad business strategy though i can see how it got successful
pocketbase is also great because you can extend it with your own code easily
you can write js or go plugins
it truly can be your entire backend
there are caveats but for small projects i think its really good
I was looking at preferably (for start) cloud
Good one
anyone with a Mac, have you tried Dwell?
no
but i will now that sounds cool
this doesnt really do anything
do you mean the head tracking part
it's supposed to have eye tracking
not at my computer rn, cant test it
i was able to use head tracking but not eye tracking
not sure exactly why it says that
i cant imagine the hardware is capable of that
https://img.bristermitten.me/ZQO3HzKmkt2F
this is quite cool
ye same
There is something that bothers me to this day, which is what set of annotations I would use to declare things as nullable, notnull, etc...
Like, what would be the right aproach here (implementation of the dependency - if any - configuring it, etc)?
implementation of the dependency
what does this mean
what set of annotations
theres no single right answer, jetbrains annotations are popular, the jakarta ones are also popular
those are the main 2, most people use jetbrains i think
there should be zero configuration required
What even is the point of using Jetbrains' @Nullable compared to JavaX's?
The jetbrains ones are a bit more fully featured as far as I know
There’s stuff like @NotNullByDefault or whatever it’s called
yeah but he asked about @Nullable difference 🤓
but in general annotations like @NotNull from specific "providers?" (JB, Jakarta, etc) might be handled differently, some might just be compile-time or just for null-safety, showing warnings in the IDE, whereas others, like in SpringBoot, might throw exceptions if the request is being validated (at least from what I know)
Yeah, I just don't want to shade in/include annotations if avoidable
On another note, the MinecraftHelp util from cloud-minecraft-extras is quite nice.
you shouldnt shade them
but also even if you did have to, it's like 10kb max
paper loader <3
i loaded your mother
jspecify
here we go...
its not competing with the other standards
tools will just support it in addition to their own annotations
and all the tools are contributing to jspecify
"advancedsercerlist"
yeah, noticed the typo too
loading a 5kb jar with nothing but behaviorless annotations 💀
Delightful
advancedserCerlist
Could you not use @DefaultQualifier to eliminate verbosity?
pretty sure thats generated by the checker compiler
ye true
I do like how this looks.
Yeah it looks pretty cool I can’t lie
Only feedback is, compared to the first one (Under the AdvancedServerList text) feels more lined up compared to the rest (ex. Profiles, Player Count)
Wdym?
@surreal garnet This better?
Still has some smaller differences because of the character widths and such
(Can be seen with Profiles and Player Count having the lines not 100% same vertically
better
I don't even understand what I am looking at
directory tree
ah editing configs ingame
oh and on a side note, might just go with supabase due to the much more extensive resources online, docs, etc. over appwrite
Yeah much better
Forgot to respond at first lmao
Not really. Just a way to view file values ingame.
could probably be made into editor
didn't find docs attractive
(content wise)
and I am looking to start with cloud and potentially migrate to self hosted later on
not selfhost right at the start
and supabase (and appwrite) provide decent free plans to start the project
My dumbass wrote this 💀
unsigned long TurnoutList::maximum() const {
int length = size();
if (length == 0) {
return NO_TURNOUTS;
}
unsigned long max = -1;
for (int i = 0; i < length; i++) {
unsigned long value;
sequence.get(i, value);
if (value > max) {
max = value;
}
}
return max;
}
No warning in your IDE/from the compiler?
I dont think so 💀
that's probably the worst part about it
like we're living in 2025 and for some languages, tooling is still stuck in 1980
clangd will certainly warn you for that
clion's built-in analyser probably but you can make it use clangd
numeric_limits::min 
Wait what’s wrong with it
unsigned long max = -1;
for (int i = 0; i < length; i++) {
will always be true
also out parameters are cringe
yeah
I was using g++ so that’s probably why
gay plus plus
friend of mine is working on a go-based java build tool (like gradle & maven)
it's actually
great
Added a command now to set values ingame.
Only thing left is integrate it into the file Info.
neutral to positive
better than != ?
arguably
it looks more like the mathematical symbol
but it also fucks with your muscle memory
it's better than ocaml using <> at least
lol ye fairs
what do you think
goated
based
so will elara be using /= ? lol
probably
🤩
Or lua with iirc ~= or smth similar
awful
I think your opinion is very =/
i think prolog even went so far as to have the full =/= as a not equal operator :>
feels like something a Julia programmer would cook up 
feels like an APL move
waiting for the day we just use emojis as keywords
That also reminds me of how I use =~ and !~ for "equal ignore case" and "not equal ignore case" checks
The \\n in this pattern isn't working for me when I provide a line like Hello\nWorld!
Printing it in console displays it as one line, so the \n isn't treated as a newline character.... Any idea what else could be the problem?
(<newline> works in case you're asking.)
regex will treat that as a newline so you have to do \\\\n :))
two backslashes for the regex to escape the \n
and then two more backslashes for each of the first two backslashes in order for java to escape the two backslashes
That is rather stupid...... But that's java's regex handling I guess
This is so satisfying to look at for me....
And this too
Only thing left for me is to check that the command stuff works on proxy too
Actually, another thing I would like to do is find a way to change the allowed value type based on the provided option... Like when motd is selected would it be a greedy string and when it is playercount.hideplayers it would be boolean.
Not sure if that is doable via annotations tbh.... 🤔
I doubt you could even do this without annotations
You’d probably have to keep it as a greedy string and parse it natively
Nah, programmatically should be doable by making each option a literal sub-command value and define the value option separately
Certainly
not ‘messy’, just.. a lot
Tho, annotations are also messy for me rn :P
have no fear, it couldn’t be any worse than https://github.com/PlayPro/CoreProtect/blob/master/src/main/java/net/coreprotect/command/RollbackRestoreCommand.java
At least you don’t convert coreprotect lookup actions into numerical values and then use that value to know what code to run
Managed to implement per-option argument types
descriptor(...) returns a different ParserDescriptor<CmdSender, ?> based on the option.
Cool
Moved away from annotations?
not really. Just made that part of the command use the builder.
Annotations don't really have a way to achieve the same behaviour here... Unless I would go and make separate commands for each option that is.
ah, fair enough
That lil change makes me feel proud. (The - ... + ... hover)
please help i pray please help how do i make gradle thing to obfuscate my code im so tired
trying to use proguard but it literally just say "> java.io.IOException: Please correct the above warnings first." like what 😭 there is nothing above
tasks.register<ProGuardTask>("proguard") {
group = "build"
description = "Runs ProGuard to obfuscate the JAR"
configuration("proguard.pro")
inputs.file("$buildDir/libs/EventAlertsIntegration-1.0.0.jar")
outputs.file("$buildDir/libs/obfuscated.jar")
}
```proguard.pro: https://paste.srnyx.com/iyuzajuyeb.php (literally just copied from stackoverflow: https://stackoverflow.com/a/69275247/18122334)
**ping if reply thanks im just gonna go to bed now**
Where are you seeing the IOException
show a screenshot of the entire IDE
Imagine obfuscating code...
when i run gradle proguard
.
(After having run the pro guard task)
I assume there isn’t anything if you scroll up in that log screen
bruh???
are you sure you dont want like.. build proguard
It’s a defined task
hold on
‘You can find some sample build files in the examples/gradle directory of the ProGuard distribution.’
alright im using their example config now:
tasks.register<ProGuardTask>("proguard") {
verbose()
val fileName = "${project.name}-${project.version}"
injars("build/libs/${fileName}.jar")
outjars("build/libs/${fileName}-obfuscated.jar")
libraryjars(
// filters must be specified first, as a map
mapOf("jarfilter" to "!**.jar",
"filter" to "!module-info.class"),
"${System.getProperty("java.home")}/jmods/java.base.jmod"
)
}
but i still get the same thing 
yeah gradle build works
ok it gives warnings about not being able to find referenced annotation classes like NotNull, Nullable, etc...
and also complains about library stuff, i will jsut need to figure out what i need to config for those with proguard ig
Send the entire error :P
By default, the obfuscation step removes all annotations. If your application relies on annotations to function properly, you should explicitly keep them with -keepattributes *Annotation*
nice
i think it went over the amount of lines intellij will show
hastebin doesnt like it either
LMAO
i have never in my life seen that
just add the keepattribute flags it tells you to and rerun
Note: there were 6 unresolved dynamic references to classes or interfaces.
You should check if you need to specify additional program jars.
(https://www.guardsquare.com/proguard/manual/troubleshooting#dynamicalclass)
Note: there were 26 accesses to class members by means of reflection.
You should consider explicitly keeping the mentioned class members
(using '-keep' or '-keepclassmembers').
(https://www.guardsquare.com/proguard/manual/troubleshooting#dynamicalclassmember)
Warning: there were 6568 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedclass)
Warning: there were 65 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile the code.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedprogramclassmember)
Warning: there were 2 unresolved references to library class members.
You probably need to update the library versions.
(https://www.guardsquare.com/proguard/manual/troubleshooting#unresolvedlibraryclassmember)
its because im shading in some libraries
ahhh
ouch
ok im adding dontshrink and dontoptimize
ok that changed nothing
dude i dont understand proguard, why cant it just work???????
don’t obfuscate
need to
:/
alright yeah whatever bruh guess im not obfuscating
huge developments happening
i got it to run after adding ignorewarnings 💀
but ofc that would not run
can i ask why obfuscation is neccessary actually
theres a lot of ppl making similar servers as us and if they could access the source code they could just rework the plugin for their own systems
i also didnt want to support 1.8.8, but someone said they would reverse engineer it to make it work on 1.8.8, which i just dont want (as theyd distribute it and if ppl experience bugs theyd most likely come to us)
Obfuscation doesn't really stop that, just makes it harder
Look how much was done with minecraft and it was obfuscated for the longest time
if you dont want your project to be used outside of your server, you shouldn't trust random people with access the jar or github
and any competent developer could look at anything in an obfuscated plugin and figure it out, no source code required
its meant to be a public plugin
premium?
no 
lol
because theres weird ppl in this community (that im making the plugin for) i dont want em exploiting stuff or smth 😭
like exploiting bugs and whatever?
yeah
you're better off making it a public open sourced projects so people can provide feedback and fix the issues faster i feel
even if i make it like subscriber-only, it'll somehow get leaked, i know it
I mean if they find bugs in usage they'll exploit it whether the source is accessible or not
In fact if your source was public people could much easily report and fix exploits
github issues / pull request my beloved
ig, i closed-sourced our discord bot so that ppl couldnt just steal it and run it on their own server
so i was just using the same logic here (except im giving them the jar in this case so needed "extra protection")
idrk what im protecting it against ig, but i just rather not find out when its already being distributed and such
yeah but i mean its best to establish a community almost when maintaining certain projects
there's a quite popular premium, closed sourced, obfuscated fishing plugin that has a #1 issue where... servers have little control over it, they cant add new stuff, fix issues or anything that would make it much better and runs like a dictatorship
i prefer and encourage the very opposite of that always
if people want to leak a plugin, they can and they will
whether that’s through class dumping or whatever
there's people who will leak freely accessible, open sourced plugins so lmfao
like mcmmo
How would someone get their hands on the plugin?
its a public plugin
when i said "servers" i was more referring to discord server / community
so they would rework the plugin to integrate with their discord server / infrastrure rather than ours
I dont get it. Why are you making a public plugin and are afraid of others decompiling & using it?
the plugin is for an existing community tho, plugin wont make or break it
and 90% of the userbase arent developers or know anything about plugins, the small percent who do r the ones that would do something bad
why would they do something bad
inb4 its literally just like a factions plugin
we've had to ban around 80 alts of a single person on our discord server, theres weird ppl 😭
there’s weird people everywhere
don’t make shit intentionally hard for everyone just because of one or two
And hard for yourself, debugging obfuscated code is a nightmare
ok thats true
Im really curious what the plugin does
And whats the use case, with this community and other communities wanting it
its nothing super special rn but we have more plans for stuff in the future, which is what im concerned about
I love when I have an error on IlIlIlIlIl.java:1458
I dont miss working with TokenEnchant
our discord lets ppl announce their own minecraft events and we also announce when skeppy hosts or smth
i made a bot that lets ppl do that and it has an api with websockets for like when an event is posted and stuff
we also have discord-mc linking & server cross-banning
the plugin uses this api to announce these events in the mc server its installed on (if enabled, i dont think many ppl will use this except for us, so not super worried about this)
it also bans anyone on the cross-ban list (if enabled)
can also only let ppl with linked discord account join (if enabled)
sent too early
whatever
Do you use minehut by any chance?
Just wondering, sounds like something minehut would use
Anyways
Whats the point of this though? People advertising their own servers.
Just curious
my co-owners use minehut so we're like inspired by them ig
well the big sell for event msgs in chat is that ppl who wanna play these events can join our server and play minigames and whatnot
then when an event happens, they click the button in chat and it uses transfer packets to move them to the event's server (if possible)
And back to the first question. Why are you making it a public plugin if you dont want others to use it?
but the event msgs probably wont be enabled by other servers since its advertising other ppl's servers in their own
well i want other ppl to use it for the cross-ban and linking stuff, we also have other plans that i cant recall rn
Can't you distribute only a small part of it, like a client that contacts a server?
well thats sorta what it is rn
the plugin connects to a few websockets (depending on what features r enabled) and makes API calls
but my worry was that someone would just change the URL of the API being used, create their own API with same schema and endpoints, then distribute that (its highly unlikely but id rather not have it happen)
Anyone can replicate the functionality just by learning about it, they dont need the code.
oh right there was also the thing of requiring it to be installed for our partners (who get extra event announcing perks)
but someone was like "ill reverse engineer it so that ur API thinks its running the plugin when it really isnt"
Why waste time with that instead of doing productive stuff?
No I mean with obfuscation
security through obscurity does not work im afraid
nono i was making joke sry
its true tho i could be doing other stuff, like releasing the plugin 🙃
yeah i realized they can still easily change the string text of the API URL
lol
but my thought was that obfuscation must help in some way so might as well do it
but im not gonna do it cause its not working, lotta stuff can break, and debugging is doodoo
Im sure you can check the integrity of the api request somehow. Maybe a combination of api key + ip address from where the request is coming from
cant it all be spoofed tho?
depends how much control the user has
primarily for this scenario
Depends how much one is trying
If they can change the api url, how would that do anything?
well if its open-source, they could just log the special key and set that every time no?
Doesn't each user get their own key?
you shouldnt be publishing secret keys even in open source software
It shouldn't be a constant in code either, it should be an env variable
can someone tldr what the point of this plugin is im not reading all that
Some api requests it seems like
well i wanted anyone to be able to use the plugin
and if i do make it partner-required, some partners might still use the spoofed plugin someone else makes
yesyes ofc
I feel like you are overthinking this
yes i do that a lot 
If one uses the plugin with their own api key, isn't that enough?
please like what is the key thing for
with the partner-required scenario tho, we were thinking of having like "checks" to make sure their server is active or smth (or other stuff, doesnt rly matter what), if they spoof it, they could say its always active
registering ssh login into my plugin
Lets just recap. Explain shortly how the plugin works.
please
Because I feel like you want to trust the "client" a lot, while you should move more checks on the "server".
well for example we'd get the player count (assuming it was not accessible through motd), i dont think theres any way to get that besides the client telling the server
If you read it yourself and the count is spoofed, what else can you do?
exactly 
thats why i wanted to somehow protect the code so that someone couldnt make their own that easily spoofs all the data we receive

