#general
3141 messages · Page 208 of 4
Hrm. Using Thunderbird for the first time. Where tf do I click to add more accounts?
I'm right and left clicking all over the place
ooof that's convoluted but I found it
@stiff yarrow hey mate my players are wondering how long the server would be down if I threw MCMMO on it real quick. Is the configuration/setup up pretty quick?
you don't have to configure it if you don't want to
its designed to not need to be configured unless you want to make it grindier, which is the main thing people adjust
you may also want to turn on RetroMode as not everyone is a fan of the new scaling system
new scaling system?
I'd be more than willing to help you out in the mcMMO discord but I don't really want to spam the paper discord with mcMMO discussion
ah for sure
nossr tries hard to act nice and caring with his users
since they are basically his livelihood
he's a good person
@pulsar wigeon You're aware that WorldGuard on Bukkit downloads WorldEdit, right?
so, I don't want to install yet another plugin, especially since I want to use the default worldborder, but it is nigh on impossible to find a plugin to just fill in the map
I'd love to find the owner of the sk89q website
I paid to renew his domain name about a year ago because of the manuals
uh, looks fine to me glare?
April Fools?
😡 f u
Okay I'm not going crazy, I just refreshed the page again
It keeps switching back and forth
i think curse is playing pranks on you
It probably is cause now it says worldguard again
Possible they have load balancing and one of the 2 sites the use is out of sync
That might actually be possible
I mean they let an obvious download botter go unpunished for years
at this point I doubt anyone works on curse bukkit
someone still approves files there apparently
yes
but in dbo they don't have automatic approvals
probably from back when the bukkit project cared
how do we know anything has been approved
I mean if they share the same DB
it's "waiting" or "under approval" for a good few hours
@meager perch send me a list of plugins that you use when you can
want to try to reproduce this
Oh
i mean
I don't think they actually check the files
https://www.curseforge.com/minecraft/bukkit-plugins is curseforge mirror of dbo
but in dbo it requires a manual approval
I accidentally uploaded the wrong file and they approved it, wasn't even a plugin
I am seriously doubting there's a review process
(and yea i doubt they look, probably just a button click)
when i upload worldedit forge
it's like, 5 seconds for approval
Also, I managed to rename PlotSquared and then I can't name it back because it says the name is taken
by us.
😠
So we're Plot² now.
have you contacted support lol
nah I don't care enough about p² lol
What does your plugin do?
downloads are meaningless now that zombiestryker has gone unpunished
I added my jenkins API wrapper and the plugin doubled in size, even after having removed unused shaded dependencies 😛

oh hi mark
a stinking turd
suits you 😃
now the only decent metric would be something like bstats
is zombie the one that force downloads updates?
yes
yes
force downloads period
but that is not why his downloads are so high
not just updates
hes also download botting
metric
muricans get triggered
bstats is cool because it gives clip material for his download circlejerk
idk about that nossr
papi is getting rekt tbh
worldguard gonna overtake it soon
:^)
It should
@pulsar wigeon couldn't find the smoking gun when decompiling his code
i mean
WorldGuard is quality plugin
we found the downloader being retarded
PAPI is literal turd
til he changed it to the github one
yes but nothing that would net you 30m
I don't remember us finding anything like that
nossr is old man and forget many thing
in what?
in his plugins
sry for weird grammar haven't had much water today
they all "auto update"
who's plugins, who the hell we talking about xD
zombie stryker, ultimate scumbag
I would add an auto updater to my plugin
never even heard of the dude
dafuq is DBO 🤔
hes more successful than positions #2-#10 combined
it's not like we make money off of this shit

just because you dont

