#general
3141 messages · Page 1870 of 4
@neon bramble it you only look at modern versions, the numbers for paper are muuuuuch higher
May we continue then?
A lot of servers are still stuck on 1.8 
ok nvm
it is only 7%
Servers on 1.8 literally doesn't matter
Like, no thing we do today will affect them in any way
They don't update the server, they don't update plugins
There's no hope
it kinda makes sense, the newer the version is, the bigger performance difference between spigot <-> paper
I mean
I am pretty sure that someone will just create a fork which adds it back
honestly I wouldn't be surprised if purpur added it back
They will be irrelevant tho
Will they?
Fried my laptop
If the majority of big plugins follows us
Water on keyboard not good
Well it was running surprisingly long while wet
After drying the surface and booting it up again it held out decent
btw, if you want to remove the legacy api, why isn't it marked for removal?
(Deprecated#forRemoval)
there aren't any immediate or concrete plans to remove it
afaik it's more of a dream at this point
That flag is new in Java 17, isn't it?
honestly? No clue.
pretty sure that is 9
Deprecated normally meant it would be going away soon
lemme check
yeah 9
They added the distinction because they decided some of it wouldn't go away but you shouldn't use it
well, that flag is there to confirm it, in some cases you might have @Deprecated flag on something you do not plan to remove
That's a silly level of software engineering for block game

I'm surprised it has kept going this long, I burned out on it after 2.5 years 😛
i mean, is the legacy api such a pain to mantain?
yes
either way, this isn't a couple months, or probably years or ever thing
Glad for that, as much as I've tried, I wasn't able to avoid it in some places
the most user facing issues is that whenever a plugin uses some of the legacy stuff ingame features go away
such as, hovering over a death message to view a weapon
I still think the hard fork will be the death of the project, looking back at it
well, you could make it naggable
broken on probably 60+% of bukkit servers
But I also think it'll die a slower and more painful death if they don't
So...
I'm also super jaded about all things Bukkit
well bukkit is bukkit 
It's a shitty API that has been maintained and expanded on in shitty ways
agree
but there currently really isn't a better alternative (as far as performance goes)
discord changed some colors and its really throwing me off lmao
unless you do not need vanilla features
did it?
the new message line is more red, for starter
Bukkit doesn't have anything to do with performance?
"I want modern things but I also don't wanna lose my 10 year old plugins" really doesn't work longterm
theres been years upon years of data loss or damage due to craftbukkit
I mean, that the most performant servers use bukkit.
(Paper)
Or is sponge faster?
See, Bukkit is an API
Sponge was at one point probably faster
much of it which is unfixable as it stands because god forbid we yeet outdated stuff
But that was like 1.12
Paper is a mess of patches
e.g. legacy text creates consistent issues due to the back and forth conversions
Although their API is heavier so it may have balanced out, I don't think anyone benchmarked it
Speed is Optional
the issue is, many new plugins still use the legacy api to mantain compatibility with spigot
sorry for ping
I mean
didn't realize
Fuck Spigot 😛
either we move forward and adopt new features
We will sort stuff out, worrying about it today doesn't help really
or, we stick in the past and further diverge from vanilla
We're not aiming to fuck everything up day 1
just use paperlib and dab on spigot users
We haven't met all dependencies for a hard fork so talking about it leads nowhere
we aim to have a sane deprecation policy to allow stuff to slowly move forward, maintain compat where possible as much as possible
but, between legacy plugins and moving forward, we're gonna eer towards moving forward
talking about hardforking instead of working on hangar smh

does hangar have some kind of plugin that would update the plugins on the end user side?
Just rest assured that we will make sure to take everybody willing to take part in a modern community with us on our ride
Day 1 of hardfork should be removing all deprecated things 😛
well then, I am fucked
That's exactly what we will not be doing
They've had months to years of warning at this point
hangar package manager wen
hapt-get™️
hapt
Issue is that deprecation from spigot is generally a joke
it is
Like
getting a map from its ID is deprecated
ignoring that ids are and have been the only way to get a map from the server for god knows how long
We should have broken things more back in 2012 is the real problem here
Once we have Bukkit as source we can make sure to do better
Before that Bukkit broke in some serious way every few months
I am afraid that won't happen
We bragged about plugins from beta 1.6 working on release 1.7 instead
And now no one wants to change anything
find an API or project which has existed for 10 years and hasn't had any major API breaks and I'll show you a shit project which isn'tmoving forward
and, that's the issue with bukkit; the server has supported custom biomes for what, 2 years now?
Log4J had no breaking changes or exploits in the past 10 years 

doesn't it? lol
The only way to do anything useful with command tab completion is to bypass the API
They are working on removing some of the enums to allow for custom stuff (biomes, etc) though
mojang is only going to push harder on moving forward, making datapacks more powerful, and right now the API is in this state where the shit we shoulda done 6 years ago
better 6 years late, than never 
i.e. moving away from enums, etc
How does Forge deal with command clashes? First one loaded wins? Should probably just switch to that
is now biting us in the ass because now we've got spigot which refuses to do anything without maintaining stupid backwards compat
similarly to bungeecord
oof sorry
Having the minecraft:foo vs essentials:foo stuff is nice but confuses people and datapacks
thank god I use velocity :D
Bungee fucking sends json strings through the API
Bungeecord is basically deprecated too
I still don't understand, why people do not use Velocity
like
most of the plugins you need on proxy are available
Because people are scared of change
most
there's your answer
Uh, you're bitching about API changes
But think people should use velocity
A completely different API from bungeecord
I mean, thing for velocity is the ecosystem
The only one I know about is JPremium
many things have changed since then
The duality of a man
i.e. we used to think that handling chat purely on the proxy was a good idea
why would you use velocity if you gotta make every plugin yourself cuz there is no eco system 
well, because there is :D
eventually we learned that people want features like placeholders, for data which only exists on the servers
barely compared to bungee
you don’t really need to do a whole lot on the proxy level
like tell me what do you need on proxy?
Well, that's part of the issue with a new ecosystem
LuckPerms?
luckperms doesn’t need to be on proxy
You have to remember that bungee only won out cos it was associated with spigot
Sucks
ah yes bukkit & bungeecord bashing, lemme get my popcorn and enjoy the read
then why would you use velocity if you dont need many plugins 
theres been proxies before which where much more performant than bungee, bungee won out cos spigot and java APIs
why wouldn't it tho?
velocity has like 2 commands
Were there some proxies not in Java?
now you have a new ecosystem which performs much better which requires that people slowly move their stuff over towards it or break their older concepts
well if you have some moderation plugins on the proxy
you need it.
lilypad was such a nicer system than bungeecord
why would you put moderation plugins on the proxy
why not
still works, still in use by some
no data sync if you're doing it on the network
idk because well things like bans etc. should be ideally handled on the proxy imo
i just put litebans on every backend
boot connections arelier into the connection stuff so you use less resources
^
I mean, litebans on everything works but it's hardly a great solution for scaling
lilypad had a control server which managed the actual proxy instances and did pub/sub so servers could communicate but beyond that you basically did everything just on the servers
which is a bad idea IMO
No figuring out what should be on the proxy and what should be on the servers and how to deal with conflicts, the proxy only knows how to send people to servers
Let the server figure out everything else and give it a way to coordinate with the other servers
right so instead you want to move that to the proxy
yeah?
and if your proxy goes down, everyone gets disconnected
The proxy which is handling multiple servers
well everyone get's disconnected anyway if your proxy goes down
I don't see your point?
Yeah, that sounds like how scalable things work
okay but not everyone gets disconnected if one server goes down?
Push all the work to the thing you have fewer of
I am missing your point?
If you put your moderation handling on proxy
which will only reduce load on servers
where is the issue?
I was just saying there aren’t a ton of velocity plugins because there isn’t a ton you need to do outside the proxy. Only things I can think of for general people are permissions, punishment, and chat.
I guess I can see the need for permissions to support doing bans but I would just make the server send a message to the proxy to add/remove a ban or put the bans in a DB
Not like a moderation plugin would steal any performance from your backend servers, lol
Chat makes no sense on the proxy
You can scale proxies ez if you're in the need for scaling anyways
^
moderation is a really weird area, however
It's way more complex tho cat
i mean, you will get in that state if you have like 5K players?
Like, being able to boot early has some pros, especially if you're expecting stuff to be sane
I think at that point, you can afford that.
Something 99% of servers never reach
yeah lol
But you can also just do it on the backend
and if you have 5k players scaling should be easy for whoever you have
I mean, shit gets nuanced
a ban plugin on the proxy is gonna have less load on the overall network vs the servers themselves
lemme get my dictionary
fuck, google translate does not know definition for word nuanced
and, if you're at the point where scaling proxies come into play, you're gonna need to be setup for that anyways
basically none in the scheme of things which is my point
I mean, if you have a good scalable system
i just solved your issues
at the point at which the load of a ban plugin becomes an issue you're probs gonna be dealing with scaling issues anyways
you can just throw velocity on 2x 64c/128t cpus /s
just make it anarchy so you dont need a banning system
Honestly, at which point does that happen?
like with 10k players?
you need to scale far before that anyway
If you’re anywhere close to needing to scale, then you’ll be able to solve that problem with your wallet.
exactly.
your storage solution could be a bottleneck by then sure, but eh gl scaling your instances to hold 10k players to begin with
No.
ok :(
request denied
:(
Clusters generally lose latency to gain throughput and scalability
in all my years of working with rando servers, I've literally never seen a server need to get into clustering
So might be too slow to use
and, at the point at which you get into clustering, your software needs to cater for that
yup, modern databases can handle huge loads

i.e. auto increment is a MASSIVE issue on clusters
average cluster user
@waxen panther

just do like the company i have to clean up their infrastructure for. Put everything in an access database with no relations or normalization whatsoever and then be surprised when the azure instance takes 2 minutes to load a form cuz it has to go through 480 queries to get a result

autoincrement requires two phase locking across the entire cluster on every insert, afaik
imagine using MS products :)
does it? Fuck
I mean
That's why sane people use guids
I will probably never reach a stage when I need it
yea, idk anything which really deals with that well outside of the db's which basically have their own offset for clustering
This is why twitter invented snowflakes
^^
so are its users lul
Much of this stuff is already solve, ofc
uuids index and cluster poorly
but, issue is that plugins rarely need to cater for this scale, and so nobody does
guids then 
So people make uuid-like things that don't require locking on insert but also sort better
UUIDs are a pita because "they should never conflict"
Two kinds of snowflakes 
In some scenarios using autoincrement bigint might be beneficial. A good example of this is some kind of a report system, you want to have some relatively short, easy to type ids, so mods do not eat you alive.
In my experience most of the group complaining about snowflakes are the actual snowflakes but we probably shouldn't get in to that 😛
your issue is that db's in the cluster need to agree with one another
otherwise what happens if two db instances in the cluster try to use the same id for the auto-increment?
which leads me to another point
hence, snowflakes
how do you guys synchronize data between servers?
snowflakes are basically a mixture of the time and some other data to ensure uniqueness in a db
postgres
depends on the data lifecycle
For such a db you don't need a cluster tho
you usually dont
i.e. eco is dangerous to cache on individual instances so for that you'd query directly against the DB
No
hypixel doesn't do live DB stuff afaik
You don't want to use the stuff hypixel uses
It's prolly still filled with legacy stuff
they load data into some system which keeps data loaded during the players instance
hypixel probably doesn't have enough DB load to require a cluster
which is part of the ideal world is that you have the speed of in-memory stuff with a sane API to do stuff
Where's oncle agent to tell horror stories?
and that is exactly my issue, I have a profile which consists of some balance and that's pretty much it, I need to access the balance synchronously therefore, it must be locally cached, however I need to update and read that same profile on multiple servers at the same time.
using mariadb, considering redis
In my years
which is kinda unavoidable
i am super paranoid, like really really paranoid
Still don't want to do a network call on the main thread
do what you can off the main thread, but, the instances where you need to do it on main are not all that often that it's a pressing issue if you designed stuff properly
But you shouldn't need to either
ikr? That is exactly my issue
Well, issue is that every plugin accesses the eco on the main thread more or less for things like commands
part of why we wanted a new vault is so that we could push stuff like Futures, etc
Currently, the only place I need to do it, is chest shop (yes those are still a thing)
Unless you care about rcon users you can just return from the command after setting up an async task to do the lookup and give a real response
That ain't an issue for me, I have pretty much all things own
that is exactly what i do
all my commands run async by default
i push almost everything off the main thraed
yea, I mean, part of the joy these days is that if you wanna do stuff properly, you really need to do it yourself
I don't think that there is any real competently maintained eco plugin these days
You could make a shop that does the purchase async but it'll be more complicated and custom
Like you cannot imagine, how awkward I feel for using Zrips's residences
But, eco is this weird area where the plugin gets stable and doesn't need to do much more than that
that is currently my last resort, it will substract the balance, try to remove the things from the chest inventory, if it fails, add it back
and so the plugins basically become "complete", bugs are discovered over the years but people already moved on
that's what transactions are for
using external plugins 
but back on the topic, how do you synchronize data between servers?
cache what can be local locally
have a messaging system which allows you to bust caches on the network
optimise what can't be cached, etc
ok, how do you prevent race conditions?
depends on the scenario
Like, you're asking one of the mystical issues which CS has yet to solve
If Microsoft got Windows to run on the Xbox it would basically destroy all the other competitors.
it will take me a while because my english lol
they got running chromium on it :D
it is lol
It's an NT kernel, DirectX 12, etc
It's like Windows but you replaced explorer.exe with the xbox UI
And it has Edge so you can already use it as a desktop version of a chromebook
I think his IRC ping for the word hypixel broke 
ok so we have server A and server B
Our player "John" is playing on server B, however he also has a chest shop on server A. He has 100$ on his account, now at the same time someone sells him 100 $ worth of diamonds on server A and John buys 100 $ worth of idk... sand on server B. So, this will happen:
server A fetches John's balance -> 100 $
server B does the same -> 100 $
both servers proceed, because they see that john, indeed has enough money to do the action
now
server A sends a query to the database to substract 100 $ from John's account
server B does the same
the result
John now has -100 $, which, especially assuming we would use unsigned numbers, would be a huge issue.
These are the technologies that I can utilize
mariadb (I store data there)
redis and rabbitmq (I do not use either of this ATM)
that's where transactions come into play
ok, lemme make this a bit harder
server A needs to do the substraction part synchronously
start transaction
do mutation and lock db row
do stuff
commit and end transaction
after the row i locked in the db, nothing else can read or write to it if you lock it properly
You can even run UWP apps on Xbox lol
ok, what if, the item becomes unavailable in the chest on server A, meanwhile we do the DB action?
you could reserve them before the transaction, or do the checks while you have control
pre-serve
how would I reserve them? (I am not that advanced with mysql in java)
take diamonds from chest, wait for transaction, if successful, pass them on, if not, put them back
nobody has solved these issues nicely
you basically just start getting into multiples of transactions potentially

that is pretty much what I wanted to do except redis. So there isn't really any simpler way?
or queing such transactions up somewhere so that a single threaded thing can just run through work
You can also escrow money across servers for sync. So say the John’s total balance is 1000. Server A wants to deduct balance. So server A asks server B “hey, send 100 from bob’s balance into escrow”. B does this and all is well. Once the money is in escrow, server A transfers the money out of escrow, and now it’s in A’s control. A deducts the money, and bob is left with 900.
my solution was, to keep those things in redis cache
the technology you use probably wont solve the problem
and then lock the resource when I need it
if you're doing a get + a set, the value could change in between those 2 calls
which is why transactions exist
Which is why you wrap it in a transaction
you literally lock the row so that no other mutations can occur
but, once again, this is one of the many unsolved issues of CS
ok, would placing a cache between this (redis) make the process faster?
there are many means to work around the issue but each of them has their own caveats and limitations, especially when dealing with multiple resources which mutate
yes i agree, just highlighting that redis doesnt magically solve the problem
ik
if redis supports transactions, I mean, yea, you'd just work across the in-memory db
I just thought it could help to solve the issue
I am (at least currently) on a shared host
this is not in my control
Like, within 50ms a tick, stuff matters a lot harder than it does vs to humans
much of the stuff people panic about caching on MC is just typical to do directly against the database everywhere else
Redis can do this kind of thing with a LUA script.
well,from this conversation I know one thing for sure
I need to completely redo my db system 
You really don’t need redis for this
I want to be prepared for scaling
You just need a proper DB schema
Only design for the next order of magnitude.
If you’re at 10 players now, don’t design for 1000 players.
also, when I update something, I somehow need to tell other servers to update the local cache
i am bored
And want to learn this shit
better try it with 10 players than with 1k
I mean, as I said, we get onto data lifecycles
cache invalidation is yet just another unsolved CS issue
well it takes a lot to attract those players, maybe work on that attraction first 😉
you can poop messages around the network to tell stuff to invalidate data, but, theres always gonna be potential for races outside of storing everything in some central system which manages all of that and everything is queried from it, etc
well, my current system works until multiple servers need to access the same data, so I will leave it that way for a while
You missed the point, you should only design for 1000 players once you hit 100. You should think in orders of magnitude. First figure out how to get 10 players, then 100, then 1000.
keep things as decoupled as you can so things are easier to replace
it is not
odds are you’ll never need to refactor
^
I just work with the worst case scenarios
Basically
If you get to 1000 players you’ll be able to solve this problem with money.
go get a piece of paper
not economical
or best, depends on how you look at it
write down all the chunks of data you need
ok, but I also want to learn how to do it :D
it is not.
do i need to cache this? does caching it impose any risks? etc, etc, etc
Listen to cat, this is how you design distributed systems
listening.
each problem is really going to be unique
Ideally you don’t design distributed systems at all lmfao
solutions vary depending upon the data involved and how viable and safe it is to cache stuff ^
there are literally only a handful of servers that do more than 1000 players ever
sometimes you get into the corner where you need to redesign stuff to be able to cope with it
Just put this in production and use a single DB
ok, if querying on demand is not viable and caching imposes huge risks, am I fucked?
I’ve only managed 800
It basically does intelligent query caching and invalidation automatically
I mean, unless you find a magical solution for it, you're fucked

(it's a research project, don't do that)
ofc, many issues where people think that data can't be queried on demand, it can be, easily
and most servers that get to 1000 players are lying and have less
It does actually work though
databases are MUCH faster than people given them credit for
They proved you can do it
(especally if you configure them properly)
ikr? but the issue is, the database might be in a next country than the server
that's stupid
it is
Never do that
but I have to work with it currently
noria won't help you there, it sits in front of your DB but you can't run multiple of them
Also, don't run any of them 😛
i do not plan that lol
Nothing can solve the latency issue
No
wow though
This is why you need to fix your broken architecture
ikr?
is there really anything to fix if you’ll never get 1000 players
not to be pessimistic but
I wont
you’re worrying about the wrong things
The point is, I want to learn how to do it + be prepared if it somehow happens
gotcha
It basically turns your query in to a graph, computes and caches the values of each node of that graph, and then since it knows what the inputs to each node are when you do an insert or update it invalidates those nodes automatically
Or something like that
So if you do two similar queries some of the cache for the first one can even be used to make the second one faster
spoopy
And they have math and logic and shit to show this won't have invalidation problems
that actually sound pretty cool af
Just off by one errors and similar mistakes in the implementation 😛
I'll give you an idea.
Get 10 players, keep lowering the CPU performance till you hit issues, look at what's using most of it, fix it, and repeat.
_After that, do the same with memory.
_
Bro, that's cursed
Bro.
the /modmail command
(it is my account lol)
ok done
I also recommend either disabling DMs that aren't from friends or at least disabling them from public discord servers like this one
Yeah if someone wants to reach out to you, they will find a way
I’m yet to get a message from those scammers
Even the bots don't want to communicate with you
This is not paper, but I hope I get some inside of this
Im looking to some app dev and as far as I have read, usually the apps do api calls to rest apis and such, some of them may need authentication, how does generally deal with that? I assume some type of access token? If so, how do they determine that the token is being used in the same device at it was generated?
Take a look at jwt tokens
As I can read, thats just a replacement/alternative for Bearer tokens, right
But that token have something that identify the device? Does app generally check the device or rather something like the iP'
?*
@warm anchor https://www.youtube.com/watch?v=kzQyo76BTjE
one day i'll stop using the grilled lettuce clip.
today is not that day.
#GordonRamsay #KitchenNightmares
If you liked this clip check out the rest of Gordon's channels:
http://www.youtube.com/gordonramsay
http://www.youtube.com/thefword
http://www.youtube.com/kitchennightmares
More Gordon Ramsay:
Website: http://www.gordonramsay.com
Facebo...

Anyone willing to help me set up a server restart script?
Im so lost with this
I dont know what gist or chmod or tmux are, and it seems like this tutorial assumes that you know exactly what to do already
Are you Linux or Windows?
Windows
where is that tutorial
Ah, well, in that case the tutorial doesn't cover it
Pinned message in the paper help chat
well yeah the tutorial assumes you understand linux, considering 90%+ of servers are run on linux
You'll have to look for some start.bat script, but I can't recommend anything specific
Ive never heard of a server run on linux 😂
you’ll need to specify windows when trying to find help stuff
Literally majority of Minecraft server runs on Linux

I can’t think of a host that uses windows
Tfw windows NT
Okay so, in spigot.yml, I set "restart-script: ./start.bat" to whatever my "runtheserver .bat" file name is?
the script there won't work for windows, on windows you'd just have a "goto" loop and deal with stopping it yourself, basically
just use nssm or firedaemon
What are those?
wrappers for windows apps to run as services
so if your server crashes its automatically restarted and you can control stuff like starting the server on a different user account, etc
I just want my server to start back up when I type /restart 😅 I dont understand why that isnt just part of it by default
because that’s not how most people do it
It is
do this. it’s the simplest.
Just, the entire mechanism is flawed
i rarely see anyone set up a restart script using spigots stuff
...so do /stop and it restarts...
imagine if you where dying and you had to pop out a new one of you to keep the world moving
every guide i’ve really seen tells you to use a loop
it just, not great
am sure you could do the fancy thing we do for linux in powershell
or maybe even batch
It just requires that somebody knows how to work with other of those things and do it, and, thus far, nobody has stepped up
:restart
java ...
goto restart
or whatever it was, is rundementaty, everything will restart even when you don't want it to, but, it works
can get as fancy as you want too
and I felt inspired so here it goes
@echo off
chcp 65001
:loop
java -jar server.jar
choice /C YN /T 30 /N /D Y /M "Would you like to restart the server? (Y/N):"
if %ERRORLEVEL%==1 (
echo Restarting server...
goto loop
)
echo Server stopped! Press any key to exit...
pause>nul
exit
batch ain't as bad as some make it sound lmfao
(this will basically restart the server automatically after 30 seconds if you don't go to the command prompt and press N to cancel)
well, it's mostly the equivalent to what I have for my servers' scripts on linux so it's pretty good to me
But, nobody here wants to learn batch to do something for an environment they don't care too much about
now I'd only add a second choice to ask if I want to make a backup of the world
and probably use 7-zip's CLI tool for that
what's a recommended server jar for 1.8, or are you guys gonna tell me to have 1.18 backend ._.
yes
fair enough
but yeah i guess that on linux you can set up cronjobs and other fancy stuff, idk much about it
i just felt like flexing with my first language ever a little LMFAO
how to enable individual mob cap on paper?
It’s enabled by default
Unless you are running a super old 1.17
Per-player-mob-spawn in paper.yml
alright,but i've experienced low spawn rates on mob farms when people are in a far
how to fix that?
low spawn rates compared to singleplayer?
That’s just how it works
if one player is far away from mob farm the spawn rate is low
Even with per player if someone has a less than ideal condition for mob to spawn around him, it will be more likely to pop up around others
mob spawning is naunced af
many issues are down to misconfig/not understanding how mob spawning works
i see
but, generally, mob spawning is just broken af and the only good fix for it ever is gonna be to just completely replace mob spawning
I pinged you in #paper-help (which is the correct channel for questions) read that wall of text @elfin cipher
per player helps mitigate some of the wider issues and even vanilla does that in 1.18, but, there is no overall magical solution for all issues, it involves tryna pick off more individual stuff
alternatively design your server around different mechanics
singleplayer doesn’t translate well to multiplayer
plugin idea: virtual farms
yeah i thought about that a while ago
had a system designed so that it wasn’t just loot appearing in a chest
I've been saying that one for a good year or few 😄
was thinking of basically a gloriful inv UI which would let you do stuff like "feed" your animals
however i hate automation so i just started going the route of more manual stuff
People in my server just built at spawn and share farms. Works quite well 
i.e. sieving gravel to get gunpowder
thing would scale the capacity based on a ringed fence would would have NPCs which roam around for the feels
Just, am not really interested in much plugin stuff anymore given that most of the stuff I do work wise is around MC
when designing mechanics on my server i try to do two things: encourage active playing that isn’t too grindy, and try not to get stuck in a GUI
A very effective strategy in my server was not to whitelist anyone who messed with redstone
Nah, on a serious note, I just make the restrictions very clear in the application process
yea, that's part of why I was also semi iffy about it
but, I mean, in part it's not like most beef farms, etc, care
i’ve evolved a lot from having an afk farm server
but, depends on server type, etc, as to how well that plays out
big issue ofc i that "general server overload" is the biggest unsolvable one
Good technical player can work around it and avoid some of the most heavy farms
But sadly majority of people who build farm is just copying
the less automation you have with vanilla mechanics the less your server will lag too
yeah
Lol
0 ability to adapt to the multiplayer bukkit mechanics
because they don’t know how shit works in the first place
At least for every minimum effort make a ON/OFF switch
And no you don’t need 200k bamboo
goood I fucking hate node...
It’s not even a good fuel
mfw my pc started and said that it didn’t load correctly, i click continue, it restarts anyway, and now it’s updating my bios
pure fear
Better than Vayne yourself
i made it
Happy tows-day tuesday
memes
There are two things cat doesn't tolerate - bullying anyone over their choice of programming language, and fools who use kotlin
I pity the fool who kotlins
what's fun is that the spigot IRC channel used to change "fuck" to kotlin after there was muucho discussion around it
And after the old censor, hypixel, didn't make sense anymore cause agent left irc
Consistency!
does anybody care about my api diff thing?
apparently it has been broken for a while
should be up to date again now
somebody know a new api and can confirm?
JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.
I noticed it was outdated a while ago, but thought it was just updated manually
nah monday is my patch day, thats where I schedule all this kinda stuff, renovate, etc
paper adds 243 methods btw
getSimulationDistance is there
excluding stuff in our own package of course
get_maven_sources 'https://papermc.io/repo' 3 'com.destroystokyo.paper' 'paper-api' paper-sources.jar
it can't work, lol
ok I give up
jdiff isn't compatible with java 17
Caused by: java.lang.ClassNotFoundException: com.sun.javadoc.Doclet
and if I don't use java 17 it can't work cause it can't parse switch expressions
any idea how to disable bows on spawn or lobby so it is not spammed by arrow
With a plugin called worldguard
lol this is true
enderman farm enchanting area
deep slate bricks looks just like the one block from tinkers construct
beautiful block though
That feeling when you're almost free of static getters but then citizens2 comes through the door like "oh yeah gotta have no-param constructors for traits" ._.
hm?
You could use guice
Nvm
That wouldn't probably work
Well, citizens is at it again
Citizens is terribly made.
nah, its always Wednesdays, 3 weeks
oh
The following NEW packages will be installed:
libgnome-desktop-4-1 pkexec polkitd
Can I not?
Oh, I think this is them splitting pkexec in to its own package so maybe I can remove it after the upgrade
Instead of just policykit-1 I have packages for each part
hmm, guess that's not done yet
now my favorite part of the sprint review comes, the performance marketing team presents stuff
maybe I get to see tiktok stuff again, that was fun last time
lmao, the focus on a single product now because it sells like crazy on social media
Thank you Discord: https://posili.me/i/uHfnCS4S-2022-02-22_13-28-23.png
what hm xD traits can't have params in constructors since citizens instantiates them via reflection
umm
what are you doing that you need a static getter for your trait?
you do realise that traits are instantiated per NPC?
ah forgot that
JavaPlugin.getPlugin(YourPlugin.class) then
iirc that worked fine in onEnable
well, a static getter is faster
but ye that will work in most cases unless you do fancy stuff with class loaders
You can pass in a supplier to use instead of reflection
I created a blank abstract Base class which the actual trait inherits to satisfy the no-args constructor requirement
wait
didn't cat literally say once that he adores Kotlin
yep supplier solution is way better
didn't even remember you could do that lol
been too long since i touched minecraft
““The Soviet Union? I thought you guys broke up?”
“Yes. That’s what we wanted you to think!” https://t.co/8UCVkhzZwR“
heh, from the same episode https://twitter.com/Dawg_in_Houston/status/1496108444155367424
Oh, that's cool
I'll have to try this, thanks!
why does plugman have to break everything, plugin works fine ->/plugman reload plugin -> e.getInventory().getHolder() instanceof X returns false even though it's supposed to be true

issue with classloading
reloading a server does some janky stuff that can result in stuff like that (I assume that's what that plugman command does)
Netflix is going to be $20/month
myeah, just wondering if there's any sane way to fix it or just forget about using plugman, tbh I don't need it myself, it's just that our other admins like to use it
Unload stuff correctly on disable?
is there a way to give players like speed boost when they enter a specific world like spawn or lobby
listen for PlayerChangedWorldEvent
then when it triggers get the world they're switching to
which you'd do by event.getPlayer().getWorld()
(iirc PlayerChangedWorldEvent#getTo was removed quite some time ago so you'll have to do the above instead)
honestly, to "fix" it you'd have to change how the JVM fundamentally works
it wasn't exactly made for loading and unloading code on demand - you can do the former easily but not the latter (or at least without eventually getting a chronic headache)
you'd only really have the change the classloading code (In practice this would probably mean the code inside share/classfile and share/cds), the JVM runtime itself doesn't really bother when and where code was loaded or unloaded
lmaoo i just realised that
OSGI 😄
You have to very carefully keep all your modules isolated from each other, makes working with it a huge PITA but keeps it all very flexible and afaik it can unload stuff cleanly
Just hire a whole team.
Salary range 10-15/hr depending on experience
Is this a job working on the JVM for Oracle, RedHat, or IBM?
Some better send that comic.
Job listing for Oracle
specifically the OpenJDK project
Sounds about right then, must be a senior position
For that kind of position I would expect the pay to be at least $150k/yr
That list was "choose two" right?
Unless it's in the EU, then cut that in half 😛
yeah pretty sure it is I couldn't find any junior JVM positions no matter how hard I tried
at least $150k/yr? maybe if you’re in kansas
that would be enough for me to escape poverty and even retake my previous failed degree at a leisurely pace lmao
and i guess get a new PC that's actually good
my current one has the fan grinding against its insides whenever it powers on
you should be able to escape poverty with way less than that
yeah pretty much
also depends if the speculated 150k a year is in US currency
pretty sure it is though
The average in California for a Senior Software Engineer is $136k
This is a very senior position but also for not for one of the big 6 so I'm not sure you'd get a lot more than that
just checked the conversion, that salary equates to about $16810 a month in my local currency
that's a lot
yep 12500 USD
SGD
now I understand why you aren't impressed by 150k, lol
who?
5000-8000 SGD from what i remember
12500 USD is more than twice as much as what most people earn here anyway lel
12k is more than twice as much as most people on earth earn
That's almost twice what I make a month 😛
you don't have to be poor or even above average to be impressed by 150k a year
I was more like hinting at singapore being an expensive city, no?
I guess a lot of people here make 6 figures so it may not seem to be a lot
well you're hella right
everything here is costly af
I probably could make six figures but then I'd have to live somewhere where $200,000 for a house is a steal instead of being on the high end
For a cool million you can buy a toilet sized room in Singapore 
also, typical disclaimer that comparing wages across currencies and countries is useless af
Hell in those places $200,000 would be the down payment on a house
a 80m2 flat here would cost me half a million
my old (and honestly still current) home cost my dad like 800k last i remember
now an apartment smaller than where i live is like 1.6 million
My house is 140m2 and in the current market is still only $120,000 at most
Well, I could probably get more for it, if I put $10,000 in to some cosmetic work first
Not interested in selling though so... I'll get to those eventually 😛
eh i guess singapore doesn’t have much space
200k for a home is ultra cheap here xd
granted i have been there and it seemed pretty open in the north
even public housing costs upwards of 600k
You can literally jog across their border in a few hour @charred sleet
From one end to anther
god they must be expesive
they used to be dirt cheap until 2020 i think
back then no one really considered buying a house there
then that changed pretty recently
sales rocketed pretty high
and with that so did the prices
housing prices are zooming
that's a small city for you i guess
it's kinda of both city and country anyway xd
the education here is probably on par with south korea in terms of mental health issues lmao
someone did say "It's nice to visit but don't live there" while referring to Japan once
not sure if it holds up for this instance too
It applies to pretty much all Asia countries tbf
I will visit all of them as tourist
lol what happened to google maps, its like they tried to do a 3d look but got it the wrong way up haha
all falling over 😳
lmao
You should check Aus it’s all upside down 
lol
managed to get the chinese swimming club in the view
used to go there and just sit at the arcade machine without actually playing it
i probably looked like a dumbass
Oh no shaerman is one of those
that's decently close to where I live

tell me, are the buildings falling over lol
well
I know someone from Singapore
if you don't count that one time a hotel imploded on itself in the 1980s I guess not?
We can take Sherman out 
😳
good luck finding me
:)
somewhere here
Oh yes
just gotta search like a million people ig
found him https://i.imgur.com/WJV4Qqe.png
fuck
As leaf would say, one nuke will be enough 
?
are you not?
not?
somewhere here https://i.imgur.com/SMFDmnh.png
yes
TRUE
knenny got it
kenny casually doxing millions of people smh
smh my head
we should find Noah next
somewhere here https://i.imgur.com/V8Fq49n.png
Wait Noah is Briti*h ??
no 
Imagine being British
(this is sarcasm I am British)
yes

a very angry cat is now approaching your location
i can imagine
@waxen panther thoughts
I would ping cat but you will need to pay me enough for the risk
Cat will get lost at the sheer volume of roundabouts my town has
britain is shit
my thoughts on what
@waxen panther thoughts
do not come
there's too many words
being british
sorry
Being Briti*h
you dont need to dox urself
Sherman really want people to visit him
i only gave the location of the train station closest to me 
close to the f1 track then
We are hitting it too real for Sherman now
in other news
lmao
huh it just sounded like it would be higher
they're literally already in ukraine lol
entry level is $104k in seattle
i know, but i doubt they'll actually start fighting
or at least i hope
its not like they need more land
politics 😳
Average for senior in Washington is $149k/yr
weird that it doesn’t go up that much
long story short they don't like the idea of NATO being right next to them
they should be honoured lol
honestly though it'll probably be a compromise
happy 2/22/22 paper people
Putin isn't dumb to start such a devastating conflict + the Russians back at home also don't want a war
i wouldn’t assume much about him
i know of another place with similar history: sudetenland
i’m sure we all know it ended there right
well... yeah
It's a pretty common way for imperialists to justify their expansion
yup they are protecting those people from the evil illegitimate ukraine regime /s
might just be wishful thinking on my part
30 years ago 85%+ of the people in that region voted for Ukraine to be not Russia
but i doubt Putin is extreme to the point that Hitler was
why do you doubt that
Hitler was an ideologue, putin isn’t.
he loved a country that collapsed and is now a hollow shell of what it used to be, and now he has a chance to try to restore it to former glory..
Yeah, but putin can be expected to be much more rational.
Hitler was irrational, especially towards the end of the war, not using slave labor, but killing millions instead
but even if he didn't have the human decency to consider that the decision to go ahead will effectively murder millions of innocent people, there's still his support back home that risks falling
but i sure hope no world war is starting over ukraine
the Russians (and probably the soldiers currently being deployed rn) don't want to start a war too
Drop it
2/22/22*
wow australia is such a spoil sport
no
22/02/2022. 
kelvin 🤩
It’s twosday innit bro?
Two for Tuesday
ok mr upside down man
as a british person, i take offence to this
jeoy
WTF
funny
Where is my australia prefix barry??
@meager tusk bro!
Bro.
sorry camm you don’t get one
What's up?!
Why are you drifting out airplane?
I told you not to do that over 🇷🇺 bro!
They deleted it
yeah that link is not going anywhere
there's a no-call sign one I think in Russia nearish the border
but it's registered under a commercial airline
There was a drone(?) a while ago on it
is it?






