#general
3141 messages · Page 71 of 4
where format just calls formatWithPrefix(configKey, "defaultPrefix", args...)
which is essentially overloading
but with good method names
I thought about that
Sometimes it helps to think backwards
think about how you want to write the END COMMAND
like what wiz posted
then make your code make that work
huh that's a good idea
wait but that brings me back to tthe thing, I also want to have
multiline
so make a method when you need that
stop coming up with excuses
and just do the things we tell you
uh
that's just bringing me back to https://hastebin.com/rozufuyoli.js
but with it split up into other methods
that's really not an issue here
and wiz
it'd still be nice
player.sendMessage(Misc.format(configKey, args...))
player.sendMessage(Misc.formatWithPrefix(configKey, "customPrefix", args...))
this thing that you gave me
so essentially I want it to read my mind, cause I want Misc.format("you_died", player.getName()) to give me no prefix and Misc.format("msg_prefix", "rules") to give me msg_prefix as prefix lol
I want it to read my mind
please abandon this project and go back to school
You know what you want, and you know how to do it; you're just stuck
Ignore wiz, cause he's a mad lad
Take a break from whatever you're doing for a bit and come back to it
not sure how this fits being a madlad
but i assure you i'm speaking rationally and not emotionally
rationally ≠ jerk
it is a perfectly rational response to someone saying that code should read their mind
@austere ivy you can do this with just signature overloading
not the way he just described
I tried that, nossr. Thing is because I wanted it to be able to have unlimited formats I use String... formats
So it gets confused and doesn't compile.
I don't even know what you mean
you need different signatures to do the overloading I meant
Misc.format("you_died", player.getName()) # to give me no prefix and Misc.format("msg_prefix", "rules")
(String configKey, String msgKey, String... formats) and (String msgKey, String... formats)
If you notice, if you put "configKey" and "msgKey" and "format" as the arguments, then..
it could call either one.
they're all strings.
and yes i already told him to make different names
he doesn't seem to understand
so whatever
that's what I'm doing right now, wizjany
issue is, that's basically the same as https://hastebin.com/iwoxamofad.js
but with different methods.
I mean I'll try it, that's what I'm doing right now.
I am a bit confused about what you are doing right now tbh
your code is confusing me and I didn't understand your descriptions
I'm not sure what thing you are stuck on at the moment

is it reasonable to add 20% of plugin price for long term support
define long term support
6 months - 1 year? not sure if it would count as long term support
jesus
how much are you getting paid
that doesn't seem worth it
to me long support would be like 2 weeks
then they pay me again after that
well honestly haven't told any prices yet
Pretty much it's a big plugin and I estimated my prices and amount it will take and in the end it was 45 hours at 4.5$/h
You're cheap
ABORT
ABORT
you're literally working child slave labour wages and offering a year of support
🤢
I rather not think about my current commission. I think I currently average at 0.75$/h 😄
what the fuck
Want to come work for me? I'll double your current wage lmao