am not american capitalist swine
no ur a sewer swed
4 curse pts lol
I haven't made any curse points
I do care loads about community so I offer quality entertainment for free money
like, per month or?
i think total LOL
I don't get anything from PlotSquared
I did get curse premium or w/e it's called from chatclear tho
so I could download multiple wow addons at once
very useful
feelsweak
so I could download multiple wow addons at once
i only have 1 mod though
hold up
so i guess its not that bad
what do you mean multiple at once
unlimited downloads simultaneously
press press press many download concurrent
throught eh curse client
"update all" and you get like all of them at once
makes for very fast setup to pwn european noob
retarded that that's not free
yes so it took loads of time
i mean
yes very dumb make pwning hard.
they had to make money somehow
how about
dead game
make a good product
wow not dead
for a very long time
There is still a huge community of pvp bots to play against
dont you pay for wow monthly anyway?
i mean, now it's twitch launcher and shit
@pulsar wigeon back in the day you had to run like 100 addons too
nowadays like 10 addons do the job 100 used to
i know nossr
Yes, you pay for expansions and then you pay for game time
i still have 100 addons
idk there are other ways to stay afloat than artificially constraining people
sweepy 
spoken like a naive individual
what about that is naive lol
And you wonder why you dont have friends
I have friends. You don't. Therefore that wasn't really that good a joke tbh
they all suck tbh
matrix used to be full of malware
dunno if that's still the case
I've never had success with anything but the curse/twitch launcher
city you could start by charging money for your products
someone wrote a python wrapper for curseforge api though
works for me 
Although, I mostly dealt with private servers and then you would need to install them manually either way
that's unfortunate
and spend 900 years finding compatible versions
lol
as disappointed as i am with the state of wow atm, private servers have always sucked imo
https://www.reddit.com/r/IBO/comments/c00e4o/hello_fellow_ib_students_word_has_it_there_will/
This is actually kind of funny. Very out of context here though, I suppose. It's funnier if you know about IB exams, but it's still of some value here
(DiscordBot) Hello Fellow IB students. Word has it there will be a new IB course... : IBO - 33 comments, 415 points - Aqxxon, 1d ago
never played private
Private servers used to be a lot of fun, back around the cataclysm days. There used to be actual communities, something that wow has always lacked imo
i was always too broke to play wow
^the real reason I got into wow private servers
they were free to host. Although, I had my crappy school macbook back at the time
and I couldn't get trinitycore to compile, so I had to use a premade launcher that never worked
Sad times. That's also how I got into programming.
fbi arrests me and goes through my programs
i wasnt planning a terrorist attack or anything, i swear
plz don't explode the youtubes
they are doing a good job imploding on their own, let that happen
i'll host it on my 25gb vps
but let's only host those weird edited family guy compilations where they cut out all of the jokes
so basically its just the whole episode?
oof
🤢
The Orville was horrible though.
a million ways to die in the west was also genius 😛
It's my sister's birthday and my niece just came in and showed me the card she made and she goes
"I messed up on her face
So I made it black."

arrest her for blackface
Or make a really angry tweet about it
you need to publicly shame her

is she a part of the kkk?
just woke up. how's 83 treating everyone? any servers blow up from it?
anyone here using dynmap?
I just installed it and can't get it to where people can access it from the net.
Added a TCP/UDP port fowarding rule opening external port 8123 pointing towards internal port 8123.
Told friend to enter my IP (same he uses to connect to server) into a web browser and no dice. Then tried adding :8123 to the end and no dice.
No idea where else to ask these questions btw so if anyone has a "general minecraft server help/discussion" discord server, I'd love to know it.
VS code changed that ugly blue bar to grey 
term: you should only need tcp forwarding, no udp
and maybe you have to open that port in your firewall
what's the context James
It's a command to update our server.
Check for updates, backup, stop, backup again, download and start.
Paper.
'Lover', the album, here: https://TaylorSwift.lnk.to/Lover Music video by Taylor Swift performing You Need To Calm Down (Lyric Video). © 2019 Republic Record...
Oh I see
(Korobi) Taylor Swift - You Need To Calm Down (Lyric Video) - length 2m 58s - 425,675 likes, 13,119 dislikes (97.0%) - 3,271,119 views - TaylorSwiftVEVO on 2019.06.14
I prefer shake it off 
soo anyone have a test server with anticheat and block logging want to test a secret cool new feature :^)
If you want the source you can have it, it's just bash but it's pretty specific to how our server is setup.
could just gist it
Well, it's tmux, curl and bash.
What if paper added a commandline option to let MC behave more like a daemon?
where it wouldn't log to stdout & require tmux, instead you'd control it by sending commands to the daemon
would make it a lot easier to use systemd with it
do free anti cheat plugins even exist anymore .-. NCP seems ded
working on anti-cheat would be pretty shitty if you weren't printing money
@wide hazel I couldnt pm you, but i want to inform you about a bug on your latest update of AntiVPN-bungee. https://hastebin.com/zodunesaba.sql I am getting this in the console on startup
https://gist.github.com/Blazzike/b997e66c83f9fb69889b7740432d33f8 here's the startup script, feel free to let me know if I've done anything "wtf" in it, this is my first time using bash. Pretty sad it doesn't support objects which is why the servers are space separated.
today is a sad day for me guys
ive finally moved on to better plugins
somebody give me a hug
@strange bane https://www.shellcheck.net/
ShellCheck finds bugs in your shell scripts
@crimson lodge that error only happens with BungeeCord (not with Waterfall) - it's ugly, but completely harmless
who is adrian 
bunch of errors there
my servers version of herobrine
this fella
xD
idk why i just made him a meme on my server
Oh, well I didn't post it specifically to find issues, just in case anyone wanted it. Neat website though thanks."Double quote array expansions to avoid re-splitting elements" what does this even mean?
Specifically the "re-splitting elements" part.
first one to like gets free discord nitro 
That website is so good for learning bash practices. ty again sweep yo face.
good
huh
@strange bane you can fake bash objects with arrays and variables
FIELD_NAME=1
OTHER_FIELD=2
...
ARRAY=(<things>)
thing=ARRAY[FIELD_NAME]
or wrap the array in ${} or w/e
syntax for bash arrays is never clear
So what would <things> be?
varName = (eleOne eleTwo eleThree eleFour)
egg82 ❄Today at 8:26 PM
@crimson lodge that error only happens with BungeeCord (not with Waterfall) - it's ugly, but completely harmless
Oh okay, thanks
eleTwo = ${varName[1]}
Hm, I don't understand. How does that help make fake objects?
because you create your array and it kind of acts like a tuple where you can just grab the items out? it's not an object in the typical sense, but you can pretend like it is :>
and you can name variables to be your indexes
So it sorta looks like you're accessing fields
Oh, I get it. I don't mind having to use numbers, it's more just not being able to store multiple bits of information together in an array element.
I wish it was more like JavaScript.

