#help-development
1 messages ยท Page 1456 of 1
not spigot internally at least
obviously the network setup outside might have fun with the server
Yeah
least now i know somethings wrong with my programming and not spigot lol
Thanks ๐
how would I make a timer that resets every second
maybe add 1 to a variable every tick and if its is 20 reset it to 0?
lol
How can I continue color from prefix to player name using scoreboard teams? I mean team.setPrefix(ChatColor.RED) and i want to make player name in red color (without team.setColor() method)
this might work but i dont know public boolean ping(String ip, int port) { boolean online = false; Socket s = new Socket(); try { // if this does not fail it would mean server is online s.connect(new InetSocketAddress(ip, port), 10); s.close(); online = true; } catch (IOException e) { /* offline */ } return online; }
i never done sockets before
so dont count me on that one
int j = (arrayOfPlayer1 = Bukkit.getOnlinePlayers()).length;```
what should I do
I get an error but I need it to be an Array
are minigames hard to make
cuz it seems i've made a few
not the most experienced person
but im not too sure what a minigame really needs
final Player[] players = Bukkit.getOnlinePlayers().toArray(new Player[0]);
if you really need an array
arraylist is better
to me
why
idk
neat xD
didnt decompile just trying to learn spigot again cause its been a fat minute
working on old projects
from like 5 years ago
and just trying to update them
lmao
but yeah, if you wanna have an array list you could go ```java
List<Player> arrayList = new ArrayList<>(Bukkit.getOnlinePlayers());
tho like, if you are just iterating both of those conversions are useless
can anyone figure out whats wrong with this config path (spigot.yml)?
what xD
entity-activation-range.wake-up-inactive.villagers-max-per-tick
ah
for some reason trying to read that value (using YamlConfiguration) yields in a null
I mean, the activation range is set on a per world basis
so the default one would be world-settings.default.entity-activation-range.wake-up-inactive.villagers-max-per-tick
[23:17:19 INFO]: [MyPLugin] SERVER STATUS: ONLINE
welp my plugin detected my server is online
Might wanna use the java ServerSocket or something better with netty
whats wrong with Socket
lmao
I mean, socket can be both really
it doesn't specify what end of the TCP communication it is sitting
i tested this and it works XD public boolean ping(String ip, int port) { boolean online = false; Socket s = new Socket(); try { // if this does not fail it would mean server is online s.connect(new InetSocketAddress(ip, port), 10); s.close(); online = true; } catch (IOException e) { /* offline */ } return online; }
oh, you are being the client
Idk the exact scenario but ServerSocket would arguably more scalable assuming you might want to see check more than just a single server as any amount of connections can sort of be made in to a ServerSocket. Tbf I dont use java net anyways so not really relevant probably.
i mean i dont need to check multiple servers or even one i just added it to my plugin cuz
yes
for the flex
Well the initial recommendation wasn't to you
ik
i love ? and :
cuz u could do someBool == true ? "yes" : "no"
really nice feature i like
or you just do someBool ? "yes" : "no"
oh
because lets face it, comparing booleans with other booleans basically just means, please look at java tutorials xD
well i knew that u could do if (someBool) i didnt know it applied to the ? :
Ah xD yeah it just takes a boolean. No matter where that comes from
lmao
idk if theres a thing to convert a bool to a string with yes and no
they probs is
idk tho
Yes, Boolean.toString
lmao
your ping method might be problematic tho
no like, you close the socket after a potential exception throwing method
like, s.connect might throw an IOException
if that happens, s.close() is never called
which prevents the socket from closing
yes, but that is what you have either finally or try-resource blocks for
how do i use try-resource?
private boolean isResponding(final String host, final int port) {
try (final Socket socket = new Socket()) {
socket.connect(new InetSocketAddress(host, port));
return true;
} catch (IOException e) {
return false;
}
}
Id recommend just using a finally
why ?
Just my preference
Try resource auto closes
ah
public boolean ping(String ip, int port) {
try (final Socket s = new Socket()) {
// if this does not fail it would mean server is online
s.connect(new InetSocketAddress(ip, port), 10);
return true;
} catch (IOException e) { /* offline */ return false; }
}```?
ye
do u know what i should call it instead of ping cuz idk if its the right word
maybe i could call it isOnline idk
oh k
I mean isOnline is neat too
then s.close()
wat
its alr in twr
ok
and is automatically closed at the end of the try block
What is the replacement for this?
Objective objective = board.registerNewObjective("Stats", "dummy");
replacement in what way ?
its depreceated @eternal night
deprecated*
thx
english is the shittiest crappiest language for spelling
board.registerNewObjective("identifierName", "criteria", "My awesome display name")
sounds like depre seated lmao what u just said
package index
thanks cafebabe
declaration: package: org.bukkit.scoreboard, interface: Scoreboard
tho I must admin, spigot tends to sometimes have some rather interesting deprecation notices
i see
i think most, if not all, deprecations are justified
I mean, something like a method reference would help here and there
tho with how little people actually read those ๐ฆ
maybe not
sometimes there aren't replacements ;p
deprecations don't necessarily mean that something is to be removed
True xD Best message is the map id thing
i mean deprecated things doesnt mean it will break things
just like deprecated, this is trash API, works anyway but welp you do you please use different things
which is absolutely correct just kinda fun
most deprecated things is old tho
Or super new ๐
well yeah but most are old
true
lmao it took me forever to hook into papi cuz i kept getting null pointer still dont know the problem but i fixed it xD
i probs did something wrong in the code
never worked with papi ๐ฆ ยฏ_(ใ)_/ยฏ
i just have this giant class that main extends
XD
very messy
does getServer().getIp() return the actual ip of the server
ah my bound ip is 0.0.0.0 i think
yea
which is localhost i think
how do I catch multiple exceptions for one try statement?
Yeah, I mean tbh half of the day you have a proxy infront anyway
just multiple catches
i get an error though
give it a quick google
thats why im confused xd
try {
} catch(Expection1|Expection2 e) {
e.printStackTrace();
}```
but it just threw it
where
e.getRickClicked() doesnt do exceptions??
xD
lMFAO
that exception wraps the null pointer exception
when something in your listener fails
won't show up inside the listener itself
he probs got a nullpointer in there
wait im confused again now
whats in ur listener
Yeah you are just getting a nullpointer exception somewhere in your listener
if your scroll down a bit in the exception there should be a Caused by:
i know what im doing
ah ๐
xd
perfect
yea its classcast
which i was catching
but it happened in a different method
and i didnt notice
it was in a different one
xd
for some reason im getting this message
GRANT ALL PRIVILEGES ON 'typing_gamedb'.* TO 'typing_game' @'%';
It says im doing something wrong? anything obvious?
are you registering them on the main scoreboard ?
this is how I initialized the test team:
Team test = board.registerNewTeam("Test");
test.setPrefix(ChatColor.GOLD + "[Test] ");
im not sure what you mean by main scoreboard
where is that username at tho
like
there is a space
between username and the @
which should not be there
where do you get board from
oh wait
i got it
Scoreboard board = manager.getMainScoreboard();
i made that my board
rather than this:
Scoreboard board = manager.getNewScoreboard();
thats a discord thing
idk why it adds a space
Hmm, idk if you need the quotes around your db name
if I had to guess that messed up the regex that is the .*
tho, don't quote me on that
i heard that the skript parser is just regex is that true?
I mean, might be might not be. In the end it could very much just be regex under the hood
tho that isn't too much of an issue
the parser in skript is not the issue either when it comes to speed lol
skript parser is really slow lol
But it runs once
and then it is good
like, they don't do any just in time loading afaik
well doesnt it run it again when u reload scripts and load scripts
so after the startup they have an IR of the skript anyway
Well yes, but like that doesn't affect the runtime
i meant its slow reloading and loading and such
yea xD Tho in production that shouldn't really happen too much
I can't figure out why this prefix doesn't work
Team test = board.registerNewTeam("Test");
test.setPrefix(ChatColor.GOLD + "[Test] ");
the team works, just not the prefix
wdym
neat lol
skript
not your issue. That seems fine tho tbh
I don't see why that shouldn't work
i mean it works in the tab menu
and a bunch of checks
just not in chat
are vanilla team prefix send in chat o.O
oh wait no
Then why would that work xD
i thought it was
no i got it
i didn't realize that in vanilla the chat isn't affected by prefix
is it not
im pretty sure
cuz i made a team thru the normal way
and it didn't do the chat thing
so
yep
ah. Well I would personally suggest your own chat handle anyway xD
theres a massive bug in mc that crashes servers from the inside
ya, i prob will
huh ?
oh that
But the client cannot create those in vanilla no ?
someone had ALOT of markers
it can
theres a dupe glitch for markers
it was to do with nether portals
i believe
they crashed the worlds biggest anarchy server
with it
seems like an easy thing to prevent tho
not really
someone made a map thats had like 100k markers and it lowered ur fps like to 0
and if u hold it
it kicks u off the server
XD
Yeah but can't you limit those packets
actually its like a ban
i think
it keeps kicking u
if u hold the map
apparently someone developed a mod to disable them so they dont crash
Today on the oldest anarchy server in Minecraft, we uncover how 3D Minecraft maps DESTROYED 2b2t, and became the most powerful exploit in the server's history!
Get Honey for FREE today - https://joinhoney.com/fitmc
Honey finds coupons with one click. Thanks to Honey for sponsoring!
My Twitter: FitMC
My Instagram: fitmcsippycup
Music: AoC (War C...
yes you can limit the packets
the thing about anarchy servers just is that they don't want to do that because they're dumb like that
it's not an issue and it's not a problem
you can probably also cap the amount of decorations applicable to a map on the server no ?
the server needs to process that too
the only way to make it into a problem is by actively not fixing it
yeah
he added a patch but it wasnt really a good patch it was just limiting how many item frames u can see in a chunk
i thinK
well yea that is a trash patch
cuz they could just do more markers
worst possible patch
yeah its a crazy thing in mc tho
and it should be fixed really
cuz imagine people using this on real servers thats not no rules
nothing new and not the most pressing or blatant issue that has been lying around and causing issues
at least they patched the treasure maps crashing servers one in 1.17, allegedly
villagers still suck
portals still suck
i wouldnt think something like a map so harmless crashing servers XD
the entire game is a dumpster fire
Can I make intellij run a command in the terminal after I've hit package in maven's lifecycle thing
what command are you running after?
I need to just run a simple batch
yup
i like typing the command since u get responses from it
that might be helpful
XD
you still get a response
its literally just a shortcut for maven commands you still ahve to type them
i like maven because i clicked package 5 minutes ago and it's still at "scanning for projects"
?
weird mine just takes like 1 min
and u probs have faster pc than me
this machine can't even run pisscord
lmao
i thought u would have a good gaming pc
what its just bad apple
oh wait
wrong one
wait no
its bad apple
;-;
you know you can do this inside mc too lol
lol
fake
no
how do u know
Because I made it too
it cant be that high quality tho
it can be because its black and white
^
With color, it's a bit slower
one of the disadvantages with maps however is that it sends a ton of bandwidth to users
and it would lag for latency
why is it so bandwidth heavy anyway
but there are entities too https://minecraftmedialibrary-wiki.readthedocs.io/en/latest/code/video/entities.html
no idea
it's just a few pixels with shitty color depth
ยฏ_(ใ)_/ยฏ
how can that possibly fucking use so much bandwidth
maybe they coded it shit
who?
well it's mojang so that's a given
lol
mojang idiot
video streaming is always really high bandwidth
well back when I did it there was no compression
but nowadays there's compression so idk
lmao
i saw your old video
md_5 why are u here
cause he made a plugin before iirc
very long ago
that played videos on a map i think
it was pretty bad, but good for the time
Yeah
for reference, the bad apple video is on a 7x7 display at around 30fps, 4:3 res
md_5 why are u jumping into the conversation randomly
and it uses around 10 mbps
try decreasing the compression threshold in server.properties
might be able to shave a lot of bandwidth off
though maybe the plugin is sending whole frames>
I didn't know that
hmm, i havent touched that before
my plugin only sent changed columns
That'd be interesting to look at
yes, it is sending entire frames, i thought that would be more efficient instead of a ton of smaller updated rectangles
especially for video
u could split the video into a cells and then send updated cells
whats vlc
vlc media player
why do u need that lmao
You can use that in Java
my approach was basically to just only send updates if more than a few pixels in the column changed
produced some artifacting, but helped a lot
interesting
why not MD_5 instead of md_5
bro sotp asking stoopid questions idkid
the only major example of the artifacting is the cats shadow shouldnt be there
lmao just curious
that looks real bad lmao
basically just didnt deal with horizontal lines well
I'm sure you can do better these days
it looks streched
do you remember if you updated each column individually with a packet?
and pixelated (but then again its mc lmao)
iirc each frame was a packet, and the packet allowed you to only send select columns
and do you know approximately how much bandwidth you managed to save by updating the columns only?
packet format has changed since I did this
it hasnt changed too much with the update area so far
right now it lets you update a rectangle of any size
oh I also rendered all the packets in advance
cause it also used a lot of server cpu
Ye
I never understood why it had to render every frame
i forgot about that lol
wait can u do everything without nms
?
i meant can u do things in nms without it
iirc, youtube actually uses an algorithm which only checks for changes in pixels (pixels are the same if they are the same before)
render a map? sure
Yeah
i thought it uses a blob like thing
video compression is its whole own branch of science
It doesn't. It's also the reason why videos with snow may lag a lot
cause there are a lot of changes in pixels from the falling snow
worth reading up on how jpeg works
yeah utube can make a 5gb file maybe to like 30kb
though you'll need at least 2 years of university calculus to appreciate it
it only stores the differences in pixels
thats a strech
not just differences
isnt jpeg relatively bad now
there are dozens of different ways you can compress a video stream and the best algorithms are mixes of them all
@drowsy helm same principle is used for H.26X, mp3 etc at the core
Yeah
only really in dark areas
jpeg is just an easy example
DCT is the secret to JPEG's compression. Image Analyst Mike Pound explains how the compression works.
Colourspaces: https://youtu.be/LFXN9PiOGtY
JPEG 'files' & Colour: https://youtu.be/n_uNPbdenRs
Computer That Changed Everything (Altair 8800): https://youtu.be/6LYRgrqJgDc
Problems with JPEG: COMING SOON
Upside Down Trees (Huffman Encoding):...
this video probably does an ok job
havent watched it though
md_5 ignores me lmao :(
I'd do too
me too
lmao the old mario where it was limited to like 30kb or something like if u took a screenshot of the game it would be bigger than the game itself XD
i havent seen a computerphile video in years lmao
i remember watching Computerphile for learning dithering
error difussion dithering
which is it's own separate topic too
Using PlayerCommandPreprocessEvent, how can I check if the command is valid?
(1.16.5)
?xy
Asking about your attempted solution rather than your actual problem
I was wondering
Would entity name tags use a lot of bandwidth?
Cause entities and using nametags are also another way for playing videos (which will be updated constantly)
i think its a 1 time thing that gets cached
ic
can someone make me this I dont understand coding its a whole tutorial but u have to skip to 38 sec for tutorial https://www.youtube.com/watch?v=9_kRspIX2eE
asking is forbidden
good
i need to get my 2fa code
and this is why i prefer ripcord
no hassle
you just click and you're in
just like god meant credentials to be
k im logged in
bruh is anyone gonna help me\
then learn java
ยฏ_(ใ)_/ยฏ
then ur out of luck
Donโt come here lmao
m8
bruh this is help developenmt
yeah
not we help you by developing things
can u help me
write it
help me set up the thing like whith the packages on the sides
thats what i dont get
bruh
package what
learn the ide ur using
look at the vid
i don't have the effort
'D
send an image
oki
@sinful raptor ur making me loose brain cells
cant add image
link the image
uhh how
just go to vid and then go to 1:03
no
goodbye
NOOO

:buoobuoo:
What donโt you get
gosh darn why is nuvotifier dependency not available :/
the things on the side
have you made a project yet
Packages are basically folders
no i haveny
Well, make a project
yeah but I want to know hot to set it up
new feature ๐
Pog
ill send you a picture of what I have
actually maybe it was like 2 mins
i didnt keep track of time
i like just put it on charge
i'm using youtube mobile on desktop because the new material layout or whatever it's called is super fucking slow
Then mine charges unbelievably slow
then dont use it
it isnt slow for me
its actually faster
Did you know you can turn off pings for replies
yes but why
because it turns on all time and i dont want to keep turning it off
Uh does it? Weird not for me
for me it does
lol
it did turn off repeatedly at some point
see
but it's been quite a while since
idk if that's been patched
haven't used pisscord for ages
What do you use now? Still rip one?
after i send my message it turns on
yeah
whats pisscord
isnt that discord
ah is there anyway to lower this i added 1 command 1 placeholder and its like 16.4kb
you're probably shading in your mom
im not shading anything in
the classes folder is 28kb
lmao
apparently its 60kb on disk
that means that there are many small individual files
usual sector size is 4kb so anything smaller than 4kb is going to use 4kb on disk
in flatfile, anyway
compression is different
i also removed the meta-inf completely
since i didnt need it
the precious bytes im saving from that
is quite alot LOL
no but its legit all my classes in the jar
no shaded things
16kb is pretty small tho
im saving 2kb from deleting the meta-inf using a thing in maven
I cry when I update a dependency and get an error about manifests
I'm gonna be honest my brain is too small to really know what it does kekw
me either
I just add one when I get an error or smth
omg
my world generation in mc just almost generated a penis in the ocean
half of a penis
in the ocean
LMAO
thats natural world generation for u
Gotta finish it m8
so I stole borrowed this code for launching a projectile but e.damage doesnt work, what do I use instead? ```@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
if (!(e.getAction() == Action.RIGHT_CLICK_AIR)) return;
if (!(e.getItem().getType() == Material.DIAMOND_HOE)) return;
Fireball f = e.getPlayer().launchProjectile(Fireball.class);
f.setIsIncendiary(false);
f.setYield(0);
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Fireball) {
Fireball f = (Fireball) e.getDamager();
if (f.getShooter() instanceof Player) {
Player shooter = (Player) f.getShooter();
if (shooter.getItemInHand().getType() == Material.DIAMOND_HOE) {
e.damage(10.0);
}
}
}
}```
what do u mean by doesnt work well
question:
if ((e.getAction().equals(Action.RIGHT_CLICK_AIR) || e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) && StaffMode.sm.contains(p))
is this real ๐ https://www.youtube.com/watch?v=_nURoFHyXUo
Discord is introducing a brand new channel type which can be used on Discord Servers. It has been in the works for over a year, and is finally being tested on some communities across Discord. This channel is called โThreadsโ which act like temporary channels in which people can talk in for a select period of time. These channels have the permiss...
its not a method it recognizes
its does it twice
ยฏ_(ใ)_/ยฏ
i think mc only calls interactevent on blocks and not air
you think its cause of off hand?
what
when i right click a block it says "vanish enabled" then "vanish disabled"
im 99% sure its cause of off hand
how would I check if it is just the main hand
PlayerInteractEvent#getHand
yea ik that
but like
how do I check if its the main hand
and not the off hand
interact only gets called when u interact with a block not a air block tho
i think
join general 1 i can ss
PlayerInteractEvent#getHand
ยฏ_(ใ)_/ยฏ
ahh
and it gets called for blocks and air
ok thank you
as well as redstone components such as pressure plates
im dumb
welp it still dont work
i have an idea now that I know its EquipmentSlot though
thanks
@quaint mantle can you join vc
real fast
so I can show you what it's doing
dang ok
as if explaining code on vc was any easier than it is in text
nah I just want to show what my issue is
send an image
use == to compare enum constants
k
i use .equals for everything almost lmao
.equals compares the object right and == compares the memory ?
i forgot
works but doesnt affect anything
I still have the same issue
he didnt say it would fix it
the bot probs deleted it
ยฏ_(ใ)_/ยฏ
== test identity equality
u dont need {} sometimes
I understand Im missing them but I dont see where xd
for example, two Integers may be equal, they have the same value
but they may still be 2 different objects
in such a case .equals would return true and == false
k
most notably it's a noob trap with Strings
"abc" is equal to "ab" + "c"
but not ==
because appending c to ab creates a new String object
so anyone know why then xd
so does .equals compare content?
that is one way of describing it
equals compares the objects, == compares the references
k
a == b is true iff a is b (from NNY lol)
so will "abc".equals("ab" + "c") be true or false?
true
true, because "abc" is equal to "abc"
is there a ===?
ah it should be like .equals in java or something lmao
I wish java had === and == lol
hmm ye
i think === should be .equals in java signifying that it is more accurate than ==
accurate is subjective
whether what is more accurate than what depends on what you're looking for
i guess
== is perfectly accurate in that it never returns incorrect values
but i still think there should make .equals ===
someone could implement equals improperly and it could return incorrect values for comparisons
but it still depends on what you're measuring
if you're measuring reference equality, == is accurate
if you're measuring object equality, equals is accurate
well i still think === should be .equals
How can I detect if a command in the event PlayerCommandPreprocessEvent is a valid command?
[Irrelevant response] I mean.. does it matter?
Bukkit#getPluginCommand(PlayerCommandPreprocessEvent#getMessage()#split(" ")[0]) != null or smtng
lol
cuz Server#getPluginCommand is nullable obv
if (plugin.getCommand("command") != null) wouldnt this work lmao
cuz u probs gonna give events access to ur main file instance XD
Server#getPluginCommand uses the CommandMap as its lookup
oh
what does the # even do in java
I still stand by my point, who cares if they enter an invalid command? ๐
Itโs just javadoc syntax
But basically that the methods belongs to that class
N137 ye probably xy issue
why not just do Bukkit.getPluginCommand?
I use Server to make it more object oriented but ye Bukkit class works too
i mean if u want to make a custom invalid command message then you may want to know it
Assuming no idiot set a custom server with Bukkit#setServer
lmao
thx
why does that exist
That was basically done in a core plugin which bamboozled like all of their other server plugins then they asked for support
Idk
it might be there so then the bukkit loader thing can set it?
Yeah
I would argue for that a setter shouldnโt be exposed and instead letting Bukkit reflectively set the server instance
The api is anyways non extendable in most cases
๐ฅฒ
XD
it's the way it is intentionally
Itโs kinda yucky ye, I mean we have a decent api so thatโs kinda nice
u wanna make a plugin with nms that works everywhere bam most of your dreams are ruined
Yeah here is how it will look with a trivial abstraction https://github.com/MinecraftMediaLibrary/MinecraftMediaLibrary @paper viper ๐
even if it wasn't relocated into a different package for each nms version, you still couldn't build against multiple versions at once
but atleast make things with it
because you can't depend on multiple versions of the same artifact at once
^
you'd still need a multi module project or reflection
or use the fucking ide to import all of the server jars ever made like one golden fucknugget
i still dont get what reflection does it look for a class for whatever version you have
reflection is the ability of code to look at itself
Technically mojang could have included an api for their server implementation for cross version compatibility although I guess itโs not in their interest.
dont use reflection for this still lmao
reflection is when code is able to look in a mirror and see what code has been written
Found out lambda method factory is fast so thatโs pog
for example I could programmatically look at all of the methods declared in a given class, or on a given object
or if itโs was meta factory idr
its sad that u cant upload anything that has nms in it
well it depends on your usage
nms is very powerful
well i mean everything in bukkit might use nms lol
well yeah but i only avoid it cuz its hard to implement it with cross version in mind
cross version is gay anyway
there is next to zero reason to be on anything but latest
no
thats why u have to support it
someone pull up the stats
Hypixel runs 1.7 but they have a custom software
no some of there minigames is 1.12.2
Uh 1.12? what the fuck
1.16.x accounts for like more than 75% of all servers
So their situation is hugely different as opposed to using public available software
who uses 1.12
literally nobody uses 1.12
lol
except some mods i guess
everyone uses 1.12
so I have code to shoot a wither skull from my wither staff item and to shoot a dragon fireball from my dragons fury item, the wither staff works but the dragons fury does not, whats wrong? ```@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
if (!(e.getAction() == Action.RIGHT_CLICK_AIR)) {
if (e.getItem().getItemMeta().getDisplayName().equals(ItemManager.wither_staff.getItemMeta().getDisplayName()))
{
WitherSkull f = e.getPlayer().launchProjectile(WitherSkull.class);
f.setIsIncendiary(false);
f.setYield(0);
}
if (e.getItem().getItemMeta().getDisplayName().equals(ItemManager.dragons_fury.getItemMeta().getDisplayName()))
{
DragonFireball d = e.getPlayer().launchProjectile(DragonFireball.class);
d.setIsIncendiary(false);
d.setYield(0);
}
}
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof WitherSkull) {
WitherSkull w = (WitherSkull) e.getDamager();
if (w.getShooter() instanceof Player) {
Player shooter = (Player) w.getShooter();
if (shooter.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals(ItemManager.wither_staff.getItemMeta().getDisplayName())) {
e.setDamage(10.0) ;
}
}
}
if (e.getDamager() instanceof DragonFireball) {
DragonFireball d = (DragonFireball) e.getDamager();
if (d.getShooter() instanceof Player) {
Player shooter = (Player) d.getShooter();
if (shooter.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals(ItemManager.dragons_fury.getItemMeta().getDisplayName())) {
e.setDamage(10.0) ;
}
}
}
}
}```
i seen alot of 1.12 servers
Their server implementation is 1.7.10 but they donโt allow 1.7.10 for instance
than 1.16
(yes they do)
somebody pull up the stats page so we can bury this stupid debate already
what's your source @granite stirrup ? other than "ive seen alot"
"hypickle uses it"
thank you
@granite stirrup that "website" just has a picture on it
but i seen like every singLe server on a serverlist site and its all 1.12.2
idk i seen loads of 1.12.2
Every server doesnโt necessarily have a plugin or smtng which sends data to bstats so he might be negligibly inaccurate
you have like, what, pre-flat materials
1.12 is the best one for performance lmao but still has most of the features u want
not really
i want waterlogging
building underwater shit without waterloggable stairs and shit is cancer
no you doooooont
add it then
why so many on .4
now do paper vs spigot
lol
anyway my server is 1.14.4
lmao why
i meant 1.14.4
yeah
let me tell u why
you really should be using 1.14.1
let me tell u
Why 1.14 lol
it's possible that 1.14 is the worst version in the history of the game
1.14.4 has all these unnecessary bugs that are fixed in 1.14.1 ๐
1.16.5 uses to much memory lmao and it crashes my server
๐คก
my server pauses
lol that just means that you have it set up incorrectly
OMG!
you don't know what "uses" means
and the server dies when it goes over
i'm currently running a 1.16.5 server with less than 1gb of memory
i have 150+ plugins installed
idkid how old are you
including multiverse, towny, dynmap and mcmmo
it isn't
it is
you just can't read the values right
no its legit on the panel
you probably don't even know what the difference between the heap and native memory is
you are looking at numbers and going omg they are big when you don't even know what they mean
bro i readed the numbers on memory usage on the panel it went over 1gb
;-;
anyway, 1.14 is literally the worst version
it has the worst performance, the most gamebreaking issues and crashes and bugs
it doesn't have support
it doesn't have any useful features over 1.13
but muh pillagur
or any advantages compared to 1.15
und i dont wan beez!
yuh villagers > beeeez
if you use fucking 1.9, 1.11, 1.14, 1.15 any of those cursed versions
you should go die in a hole
1.10 is great though
like i can somehow vaguely get 1.15
thats why i didnt add it there
Lol
the nether changes and some underlying world system changes in 1.16 can be a dealbreaker for some people
one point ate is my favrit vershun
1.17 new updates are going to help push more people over too
but i don't really think anybody would run 1.15 seriously
1.17 is going to break so much shit
maybe its cuz i was using paperspigot 1.16.5
like holy fuck
from where?
from lower versions
paper hasn't been called paperspigot for like 5 years
yeah that is true its going to break shit lol
and paper works fine
java 16 right
pvp elitists wont budge
yeah but when i did paperspigot 1.16.5 it went over 1gb of ram and it was like 1.9gb
yeah and that's not an issue
if you don't want it to go over 1gb, restrict it to 1gb
i only have 1.5gb of ram
in 2021