well not anymore fuck that
Fun fact: I don't work for less than $20/hr
don't even lift a finger for below 20/hr
And I'm cheap af
yeah 20/hr is basically the lowest price any freelance dev should work for
@stiff yarrow okay,
I want to send messages to players like any plugin would.
player.sendMessage("Hello there!");
But hardcoding each message in is a pain and I like separating logic and text, so I put that in the config.
player.sendMessage(main.getConfig().getString("msg_hello"));
clearly I have to think about my prices 😄
Another thing is, I also like adding formats, so in the config I can put msg_hello: "Hello, %s!" and then it puts in the playername there.
player.sendMessage(String.format(main.getConfig().getString("msg_hello"), player.getName()));
Another important thing is, is color. I don't want to have to put ChatColor.RED + "Hello, " + ChatColor.BLUE + "%s" + ChatColor.WHITE + "!", rather, I want to put "&cHello, &9%s&f!"
player.sendMessage(ChatColor.translateAlternateColorCodes('&', String.format(main.getConfig().getString("msg_hello"), player.getName()));
(as you can see this is where it starts getting messy for such a seemingly simple task)
I then realized ChatColor.translateAlternateColorCodes was a giant thing, and it would always use &, so I just put that in a tiny method:
public static String colorString(String string) {
return string == null ? null : ChatColor.translateAlternateColorCodes('&', string);
}
Now it's shortened to:
player.sendMessage(colorString(String.format(main.getConfig().getString("msg_hello"), player.getName()));
If it takes you 5 hours to do what most can do in 1 hour, then sure $4/hr is fine.. but damn, get it together soon
But, my server has a nice style guide so all the messages look nice and consistent. This means every message has a prefix.
player.sendMessage(colorString(main.getConfig().getString("prefix") + " " + String.format(main.getConfig().getString("msg_hello"), player.getName()));
I realized, hey, this is getting pretty tiring for every single message. I can put this in a method!
player.sendMessage(formatString("msg_hello", player.getName()));
public static String formatString(String configKey, String... formats) {
return colorString(main.getConfig().getString("prefix") + " " + String.format(main.getConfig().getString(configKey), formats));
}
That worked well for a while.
@austere ivy go to #paper-dev bro
@unreal quarry even if thats true still charge 20 hr 
I don't think such an official channel would want it, you sure Billy?
You're talking code. That's where code goes
alright nossr take on over to paper-dev pls
mtm have you told the guy commissioning you that you're gonna work for slave wages yet
if you haven't then tell him 20/hr
otherwise abort
I haven't told him anything yet
tell him 20/hr and don't take less
also DO NOT signup for a year of fucking support
charge for support
like a normal person
$100/call + $20/hr after that for support
Fun fact: Geek Squad charges $399/hr to work on stuff. I do it for $99/hr and stole a lot of their business ^_^
Lol now that I think about it it's not actually 4.5$/h because those are features themselves not including testing and what not
you are literally getting outearned by sweatshop kids
Like, spending 2 minutes to hook up someone's xbox to WiFi. Me, $99. GS $400.
didn't know GS was fucking people that hard
It's insane
I applied to work there, said I was 1) over qualified and 2) bad credit so best buy won't hire me
People pay it
I once started doing home networks, too. $100/hr + parts. Was great 15 years ago, but these days everyone and their dog knows how to setup a home network lol
help me
@stiff yarrow pretty much calculate how much an average worn-out soul is worth in hours and multiply it by 4.5$/h 😄
nevrmind I think I got it.
idk why you ever set your prices to personal hell levels
@woven otter you should apply at Mineplex. Their starting wage is $30-35/hr for junior plugin devs
you get 1000 hours deducted from your life and you get 50,000$ instantly?
So basically think of work as just deducting time from your life, and would you rather have to work that time or would you just trade time off from your life for the money you'd get for it either way?
@austere ivy no, I'd rather work the 1000 hours
I would too.
because you don't know what could have happened during them
I think you should always enjoy your life.
You have a very limited supply of it so..
try to find happiness wherever you are..
says you
that's my opinion anyway lol
I have 9 lives
Without work you'll go crazy. Trust me.
humor me how much would you pay for this(I guess focused on quality of code):
https://github.com/MTM123/FactionsAddons/
at least 10 million, mtm
That's why old ppl work at Walmart as door greeters. They go insane just sitting at home
even billionaires are "working" - see bill gates and melinda gates
all the work they do
No actually let me see how it is, MTM
@unreal quarry yup. Quite a few old people working at my local Walmart, not just as greeters - quite a few work on other easy tasks, such as taking returned merchandise back to shelves, etc
Can you lend me one of those lives kashike?
so if I want to stop item merging I just need to spawn an Item with lore
he's on 9/9
@deep shoal you could also just set some other nbt value, maybe even the pickup delay
or just cancel item merge event
what gender do you think I am @austere ivy
cat
anime boy
He duh
Probably boy, Kash.
o.O
hmm
tunasub
I don't think literally you can find anyone who uses actual bukkit.
Don't worry about cb. No one Important uses that junk
15% of WorldEdit users use CraftBukkit
correct
I don't like the gameplay changes that have been done in favour of performance
(Spigot mainly)
yeah that bothers me.
a lot.
servers are supposed to handle stuff, not change stuff.
@woven otter price will never be based on quality of code, just whether or not it works, complexity, time involved
servers can do whatever they want
maybe
my fetish 
fair enough
I have had limited exposure to Sponge but it seems better than Bukkit, I'd probably just use that
accept friend request @austere ivy
why 
sliding into Brians DMs 
did kashike dm you some kittens
Ah the good 'ol kashike selfies
Hey everyone!
6:17 PM] kashike: 15% of WorldEdit users use CraftBukkit based on what
Me4502
we already went over this
...
seems like they'd have to rewrite it for 1.13
or change a lot of how it works under the hood.
no, it's not a thing, we're literally just making this all up to play a prank on you
Hey, could someone tell me... how fast is paper compared to spigot?
wow it's not like spigot is built on top of craftbukkit and depends on it
mcMMO doesn't even support CB and 6% of servers are using it on bstats
oh.. yeah
also did bstats break at some point
huge number of "failed to parse" MC versions