array=({name: "Example" color: "red"} {name: "Example2" color: "blue"})
${array[0][name]}
I guess.
just use js at that point lmao
using JS in a bash script 
^
the shake emote was for you simple 
I was thinking about it but I thought streaming Paper's output through NodeJS wouldn't work right.
yes i realize it is not js
and i wasn't saying use js in bash
i was saying if you want it to be so much like js, then just use js
:>
Also, glad I used bash just to learn it.
This was my first project genuinely using coder server, really love it! 😄
from the context he was just learning stuff not trying to do things in a JS way 
i just showed up didnt read, fek u 
honestly use go
it compiles quickly and is easy to setup, doesn't require huge dependencies or difficulty
but it's really clean for small stuff with type inferencing etc
and compiles to a native binary that doesn't require an external runtime
unlike JS, Java, Python, etc
I've done very small amounts with go, plan on learning it properly soon.
I wanna learn it just because it's GC + super fast.
define super fast 
It's faster than every other language I know.
What languages do you know?

It does have a small memory footprint considering it's GCed, so that's nice
It's just missing so many language features it's a total pain to use for large projects
project I'm working on is just over 6800 lines and it's already a total pain
All the mainstream web ones, I guess Bash now, Java, SQL (lol) and PHP I think.
Java is faster than go
not at startup time
Really? O.o
Java's GC is extremely high throughput and compacting, which Go's isn't
so yeah Go brags about having slightly lower pause times than the JVM, but it's not accurate
overtime go's GC will slow down as it's not compacting
Oh, also no runtime required for Go that's another reason I wanted to learn it.
yeah, the single binary output is a nice feature
I know you can package Java applications with Java but it's not the same.
Yeah you can turn them into EXEs.
for what windows?
Yeah, I guess it does other formats too I only used it for exe.
I can't remember what the program was called to do it.
launch4j
it packages the Jar inside the exe
minecraft does it too xD
yeah that doesn't sound smarto
It's nice for UX
if you have a small application
larger java apps like intellij and smartgit just use their own custom launchers instead
doesn't IntelliJ have its own thing
custom launcher
I wish Java's building tools were smarter. Like it just knew "You don't ever use this part of this library so I won't package it" I know you can specify parts not to be packaged but I can't be bothered.
@strange bane you can accomplish that with proguard or shade
but it's impossible to know that for sure
reflection can access any class at any time
but I meant wasn't its bundled JRE special
oh yeah jetbrains has a custom JDK which improves things like font rendering and window management
yeah
but it's such a large application already bundling that isn't a huge deal
that's what I referred to
Everything about Java makes me assume it's pretty slow. Interesting that it's... not.
java is fast for the usecases it's good at
which is long-running applications with large memory churn
no other language can compete with that workload
I am getting mixed objections here though, some people say Go is faster.
?
if you have short running apps then java's startup time will add up, if it's not long running enough then the JIT won't properly optimize code
Yeah online people are stupid
Go is faster for it's use cases, where a smaller memory footprint is needed with lower startup times
but if you tried to accomplish with go what java can do with spring or tomcat it would be horrific
the JVM does a bunch of optimizations during runtime
Interesting.
java is also not a closed world system
with java you can add and remove code during runtime at any time
the JVM will just handle it
very very few runtimes can do that, and the ones that do usually lose efficiency
in java, all code added at any time will run just as fast as any other code
also you can optimize stuff without actually having to change code just by tweaking how the jvm works :D
yeah, go is a "knobless" GC, in that it only has 1 or 2 settings to modify, it tries to be a one-size-fits-all solution
Java takes the opposite approach, making it much more complex, but much more flexible as well
I'm a professional Go and Java developer
It would be amazing (I know it would be slow) if you could use Reflection to change method bodies, like JavaScript.
I've spent a lot of time learning and comparing these two languages and their runtimes lol
you can change method bodies by modifying classes during classload, but that's it
if that was an available feature the JVM would take a massive optimization hit
classloading itself is a fairly unique feature of the jvm
classloading 
sponge's mixins modify methods and stuff at runtime btw ;D
(or do I misremember that?)
they do, and all of forge does, by modifying classes at load time
looks back at bank ECM software, where SQL procedures were preferred over writing scripts for whatever goddamn reason 
Anyone know how to fire everyone from jobs?
has there been any tumor growth in my absence
Are there any tools to make it easier when working with multiple versions of the same api? Say if you're trying to support Spigot 1.8.8 through 1.14.2 and Paper. Just to make sure I don't inadvertently use methods from Paper in my SpigotEventListener class, as they should only be in PaperEventListener which is only registered if the server is paper.
import control
i mean, you could submodule but that's a bit unnecessary
given that all of paper's api lives in paper's namespace
except our method additions for bukkit
(as far as event listeners go anyway)
^
yea
such as the one I added on Block, getSoundGroup
i guess test/submodule
is not in spigot
mfw i had never heard of the country Bhutan but TIL their king is called the "dragon king"
https://en.wikipedia.org/wiki/Jigme_Khesar_Namgyel_Wangchuck
Anyone that uses Jobsreborn how to fire everyone ?
literally fireall as per the resource page
secondly, that plugin has its own discord, ALSO on the resource page
fireall doesnt work
thats to fireall 1 player from all jobs
Then go ask in their discord
thats dead discord
We are not the place to ask specific resource questions
kk
So anyone uses Jobsreborn?

mfw plugin author has conversations disabled
who would want to converse with the ragged plebian masses
there's 0 way to contact him outside of discussions
so if someone finds an exploitable issue it has to be shared publicly
🤠
Whoktor, RandomTP
Not to say I found an exploitable issue
But I find it odd that you're FORCED to use discussions
why you DMing him
- Plugin permanently applies DAMAGE_RESISTANCE 100 to each player that randomly teleports until they log off
- Plugin's source is bundled with the release jars, and his TOS says no decompiling or modifying
RTP looks easy to clone
lol is he doing dmg resist because he teleports people in the air?
such a lazy plugin
I only use his because per world RTP cooldowns, something I can't find in another
because what?
sorry accidentally ommitted a word
Can't afford that rn
this sort of plugin you should be able to make yourself tho
looks about as basic bitch as it gets
I also have numerous other plugins I have to maintain / create
@vestal jasper check DM
Issue is I don't want to modify each time he updates it and I don't want other servers to experience the same issues
Does anyone here use coc.nvim?
I don't do DMs
yo
is there way to fire all from jobs
or any file i can delete so everyone loses their jobs
if you dont use dms
If yes, how can I go to the definition of a method? I'm using the coc-java extension
fireall like others said
or look in the plugin's data directory, gym
@void void... again, there is a Jobs Reborn discord server specifically made for these types of questions
The discord isn't moderated or used by the jobs people btw
They actively ignore it
not my fault. its linked from their Jobs Reborn project page hosted on SpigotMC
thats their official support line
yeah 1 more question and thats it
Have you looked in it?
where
The plugin's data directory
Anyway I find it pretty pointless / useless to have a discord, link to it in the plugin's page, and then turn around and say it isn't for support.
so you'd rather help him here instead of the proper space dedicated for such help? makes sense @vestal jasper
smh
I'd rather not help him at all
bro i cant find file with all players
that picked up jobs
what si the name of that .yml?
so i delete it
It's not a yaml file it's an sqlite db
should i delete that?
...
In other news the reel to reel I bought has a tube preamp built in
so should i delete that?
What are you planning to do with that? Aren't those older things?
vicarious?
It seems he has given up trying to help you since you apparently are dumbfounded by the situation.
@void void you really should use the proper support lines given to you
@fallen oracle you asking me?
the default jobs max is 3
i set it to 1
now everoyne that picked up 3 jobs
I wasn't asking you lol, I was stating the obvious.
they still have 3jobs
🤦
Yes because that's not going to change it since you made that after the fact.
There's no "simple" solution to that.
yes and is there way to fire all
so they need to pick up jobs?
where are they stored
dude...
You do realize that plugin has a personal support Discord, right?
he refuses to use it glare :/
ok
Discussions page for the resource also works
If they're unresponsive in their discord
and you telling me to ask them
no one from here uses DMs
so i need to type here for him
Yeah the jobs people are... interesting
Or just go ask in their Discord.
One of the jobs dev seemingly completely forgot how their events worked and how events are called in general when I submitted a PR recently
i am asking people to come DM
wow it's not even worth sugar coating how fucking dumb you are
Lol really? Interesting.
@merry talon your mom is dumb bitch
Yeah I copied and pasted one of their events, and copied and pasted how they call / handle their events, and he tried to get me to change it because it didn't follow how java works