I think those are just custom servers
like what
WorldEdit is used everywhere so it's not surprising that a lot of custom servers are popping up on bStats
You'd be surprised how many private forks exist
why would they change whatever bstats uses to get the MC version
yeah bstats is not accurately counting tacospigot if I had to guess
Private forks are often built on Taco
Kash is there a secret fork of paper that we don't know about
there IS https://github.com/TacoSpigot
I've never heard of this before.
There are many secret forks you don’t know about
Wait hold on
Any server with more than 50-70 players is going to be on a secret fork
you can literally build your own fork
Generally speaking
well, not you because you're probably too stupid
but in general, one can build their own fork quite easily
so why are you so fucking surprised that other people do too?
if you play 1.8 its basically a requirement to use custom shit
I didn't expect other people to be as smart as I am
For sure anyone using 1.8 is using a private fork
i mean, there's a lot of retarded people in the world
lol jk no I'm kidding you
no I just didn't expect that people would make another fork on top of a fork on top of a fork
seems like a lot of forks
and then that fork of a fork of a fork of a fork for their own server.
oh hold up
bstats just calls Bukkit.getVersion() and then parses it server side
ok
I think that returns unknown or some variation of it on a lot of forks
why would a server with more than 50-70 be on a secret fork?
what kind of benefits would there be anyway?
Secret performance patches, usually
Nobody wants to contribute their fixes upstream
They're trade secrets
or because they're dumb/bad code
that too.
Or a combination of both
sometimes hackier code is better performance for your specific use case?
Our network's Spigot can probably hold 400-500 players
Can't do that with Paper
(1.8)
Why not?
Paper would shit itself with that kind of player count
Yet, there are plenty of networks that can support it
What about Spigot?
They simply don't contribute those patches upstream.
Paper is a high performance fork of Spigot, tf do you think?
Use your brain.
Nope, it's forked off of TacoSpigot, if I remember.
TacoSpigot is forked off Paper
Off of PaperSpigot, as it was called back then
@acoustic pilot [Auto] We're now known as Paper.
LOL
Thanks Korobi
Yeah what a shame they won't share that with us. What kind of performance updates can you do anyway, to Paper? I haven't even peeked at the code that runs paper so I wouldn't really know.
I'm bound to secrecy, it's part of the job.
Like I said, they're trade secrets.
The knowledge doesn't come easily or cheaply.
Edawg made no strong effort to optimize
They then split it up into separate servers, they have like 30 players now.
I thought you got out of the server game byte
I don't run a server, I work for a server.
hey wait a minute Electronicboy commited something to TacoSpigot
I got out of the business of running a server.
Now I just do grunt development work
You guys are just all over the place, aren't you.
🤦
What a small world.
No it's weird I'm on a random server forum and I see some of your guys' names and it's odd.
would you consider it if I paid you 200/hour to develop, Nossr?
our team's full atm but if there's ever an opening I'll toss your name in the ring lol
how is 200/hour anyway?
nossr I was snoopin' what is this https://github.com/nossr50/Always-Sunny-In-Minecraft lol
have you looked
my magnum opus
it's a whole 10 lines of functioning code, it's not too hard to figure out
it's wonderful
what policy lol
./gamerule doWeatherCycle false
80 posts, 20 likes, 3 free resources, 8 week old account
for what lol
🤑
but why not just
oic
he didn't say they had to be good resources
hold up a momnt here nossr