lol
Very interesting.
Was uhh... an interesting situation
I would give them the benefit of the doubt because it's a bigger plugin, but that's probably not the case here.
Anyways I'm ready for a fat nap.
They seemingly forgot that generics aren't pass by reference
the guy that reviewed the PR, that is
glare your avatar is so good
I never understood why people instantly attack people's mother's when they get mad at each other.
generics aren't pass by reference what does this even mean
vic ur retarded
?
haha
generics aren't pass by anything
hold on
I heard you the first time, thanks.
okey nice so now tell me do i need to delete jobs.sqlite.db
Lmao
ahhahahahaha
everyone will lose their jobs?
Correct
sure?
Yes
He tried to get me to ignore the result of the event because he assumed the values would automatically be mutated
link
He removed one of his comments before marking it as resolved
my IDE randomly decided to switch from their tab tabbing to space tabbing tho so the formatting is extra weird
also
tab tabbing
I followed their naming conventions
vic
I made the event to look EXACTLY like it would if they made the code
vic
leaf
that's not their naming conventions from what I've seen
It is in their other event
all their variable names I can see are lowerCamel
anyone uses here jobsreborn?
Ooo tropical smoothie Cafe is giving out free smoothies if you walk in wearing flip flops
@merry talon or your mom?
See, again with the your mom stuff, are you 10?

@void void you just missed him. i kicked him for being ignorant as fuck thinking this was the proper place to ask support questions about jobs reborn
why he calls me stupid?
because you're evading kicks with alt accounts?
what?
after repeatedly being told that we cannot help with your issue
you kidding me? i have only 1 acc
right
@unreal quarry check when i joined
The broken English is fairly similar
i never said you were an alt. i'm just saying what happened to the last guy lol
I mean yeah he's been plagueing this server for a while now
it makes sense that the alt joined a while ago
sweepy
Billy, any update on the case?
has anyone informed you that you're probably retarded
only one who keeps informing me that is also undoubtedly retarded
@fallen oracle unfortunately, I'm no longer allowed to talk about it until its over (per lawyer's demands)
so idk if I trust it
will do
can i call my lawyer for this?
No
sure?
What even
Don't even bother trying to understand Z.
It's not worth your time.
Boss, talk to Gym.
You guys both seem to have the same issues.

cant talk anymore he will kick me
DM him
take it to jobs' discord then. at least you'll both be in the right place then
Seems like your both SOL. I'd head back to the Jobs Discord.
i dont need to tell you 20times same thing but ok
it wont be inactive if you both are in there being active with each other 😉
I mean at least you'd have more ideas?
https://giphy.com/gifs/aris-80s-1980s-hacker-l46C6sdSa5DVSJnLG gym and boss rn
you guys ready to have your mind blown?
no
maybe
give this a quick listen
https://www.youtube.com/watch?v=R6wetFR9Lfo
An explanation of cuil theory... in terms of asking for a hamburger. Not made by me, although I 'made' the image.
what's up flamingo milk
(DiscordBot) Cuil Theory - length 5m 46s - 2,559 likes, 72 dislikes (97.3%) - 106,037 views - niraha on 2013.02.19
sorry for interrupting, but something strange happens. When I join my server, with custom server resourcepack, the prompt disappear instantly when it appear, anyone else had similar issues?
@merry talon suck my dick?
@astral marsh once you've answered the question for a specific server your client remembers it
logout, go to edit that server, and change it to prompt
still not banned btw
What the hell is this @placid thicket😂😂
joins
pings someone and calls them a dick
looks like it might be an alt to me
but it's set to prompt, i can see the prompt for like 1 tick before it disappear
or they're taking grudges from other servers here
@fallen oracle the truth
Are there any popular Java 8 features removed in later versions?
This is so weird it's funny 😂
Features that were in 8 rather than added in 8.
incrimental CMS was removed at some point
idk probably some deprecated api that nobody uses or knows exists
wtf :\
I give you a hamburger.
there are children crying now
I like how it just cuts out
7 is just too far beyond you
the only notable changes in 8+ is "ripperoni sun.misc.unsafearino"\
Why does it just go silent for 2 minutes
because you are not of a high enough intelect to understand any further
Ahh
but i actually think it has to do with how youtube compresses and monitizes videos or something
I don't even know how to make plugins so that'd make sense as to why I don't have the intellect to understand the rest.
@placid thicket i'm waiting for "you are the hamburger"
perhaps we all are the hamburger
It all makes sense now
perhaps the hamburger is everything and by eating it we become nothing and full of everything
I think I pinched a nerve in my back, hurts like hell. I need to eat a hamburger
well, good thing i didnt eat a hamburger today. i just had chips and queso
Damn now I want some of that
i give you a hamburger
Looks like a plugin doing that
i use GPack, but it was working all the time
What's Gpack
nothing server side can close that window
ye
thats got to be some client mod interfering
and the plugin just kicks player if he declines the resource pack
Even if another menu opens, Billy?
i was using optifine, then switched to vanilla to check if the issue is still here
and it is
i will check on older versions, maybe its mojang issue
@astral marsh if you set it to true instead of prompt, do you get the resource pack?
ok, so its not a bad link then
hmmm
looks like the inventory update closed the window
It's annoying that texturepack links won't download behind CloudFlare links
you had no items, window opens, then you had items, and window closes
try disabling whatever plugin is updating your inventory
see what happens
@fallen oracle you can make it work, but the link has to be specially crafted to trigger the download rather than going to the download page
same for dropbox ^ for dropbox add &dl=1 to the end of the url
anyone here us fabricmc client mods? i'm trying to figure out where the mod lists is (similar to what forge had, where it shows loaded mods and details about them). i'm assuming one exists because i was able to add an icon.png to my fabric mod, just cant figure out where its used
I use dropbox link and even with dl sub-domain and &dl=1 it seems not to work, i just removed PlotSquared, because as I remember thats the plugin which replace the inventory and I'll see
It's generally a good idea to self host the resource pack, unrelated though.
I'm using shared-hosting so I'm not sure if it gonna work
oh boy....
that honestly seems like trouble :3
lol
if i was a host i'd be trying to block that
Google Drive or Dropbox over a Bukkit-based webserver any day of the week lmao
if only you all goys cared as to what happens to your hosted stuff after your hosts shuts down, we'd have less problems in future
wat lol
it gets lost 99% of time
Long-term redundancy isn't exactly easy
thanks for nothing
Even giants shut down or change
wait what are we talking about, res pack hosting?
anything
Well I mean you can just have it be a zip file
I've tested with a typical zip file on a url behind CloudFlare and it always failed.
oh, i already tried to put in in accessable directory on my webpage
but it just didn't download resource pakc
A lot of stuff was lost with dropbox shutting down public folders
next minecraft forums crippled
if mediafire started deleting stuff, there'd be no place to get some mods/whatever from
idk if thats issue of GPack plugin or anything else
minepack is good lol
anyways, it was caused by inventory update
@elder sable So if even Dropbox can't manage long-term redundancy of hosted content, wtf makes you think the average developer can?
better question is how to fix that, it's probably WE/WG 7.0 or MySkin
i disabled both at once
Is it fine if my library is a plugin and not just a package that you can include in your plugin's JAR?
It is but it's probably not as recommended, but that might be my personal preference
Because then you have multiple plugins using that same, ONE VERSION of that library
Which can be a hassle
Shading the version you need/want per plugin makes more sense to me
The thing is I want my library to only have 1 listener for InventoryClickEvent and InventoryDragEvent to handle GUIs
If it's all internal and you maintain all of the plugins that hook into the library, then it's fine really
This is more of a concern where multiple plugins from disparate sources are hooking into different versions of the library
thats something you'll have to recreate using vanilla mechanics and report to Mojang to have it fixed @astral marsh. I suggest using a 2nd player to help recreate it. One of you login to a vanilla server, let the resource pack window open, then the second player throws an item at the first one. When the item is picked up the resource pack window should close and you have something to show Mojang.
reuploading is possible: especially archive.org
p2p proves high survivability
If each plugin came with its own packaging of my lib then there would be multiple listeners and GUI events would be handled more than once
Which would be an issue
It's really not an issue
Since GUI libraries that are shaded in exist
So obviously it's trivially done
Without conflict
@unreal quarry I have to first check if that's for sure inventory issue or MySkin's skin update on join
I mean if we got places dedicated to resource pack hosting, then that's pretty dope.
Here's my InventoryClickEvent listener
Inventory clickedInventory = event.getClickedInventory();
// If the clicked inventory isn't a GUI
if (clickedInventory == null || !(clickedInventory.getHolder() instanceof GUI)) {
return;
}
GUI gui = (GUI) clickedInventory.getHolder();
if (gui.getUnhandledSlots().contains(event.getSlot())) {
return;
}
event.setCancelled(true);
Button clickedButton = gui.getButtons().get(event.getSlot());
if (clickedButton != null) {
clickedButton.getListener().handleClick(
(Player) event.getWhoClicked(), event.getClick()
);
}```
1 listener already handles ALL GUIs
So 2 listeners = events are handled twice
Cool, but that's just because that's how you designed it
It doesn't have to be designed that way
You can have a listener per plugin that is bound to that specific plugin
But then each GUI would have to have its own listener
it's MySkin, so Mojang can't help me with that
Which is probably the approach you'd take if you were shading the library per plugin
Hmmm
I mean this isn't exactly hard
There are libraries that exist already
Which are meant to be shaded in
And offer GUI APIs
i'll just report issue to the author and hopefully he decide to fix it
thanks for help guys
You do it however you wanna do it, because it's your thing, but don't frame it as a technical limitation 😉
It's a limitation specific to your design
@astral marsh ah, well that doesnt sound fixable. to change skins on the fly like that plugin does you have to recreate the player instance. which, well, closes any open windows
But isn't it also good to only have 1 listener for all GUIs?
No, it doesn't matter.
It doesn't matter how many listeners you have in most situations.
The server is tortured less
That would be you demonstrating a lack of understanding of the server's event system
A while ago you guys told me that each instance of my GUI class having its own listener would be a bad idea
How safe are Linux symlinks? Will I be able to symlink a Paper directory and start it using the symlink path?
GUI listeners are the last thing that would ever be stressful to the server in terms of the actual GUI-specific event listeners.
As it would "torture the event API"
I don't remember that really.
it's not one you have to take
is it possible to send specific resource pack to player?
Hmmm
And it's not really "torture"
using spigot api
There's plenty of GUI libraries that are per-plugin btw which you can see for yourself.
Trying to find one
There was one I liked sort of
@astral marsh I think there are events for that, yes.
The listeners in that plugin are not at all intensive and having one per plugin would not be "torture"
In that library, I mean
This is all it does lol https://github.com/MrMicky-FR/FastInv/blob/master/src/main/java/fr/mrmicky/fastinv/FastInvManager.java#L40-L86
OH
// This prevent to uncancel the event if an other plugin cancelled it before
if (!wasCancelled && !e.isCancelled()) {
e.setCancelled(false);
}```
Why didn't I think of that