what is that
useless code
I do not like that code style xD
like what
brace style
public static void main(String[] args)
{
}
K&R style
Literally the worse
hang him
gets me all the time since i do c# full time these days
I dislike it a lot, it infuriates me everytime I read something from geekstogeeks.com
checkstyle always yells at me
it's horrible wizjany
java should ban it
I would instantly update to Java 13 if it just disabled that style
i mean, java should ban you
Brian your existence is more offensive than his braces
but that's not an option
its just something my brain does in Java idk how to stop
made it un-compilable
unfortunately
java should ban a lot of people /shrug
until you learn how to write code at a kindergarten level, don't rag on other people's braces
correct spelling of kindergarten 
guess it'd be hard to mess up then
can't get me with that
what
wiz I dropped out of kindergarten because people were bullying me don't bully me here ;-;
can't get bullied if you're not in the server
1TBS best brace style ever
allman best style. looks at forge
Lmao I dislike Allman's style as well especially when I'm looking at code from like, github wikis and README.md's @austere ivy
(DiscordBot) @pelotom (tom tom dot com): "Spaces or tabs?" "Semicolons." @aisamanra https://t.co/QmiH4t79gN (2 years and 6 months ago)
what the hell is allman
(wtf "Brian Hayes")
better
Nossr, how would I officially get it to do none?
Sometimes I don't want a prefix, I just want it to format and color code for me.
As far as I know this style is called Allman
public static void main(String[] args)
{
}```
No, I guess, but how would I get there?
then you need to add case none back in
Eww @tropic flame get it away!
I told you to remove it because it just did fall through to default
@unreal quarry nossr asked for it I'm sorry
which is redundant
I personally prefer 1TBS 🤷
Nossr, sometimes I need to use NONE.
are fall throughs allowed in java?
then you need to add it back
Fall throughs are allowed.
fall through doesn't work if you return
Nossr is there a way that you could syntactically correct while going straight to default?
what language doesnt allow them
if I do Type.NONE and NONE isn't officially in the enum, it won't work.
Similarly, if I don't have DEFAULT: it might have an error.
use this for automatic formatting:
https://github.com/RubbaBoy/CodeFormatter/
well
if there's ever somehow an error and it gets to default it just won't add a prefix
better than everything dying
other than return colorString("&" + config.getString(category + "_color") + "&l> " + formattedString); I feel like everything is okay.
oh wait I can just
How's that?
I can just put &c instead of just "c" and it'll make more sense in the config anyway
@austere ivy why have a type none if its just doing what default does
because I can't order an ENUM to be anything other than what it's specified as
oh
you're saying keep NONE in the enum
but just don't have it as a case?
in the switch statement?
NONE is because sometimes I want it to handle formatting and color for me.
in the form it is in
I guess default would never really be able to get reached.
I was doing that before
nossr
but if something somehow goes wrong and a wrong type gets in there
the messages will be appearing as "null"
which is very non-helpful to debugging
because you have to return
and a switch statement is conditional
you could replace case none with default
its the same thing
if you have cases for the other enums
so like I said before
which is why I told you to remove none originally
well you made it sound like NONE was going to do something different
I misunderstood you
it.. does.
its different than what default does?
then remove it
I mean you could have it there it just looks UGLY af to me
either remove default or remove none
err
Okay, so MULTI, PREFIX, and NONE, are all unique. They do something different.
when I say remove default I mean make it return null
I can technically
and you said make it return null
I say to that, if somehow SOMEHOW an incorrect type gets in there, I would rather it just default to NONE rather than doing a silly thing and making me debug trying to find out why it's returning null.
case PREFIX:
return colorString(config.getString(category + "_prefix") + " " + formattedString);
case MULTI:
return colorString(config.getString(category + "_color") + "&l> " + formattedString);
case NONE:
return colorString(formattedString);
default:
return null; // your ide shuts the fuck up
```
your argument is "an incorrect type will never get in there"
hold up
my ide isn't complaining in the first place
its not complaining because you have fall through
I would not put your code under default if its only for NONE
default is just return null to make it stfu
yes this is better because if you add more ENUMs then your default returns null like a good boi
because in my head, IF something something goes wrong
it returns null
which breaks literally everything
you have only 3 enums variants of whatever the fuck type you made it
the only thing going wrong is you adding a new enum and not adding to that switch
btw if you want you can have default throw a custom exception too
eh ok
throw new YouDoneFuckedUpException();
do not name your enum Type
that's what I was gonna say
but you know what's infuriating?
every single time I do player.sendMessage I have to type out
MessageType.NONE
EVERY SINGLE TIME
you can