@gusty idol reducing the amount of listeners is not a performance optimization, I don't even think you could detect a measurable difference doing so
Huh
Saying the # of listeners isn't very relevant
From a performance standpoint
It matters what those listeners actually DO
Not how many there are
But GUI handling is very, very lightweight
As you can see from that link
Well if I had per-GUI listeners
Each listener would cast event.getClickedInventory().getHolder() to a GUI
Check if it's == this
Then, check if the clicked slot isn't one of the "unhandled slots"
Then check if there's a button in the clicked slot
And if it got here without returning it would call the button's listener
I like peanuts
Same
I mean, I wouldn't go crazy with listeners, they're still not free but the # isn't a concern for most, the only thing you /really/ wanna avoid is dynamically un/registering them
Yeah
Dynamic registration has to sort all of the listeners again for that event, doesn't it?
Yup
@gusty idol stuff like that is never worth optimizing for outside of working on some ancient hardware with severe limitations
modern computers do it effortlessly

You can still do the "one plugin library" idea if you want, like I said for your own stuff that's easy to manage
It just becomes a bigger problem if you intend on sharing it
And having others use your library
If I had per-GUI listeners wouldn't I have to find a way to clean listeners of "dead" GUIs
Like imagine if ACF was a plugin instead of a library, that other plugins had to hook into, and then ACF rolled out an APi-incompatible update that fixed important things
lol
If I had per-plugin listeners I wouldn't have to worry about cleaning the listeners up
@strange bane you'll need to elaborate
I assume that registering listeners and never unregistering them increases memory usage?
@gusty idol You're over thinking it. These are micro optimizations. Just do stuff until you feel it being slow, then optimize.
Don't prematurely optimize.
yeah the fs handles it
Ok
You won't know what is fast or not until you do it and gain an experience of it
Eventually you'll learn what needs to be optimized
but MAH NANOS
I mean there may be some differentiating factor
Is there any overhead? I want to have a new folder structure but I don't wanna break backups.
nvm about my fabricmc question. found out you actually need a 3rd party mod to get that mod listing similar to what forge has :/ oh well, i've added support in my mod
So they're not as terrible as Windows symlinks, eh? 😛
Maybe we'll get real symlinks in WSL 2
well I dont think NTFS has real symlinks
NTFS has real symlink
If we're looking icky
symlinks are safe, but I wouldn't use them for your server jars
o
junctions, they're called, right?
What's your go-to thing for a CDN when you have to update plugin jars across 20+ servers?
Going to push a box tonight to test WSL2
It was like 9minutes benchmark to build paper from start to paperclip end
@fallen oracle Not CDN, you mean deployment?
I wrote it down somewhere to test
Deploying all jars to all servers
So we’ll see what the overhead on their VM is
Once upon a time I used to store my server and the plugin jars in a git repo lol
Nowadays the place I work at has a deployment system 😛
Oooo never thought of that
Yeah but I mean for a simple solution for the average player
That may not have access to a system like that. Can you not symlink plugins?
@gusty idol if something is expensive it doesn't mean you should avoid using it, typically you want to cache the results of expensive operations as you deem necessary, a lot of stuff you're asking about is micro optimizations, stuff that has almost no measurable performance impact
Alright
you'll want the servers to pull it instead of pushing it to all of them
so... an auto updater?
that's just a high level thing to keep in mind
lol
no I just mean have something central that handles that
and somewhere in your entrypoints talk to that to see if there's something to get
You can still have it be centralized without the servers pulling
I'm just not sure why push-based implies decentralization as opposed to pull-based 😛
You would push the message of an update
but you wouldn't push out the jar to them all
once they know of that they would pull it on next restart
where do they get the jar
from one place? 
I can see it work either way really
well I definitely wouldn't overwrite jars in place lol
Nah, you'd want to have a folder
Where they go, and then the server would replace teh existing jars on boot or something
I think there already is such a folder you can use
The update folder?
Does that take affect regardless the plugin version?
ah there you go then
That's where you'd dump the new jars in with your deployment system
that is effectively the servers pulling stuff in
Hmm seems cool
I think that folder has some requirements though
Like the jars has to be the same name?
personally I think it's heresy for requiring restarts to pull the jars out and all plugins should be able to reload silently and without any issues