what?
see this:
I have a question concerning licenses: When I find some useful pieces of code on stackoverflow or a tutorial on a website, where no licencse is specified, am I allowed to use this code in my project then?
wtf even is this conversation
@pastel pivot technically you are not
and they own it
code without license is copyright to the maker
you use stack overflow as an example
not to copy paste
okay thanks.
player.sendMessage(formatString(MessageType.NONE, "tfc", "my_msg", player.getName());
player.sendMessage(formatString(MessageType.NONE, "tfc", "my_msg", player.getName());
player.sendMessage(formatString(MessageType.NONE, "tfc", "my_msg", player.getName());
vs
player.sendMessage(formatString(MT.NONE, "tfc", "my_msg", player.getName());
player.sendMessage(formatString(MT.NONE, "tfc", "my_msg", player.getName());
player.sendMessage(formatString(MT.NONE, "tfc", "my_msg", player.getName());
Which is easier to read at a glance
this is the most stupid question I've ever asked
what am I doing
goodbye
also I decided on MsgType, it gets the job done but it's not MessageType
bro if you really want to be lazy
static import the enum
beware of namespace conflicts
tho
with a static import you can just write NONE
its like the wild west
Java normally doesn't let you blow your dick off but you can bend it sometimes
also you need to stop being so OCD about how things look 
I would pin that because its amazing but Im pretty sure I'd have to flag the channel as 18+

nossr50: In particular I am using parts of the code from this site https://www.java-blog-buch.de/d-plugin-entwicklung-in-java/ atm. So actually I am not allowed to do that, unless I ask the author?
Sorry, it's german ..
I doubt he'd ever come after you
but you should generally write your own code
and use guides as examples
It's not that I just copied it, but the principle is the same ..
code that has no license is copyright to the owner so it is technically a copyright issue if you use it without asking
but only he can copystrike you anyways
if you didn't copy it you are fine
I wouldn't worry too much about it
just don't go wholesale lifting code
Okay thanks. Actually I don't care much about it, I am just curious ..
well you should care 
@austere ivy also you should turn the string literals into constants
ctrl + alt + c

nossr
also
I'm just saying it should INFER enums
like
formatString(MsgType type, String category, String configKey, Object... formats) {
"oh okay this one HAS to take MsgType enum so I'll do MsgType"
kinda like the diamond
if you want to do that retarded shit use polymorphism
List<String> stringList = new List<>
see that how it just infers the second part
magic
how on earth would polymorphism help me solve that
the heck?
what
and you should feel bad for wanting it
gonna be honest I've never really used polymorphism
polymorphism is a large part of the reason OO even exists
I'm gonna assume it's like dependency injection
no its nothing like that
25 dollar name for a 5 cent topic?
no not like dependency injection but
25 dollar name for a 5 cent topic
well I guess in some retarded skewed way you could think of it like dependency injection like if you got really high
and then thought about it
just remember if you're using polymorphism as magic numbers
oh I'VE GOT IT
you should feel ashamed
SO
you know you could do a lot of this stuff just by adding methods to the enum itself
then you don't need a switch case
I originally said you don't need 4 if statements to do this
class MessageType {
String name;
}
class None extends MessageType {
String name = "TYPE";
}
class Multi extends MessageType {
String name = "MULTI";
}
class Prefix extends MessageType {
String name = "PREFIX";
}
public static String formatString(MessageType type, String category, String configKey, Object... formats) {
FileConfiguration config = main.getConfig();
String configString = config.getString(configKey);
String formattedString = String.format(configString, formats);
switch (type.name) {
case "PREFIX":
return colorString(config.getString(category + "_prefix") + " " + formattedString);
case "MULTI":
return colorString(config.getString(category + "_color") + "&l> " + formattedString);
case "NONE":
return colorString(formattedString);
default:
return null;
}
}
you can simplify this code with abstraction
this code makes no sense
yes it does
you're not even using polymorphism correctly, and even if you used it correctly in the way I described it would be equally horrendous
just add methods to your enum
ez
YourEnumType::getCategoryString(), YourEnumType::getFormattedStringPrefix()
etc
then you don't need a switch
I can think of at least a few ways to remove this switch, this is just one of them
I don't think you ever needed this switch

that code makes no sense brian
You're talking to a wall kashike
People have been telling brian for the last 3 hours
What does this usually mean? WARN: handleDisconnection() called twice is this normal when a player is forcefully removed or kicked?
handleDisconnection has been called twice.
It's basically a bug, but it's harmless
can be either, plugin could be doing bad things
the message is from minecraft (vanilla)
afaik, it's basically being kicked in a stage where the server doesn't expect you to be kicked
thanks
grrrrrrrrrrrrr
im stuck in china for the next 9 hours, no where lets me use a credit card and i dont wan exchange any cash into yuan
so, guess am gon starve and dehydrate
no
I told you to use switch over 4 if statements
yeah
I wasn't telling you to use switchc
literally 30 seconds after telling you to use switch I told you that it didn't need a switch
okay what do I use instead
I always thought enums were gross
they're basically classes, hacked up to be something else
lmao
it felt weird
LOL
you can use methods in your enums to simplify that code
the way you can add methods to enums
that is one approach
I don't like it ._.
I love when people don't understand enough of a language and call a very useful feature 'gross'
just bc "idk wen do i use dat"
well to be honest it is weird I won't lie, but its a feature of Java
Enums are the same as classes but they construct.. themselves.. as.. it's just weird
lmao
lmao
why are you uppercasing "enum"
ENUMs in Java are basically secretly objects
THIS:
enum Color {
RED, GREEN, BLUE;
}
is the same as THIS:
class Color {
public static final Color RED = new Color();
public static final Color BLUE = new Color();
public static final Color GREEN = new Color();
}
how on earth does that NOT feel weird to you
@austere ivy what's wrong with that
why does everything have to be weird to you brian
A new field that has different names constructing itself
that's just an array
it looks and feels weird
this is just inexperience talking methinks
@austere ivy you should stop focusing yourself over the implementation and just focus on learning
it just is weird ,_,
you could always pick up C++ 
@austere ivy not exactly
public enum Foo {
BAR,
BAZ;
}
is the same as
public class Foo {
public static final Foo BAR = new Foo(0, "BAR");
public static final Foo BAZ = new Foo(1, "BAZ");
private final int ordinal;
private final String name;
private Foo(final int ordinal, final String name) {
this.ordinal = ordinal;
this.name = name;
}
public final int ordinal() {
return this.ordinal;
}
public final String name() {
return this.name;
}
@Override
public String toString() {
return this.name;
}
@Override
public final boolean equals(final Object that) {
return this == that;
}
@Override
public final int hashCode() {
return super.hashCode();
}
}
equality is restricted to the same object
Enumerations come with the added "bonus" of an ordinal/id and name
that's it
this is garbage no wonder no one likes Java I'm moving to assembly
bye people
@void void I've done a few projects in C++
ok bye
haven't worked with it in a long time though
I'm back
what the HECK is ths
garbage
do these people not know what BRACES ARE!?
doesn't even have enums
0/10
@austere ivy https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_MODE_SWITCHING_ROUTINES.agc
what the HECK
HOW IS THIS READABLE
it's not
these people are robots
these robots are robots
lol
iirc the apollo 11 code has some comment like "test code remove"
But it's pretty crazy that printed out this is like the height of a human
And that's what got man on the moon
aight i really gotta find some place to exchange cash lmfao, this airport is insanity if insanity could be architected, and then managed as some sort of inane "how can we make this place barely function" zoo
Here at TPE it's right before customs
I don't know how to say this but, try to only ping me if you are replying to something I've said or you need something from me that is at least semi-relevant

oh okay.
leaf
@stiff yarrow potato
I agree with the above statement
Hey, right now I have my anarchy minecraft server on spigot and it crashes when hackers go like bazillion miles an hour. Would Paper fix this or something.
is it truly anarchy if you don't let them cheat 
there's also that
There is a configuration option in 1.13 to prevent players from moving into unloaded chunks
the anticheat I've heard has the least issues is Spartan
holla bebs i begged this lady to let me into the first class lounge and she let me
prolly cuz nobody uses it nossr50
idk why there are so many private premium anticheats
they print money
https://www.spigotmc.org/resources/aac-advanced-anti-cheat-hack-kill-aura-blocker.6442/ this one is 20 GBP 4635 sales would be around 120,510 USD when converted
wtf lol
@stiff yarrow downloads != sales
it is for premium plugins, it also includes gifted copies
since when? each download of the JAR contributes to that count
now you know that those premium plugins print money 
(DiscordBot) Exact result: 60255/2 - Decimal form: 30127.5 - https://is.gd/NPnnUB
yes you are correct
still 30k a year is pretty good
epic world gen is 140k gross over 4 years as well
.wa (3,426 * 40) / 4
(DiscordBot) Result: 34260 - https://is.gd/D9MuHm
whoa
btw nossr50 if Items_As_Unarmed is set to true do you disable the whole "move picked up item to free slot in inventory" stuff?
this is not the mcMMO discord
, and that code is temporarily disabled because its broke and I forgot about fixing it.
I guess it broke sometime in classic
make an IRC channel and I'll join
otherwise imma ping u here
anyways, good. Cuz that feature breaks some of my plugins iirc
one of them in particular being SneakPickup
Beauty. The airport lounge I scamazzed my way into gave me a free WiFi account. But China so VPN 🌝
Works fine
ur english degraded too?
okay I registed #mcmmo which I'll probably never look at because IRC is a dead bedroom



lmao aight, ima try to kill some time doing something maybe half productive idk
got 5.25 hours 😠
EventExecutor#execute(Listener listener, Event event)
what is the listener used for
?
to hear things
It's the listener instance that's going to be called
@deep shoal I hope you aren't hotloading events still 
I don't do that, that's horrible

There was actually a nice bug with the asm executor stuff caused by people registering/unregistering listeners as we'd keep hold of the generated class
yeeah tbh "productive" more like sit here and watch youtube and stuff
although, people are looking at me like "google????"
"youtub????"
am i gonna get arrested

just don't mention your dissent for the chinese government online
@stiff yarrow idk what hotloading means
remember our discussion the other day when you said you wanted to register and unregister events during the runtime of your plugin and you were going to do it fairly often
yeah
but I will do it on my own api
and only register one listener on bukkit
but I am reading craftbukkit's source to understand their system
that's a lot better 
still don't understand why you need to register and unregister events that often but I'll ignore that
I don't understand though
what the point of passing the listener to execute is
why would you ever need it
to execute
the listener is the class that has the registered event, the event is the state representation of that event
The event method is called using reflection, the listener is passed so it knows what instance of the method to fire
I assume bukkit maps it using reflection and then caches it
this listener discussion makes me want to resume work on a minigame plugin I haven't finished yet
RoboMWM: what game
microgames thingy
like warioware
.g warioware
(kashike) https://en.wikipedia.org/wiki/Wario_(series) -- Wario (series) - Wikipedia: "The Wario franchise comprises various video games created by Nintendo, starring the .... WarioWare (also Wario Ware), known in Japan as Made in Wario..."
have the version strings for checking spigot/paper/craftbukkit been consistent over the last 4-5 years? and if they haven't does anyone have any boilerplate for detecting craftbukkit without false positiving for spigot
tf2ware is a good implementation of that in a multiplayer game
I think some server, cubecraft or something, has "minerware" but it sux big time
nossr50: version.contains("Spigot")
basically
doesn't spigot come up in the version string for craftbukkit?
no
oh okay
wario ware is a game where every 10 seconds or so it swaps you from minigame to minigame iirc
I see
4 seconds
10 is too long
I have a working version but I think I was last working on registering events to only fire in the world the game is running in
so every microgame's listener doesn't have to do a world check
Idea is to make this thing developer friendly so all u ppls can make lots of microgames easily
I wanna get BTC. :>
you mean the tianan*** ***** mass**** of ****? @stiff yarrow
?
Does anyone want nude pics? :> /s
why
you're in china?
i am for the moment yes
neat
for the next 5 hours
bring me back a souvenir
wat u want
postcard
ill look
did
kashike sliding into everyones DMs 
@stiff yarrow I'm selling a pepe... 50$ for you. :>
nude pepe?

be back gonna go postcard hunting for kash
:3
No, a normal pepe. :>
I've hacked in using 10 GUI proxies in visual basic and stolen the pepe
CSI should hire you
WOAH!
you can track down some killers
You could track me wherever you want, Mr. Pepe. :> /s

100$, last offer. :>

:o
They're all Xiamen University
Diff takes tho
@ anyone, if you want a china postcard hmu, you pay the postage
itll be a few weeks till im back but yh
📫
Yeah am gonna probably throw on some netflix
what's the most shittily coded server you guys have played on
paper tbh
I mean commercial server (not like, server software)
and if you do too then I didn't know paper had a server
I think mineplex's codebase is pretty trash
whatever that server we played ttt on kash
hivemc?
kept randomly dcing for bullshit reasons
lmao
evidently whatever their doing for packet handling is just fucked
which reminds me you boys should setup a paper server
why is minecraft in Java why didn't it get ported to loads of other languages yet
actually doing it takes a lot of time and competence
as it turns out keeping up with people paid to dev the game with people who aren't paid and do it in free time is pretty hard
The same reason there aren't any other feature complete versions of Minecraft in Java too
(idk how truthful it is but pre sure mc was notch's "i wanna learn java" project)
(and now, here we are)
pretty sure he knew java already
yeah idk, just something i heard a while back

