#dev-general
1 messages · Page 19 of 1
no I don't
I think of it like a regular crime. If you helped with it without knowing it was a crime or was going to turn into a crime, you arent in trouble, but if any mention of you knowing it was happening and going along with it, that instantly makes you an accomplice and subjects you to the hands of your countries legal system (at least thats the rule in the U.S.)
but I think as long you werent the one to pirate it, you are fine. and once it is pirated, I think it is fine, like, owning it is fine, but getting it isnt (I hope that makes sense, it also could be wrong)
Well when you buy a premium plugin you should get the right to modify and redistribute it
It’s not really piracy, piracy is more ethical than purchasing premium plugins
Wish there was a better site dedicated to freedom over just purely leaking for profit
Maybe remapping and uploading to github
polymart has something they claim is leak proof. Its some sort of unique identifier on the jar that is unique for each jar (hence the name) and is heavily encrypted, and when two jars have the same identifier or something it wont let it run, its something like that. one sec, I will find where they talk about it
Leak proof != crack proof
I meant both
here
Polymart will automatically and uniquely obfuscate and fingerprint your premium .jar files. This means all strings (including placeholders like %%__USER__%% and %%__VERIFY_TOKEN__%%) are encrypted and obfuscated.
Obfuscating your code deters would-be plugin leakers — it makes it hard to make sense of your de-compiled code, and even harder to find any of the secure Polymart %%__PLACEHOLDERS__%% that you use.
Each obfuscated file download is uniquely fingerprinted, so it's easy for Polymart to find out who leaked your plugin, if you happen to find a copy online. This won't interfere with any dependencies at all, and should have no effect on performance.
The best part? All you need to do is check a box on your resource page. That's it! Polymart handles the rest.
so it wont stop it from running, it will just help find out who leaked it. The first half is just regular obfuscation. and I guess the 2nd half is just that they are claiming that if it gets leaked they will do something (idk what)
Polymart is more of a hellhole than BBB
It’s where the people like yoonicks who got kicked off of mcmarket for DDOS'ing servers to promote his own plugin, plus also included a rat in his plugin.
The most powerful AntiBot & AntiCrash. The new era of stress tools prevention. [1.7-1.19.x]
See the aegis dev
This community is fucked that these people can still exist and sell software. They sold literal malware and committed crimes to advertise their plugin.
spigot has this too btw
although you make it sound like polymart has its own server where you can verify - however I don't think spigot has that feature
I am not sure to what extent the polymart system goes to
Oh, I didn't know that.
Yeah, I don't use it, it also doesn't seem as mainstream as BBB or Spigot
Yooniks 💀
Had an argument with him quite a while back
If you rename an item in the anvil, then you can sell it indefinitely through deluxmenus)
'26':
material: honey_bottle
slot: 25
amount: 1
display_name: '&aБутылочка мёда &ex1'
lore:
- ''
- '&aЦена продажи: &e75$'
- '&bЛКМ&a, чтобы продать'
- '&bПКМ&a, чтобы продать 9 слотов'
- ''
- '&8> &aБаланс: &e%xconomy_balance_value%$ &8<'
left_click_requirement:
requirements:
item_check:
type: has item
material: honey_bottle
amount: 1
deny_commands:
- '[message]'
- '[message] &6&lМагазин &a&l▷ &cУ вас нет такого предмета, либо их недостаточно для продажи!'
- '[message]'
left_click_commands: - '[givemoney] 75'
- '[refresh]'
- '[console] clear %player_name% honey_bottle 1'
but i can infinity sell this, after anvill renaming
@frozen magnet
yalls opinion on pufferfish+
they say they are gpl compliant due to their patch system?
I thought gpl compliant meant that it has to be OS?
Patch system is to prevent like DMCA, no?
For like copyright or smth legal
kevin (creator of pufferfish+) says their patch system makes them complaint
GPL and the patch system are completely unrelated things
That's what I was thinking
whenever u launch pufferfish+ it downloads the patches from a external server /shrug/
yeah and that has nothing to do with GNU GPL, it's to do with Minecraft EULA
Kevin is just an a-hole
O
I don't know if your about me has anything other than "Hello there", but I can't see past that.
Discord lets you make really big about-me's and then hides the bottom of it for some reason
ah, + all the code is obfuscated
Huh
Classic discord
Yeah, it's honestly one of the more frustrating parts of discord.
Mostly the fact that I can see when a user puts too much in there and I know they don't know 😩
I cannot on yours
not necessarily OS, but you have to provide the source at no extra cost
Ye
Well obviously people aren’t gonna follow the license
so, pufferfish fork = kotlin = bad?
People break rule, so rule isn't real
Although I believe BBB is enforcing GPL compliance for server forks now
you’re half right at least
we've been using pf fork for a while now, but if it has bad rep then I might as well switch to paper as it is 
I thought you were referencing the Better Business Bureau and I was so confused as how they were going to enforce it or why they care
I don't think most plugin devs are considered buisnesses
the BuiltByBit is such a weird name
they should of changed to a 'faucet' or something like that
TRUE
If I ever become a millionaire that’ll be what I spend my money on
Frivolous lawsuits
precisely
You'd get so many tossed out in the states tbh
With the only goal being to annoy
poor spigot reference
Oh yeah I’m sure all the lawsuits in the states are entirely unfrivolous and totally groundbreaking
Yes it was poor, do better next time
I’m not impressed
You're just not the injured party.
Not yet
hm
That is actually based
indeed
I need help i cant open a dll file
it says "You are attempting to open a file type 'System flie' (.dll)"
why are you trying to open a dll file?
working on a sever and my friend sent me a dll to put on it and open it
lol
Lol
when the LuckPerms.dll cant be opened 🙁
probably a virus, virustotal it
Paper.dll
its a game sever
yeah, exactly.
Dll file 👎
Bruh my friend is dumbass he says oops that was a dll make it a bat I was scripting it fast I did not see that
idk
that does sound a little suspicious
no its a start for the sever
Yea but bat files are powerful
making a gmod server
this is the script on it
cls
echo Protecting srcds from crashes...
echo If you want to close srcds and this script, close the srcds window and type Y depending on your language followed by Enter.
title srcds.com Watchdog
:srcds
echo (%time%) srcds started.
start /wait srcds.exe +host_workshop_collection 2796177013 +r_hunkalloclightmaps 0 -console -game garrysmod +gamemode darkrp +map RP_EvoCity_v2d +maxplayers 16
echo (%time%) WARNING: srcds closed or crashed, restarting.
goto srcds```
ok that's fine lol
Seems fine
oh yeah that's chill lol
god knows how he got that as a dll
Uhm quick question, I have a bot that serves as a wiki for a game but was planning on expanding it to other games since that game died a bit. Would it be a wise idea to have several games in a single bot? each game having their own command with subcommands for that game.. or would that be too confusing? I didnt wanted to lose the guilds I have already...
I'd make a setup command where you can toggle which games are in which servers
and only register commands in servers for games which they're using
cant I just make global commands? With the new permission system they can disable it easily
This is true, but, that's complicated to some people
Also dont guild commands have a limit?
I mean, limit to number of guilds
no
oh so even with Thousands, it wouldnt change?
Either strategy could work, I would just worry that non-experienced server admins would get overwhelmed and remove the bot
I don't think so.
hmm
idk about overwhelmed
each game would have its command so for ex.
/mc
/roblox
with each having their subcommands
Yeah yeah, I get the idea
my only concern is people would see all these commands they don't need
and remove the bot
but who knows
my largest bot is only at 25 servers, so I don't have that much experience
i have a question but I'm not sure if it counts as "configuration help" 😟
Which jdk from winget should I use? I am trying to make setting up a fresh pc a little easier with some powershell scripting
I saw the adoptium one is available, but there is also one published by Microsoft:
https://winstall.app/apps/EclipseAdoptium.Temurin.17.JDK
https://winstall.app/apps/Microsoft.OpenJDK.17
the issue is that either way that would happen at the start, even with a /settings command that can be missed easily.
and if I disable all of them and wait for them to enable them, then that can also be an issue
lol
register a setup command at the beginning, and maybe send a message in some sort of private channel you find
(eg. look for the community channel that gets discord updates)
maybe in their dms too?
and if that's not there, the channel with the least people
that too, yeah
You'd need audit log privledges to know who though
so disabled by default?
to know who added the bot?
hmm okay, I quite like the idea
the issue is, what if a new game gets added
automatically disabled too?
yeah
maybe have a way to notify admins?
yeah that's a good idea
a (optional) bot updates channel
that literally just follows your server's channel
for updates
although if they already follow it via discords feature
they would have double
lol
unless you can also check that with the api
wait can you even register guild commands and inregister them without restarting the bot?
also, werent guild commands unregistering bugged?
yeah?
restarting the bot has nothing to do with registering commands
those are seperate things
unless you use an API that combines them
I use jda so no idea
JDA does the same thing
as in combines them or doesnt?
Doesn't, they're two separate things.
Technically you could register commands when you restart, but that's a overkill
you could even make a command to un/register commands!
of course that implies having registered it beforehand
Thanks for the clarification
#general-plugins or #1007620980627230730
don't crosspost
@dark veldt What placeholders do you need?
oh hmmm, one of the placeholder is to rate players based on armor+weapons they have with what enchants
like %player_power% to use for levelled mobs, so mobs can be levelled up according to armor players have in inv
done
Can I have one too?
fresh out
andre spotted
The spigot review resource section is a disaster
Some guy left 4/5 star review because it didnt support the latest version. 🤠
should make review requirements like premium resources
Since when spigot resource reviews are relevant?
lol you can literally make hundreds of alts and give 1 star review
to absolutely trash that one plgin
Having a brain should be one req
💀💀💀
Ive had another bad review regarding the same subject, people not being able to understand that MM is the future and I won't add support for legacy color codes :))
less clutter
gives other people a chacne to be seen
i guess
gg!
DANSKER
ja
jeg går ind i it-support/it ungdomsudannelse, er 6 måneder fra at gå ud af skole i 9 klasse
tjener fine penge
er op på 3k danske?
på et par måneders on-off
med nogle fine store kunder
Godt klaret 👍
fik købt mit bruge arctis pro headset for 4-5 timers arbejde 😄
forskelligt
server configuration og setups (setups er mere sjældne og er smertefulde)
500 kr (kunde betaler mig 100kr i timen)
Nice, ung hustler
#off-topic bedre sted
han valgte at ville betale mig i timen (gør det næsten aldrigt)
guys this is an english only server 🤓
🤓🤓🤓🤓
@crude cloud what was the alternative for jda, d4j?
d4j my beloved
jda better ngl
TRUE
false...
Using Kotlin I particularly like JDA with the kotlin extensions.
Some of the other libs makes it a lot more bearable to use.
I like the DJS lib a lot, but I don't fancy JS particularly.
djs would be better if it didnt make a million breaking changes every minor update
I don't like the build-system Js has either.
I feel spoiled with gradle 😌
true the js ecosystem is one of the worst things ever created
which is a shame because TS as a language is pretty nice
until you get some exceedingly complex type
JDA + JDA
?
JDA 5 would like to speak with you
at least that's a major update
djs will break shit in a patch version because nobody in the js ecosystem follows semver
During the beta though every single one would break everything
But again, it's beta
like annotation framework?
also somehow I only discovered lombok annotations yesterday 💀
Undiscover them
why?
Lombok bad
temporary pin until piggy makes a faq
just use kotlin for that matter
Why? It's a very nice lang
ik
but I only recently got used to java, and dont wanna go on switching to another lang just like that
idk, besides that, looking at kotlin code scares me
lol
I'm sorry for your loss
it doesn't have @Getter and @Setter !!!
me not being familiar with it ¯_(ツ)_/¯
lombok is literally cancer
only found out about those yesterday lol
I mean it introduces the elvis operator, which is a nice addition
:?
or the otherway, Idk
?:
which does what
It's a null-check basically.
If the left side is null, it gets the right-hand value
Good, it's early enough that you can still forget it
sooo getOrDefault indirectly?
Not exactly
lul, I mean, I have only used it with this mongodb framework I use
(en2do)
For example:
val test = nullable ?: return
Equivalent to
if (nullable == null) return;
var test = nullable;
hmm interesting
I mean, I do know kotlin is pog
I am just scared to make the change to a complete new lang, besides, I do Java in school (although sadly just basic stuff)
That's understandable
eitherway, scared to make the change, scared to relearn everything and scared to confuse stuff in java with kotlin vice versa
it probably wouldnt affect anything at school
since java I do at school I already knew years ago lol
dont even know where to start
u dont need to relearn everything
theyre very similar and fully compatible with each other
does that mean for ex. mc plugins coded in kotlin fully work in bukkit? without any extra steps?
hmm ok
scala plugins here we come
based!
any? there is more than java and kotlin in the jvm?
Groovy
groovy is also jvm?!
I didn't know jython existed, and I'm scared
same
jython is truly something
ive heard stories of servers writing their entire stacks in jython
Does it perform better in a JVM environment?
Right
Hi. I'm back
Whale...
You could say you're having a whale of a time

🐳
bad at math
help me calc this real quick
I'll give a croissant as a reward
(chatgpt is dead, can't ask 😦 )
Calc what
Level function
oh I see
based on the amount of the XP player has, which level he should be
for (i = 0; i < max_level; i++)
I used
int level = (int) Math.floor(0.1 * Math.sqrt(exp));
int levelStart = level * level * 100;
int levelEnd = (level + 1) * (level + 1) * 100;
before
decided to adjust the bounds a bit, now my brain hurty from math
FLOOR(0.1 * SQRT(E5 + 1))?
does that work? I've tried 0.1 * sqrt(20000) and the result is 14, while 20k exp should be lvl 13 according to your sheet?
the sheet is new
the code is what I used prior to adjusting
what exactly did you adjust?
int levelStart = level * level * 100;
int levelEnd = (level + 1) * (level + 1) * 100;
to
int levelStart = level * (level + 1) * 100;
int levelEnd = (level + 1) * (level + 2) * 100;
and the question is
int level = ?
yes
?
im too tired to solve basic math 💀
there should be an equation in mc src, right?
hoh
public static int getLvlForXP(int xp) {
if (xp <= 255) {
return xp / 17;
}else if (xp > 272 && xp < 887) {
return (int) ((Math.sqrt(24 * xp - 5159) + 59) / 6);
}else if (xp > 825) {
return (int) ((Math.sqrt(56 * xp - 32511) + 303) / 14);
}
return 0;
}``` found this
no, it's not based on in-game experience
that is not for minecraft xD
it's a custom level system
i know right
or are you making this shit up
the question was help me solve this simple problem that my monkey brain cannot
bro read the chat
he wants to reverse that shit, right?
yeah I don't know how to explain it more clearly
it does represent level, but I just wrote it in, it's not calculated from the amount of XP or wtv
wait what's exactly the purpose here? to create a good formula for a good xp system?
so level 1 = 200 - 599 xp
thats what i was thinking
also just steal dev den code ez
kind of, yeah
HelpChat's is private i think
it's quite decent
dev den isn't
uh
Sheet1
Level,XP Needed,Difference,Second Difference,Third Difference,#bot-commands gives no XP,Level,XP Requirement
79,968,045,34,420,825,10,#chat-reaction gives 10-20 XP per win,1,0,< - Using the formula to predict the XP Requirements
78,933,625,33,595,815,10,2,155
77,900,030,32,780,805,10,3,37...
😮
👀
oh wow a whole graph
we were nerds @prisma wave
Ig it will do
Wasn't that a prediction and not the actual formula
yes
like actually....
But was rendered "pretty close"
Worked though
All the numbers were correct, we were just calculating them in a different way
decent enough
not to leak anything but i believe barry uses some sort of loop whereas our formula was constant time
That would make sense
Because of what BM just said
technically could
What is “it”?
like why isn't it just xp^something
👍
also bm
what happened to /rolecolour
while you're here
maybe perms broke when I banned the bot
You what
lol
You are a child
no you're not
my first message here was sent the 08/16/2018 10:08 PM
define child 🤔
this is mine
Is the equation still needed?
I don't think I need to
cause i might have found something xD
Yes please dm it to 18 random people
funnily enough stayed here for a year without saying a word
Current XP -> level
I think
?
oh
what you want me to do bruh
You heard me
cry
dont u just reverse it
Cryslycer 😌
yes, convert the amount of XP user has to a level
true
Dare i ask why when you could just store it?
yeah just reverse it
Honestly levels are just a way to make a big number a smaller number.
Just make the xp the level
Reverse what lmao
idk
the equation
ignore me
you can’t just magically pull an inverse function out of nowhere
sorry for all the ruckus, I'll stick to one of the two suggestions
DO NOT ask questions ever again
I wish discord added a way to pause gifs
=purge <num>
?
I didn't know it worked with / as well
I did
I was going to type /purge to meme. but this also works.
why are we pruging this now lmao
bruv
it was a joke. M0dii sent a gif from MIB
I'm severely exhausted and I have exam tomorrow
but yes, I'm good
nice
wow
@wind patio
chatgpt is smart
In order to find x, you would need to solve for x in the equation y = x(x + 1) * 100.
One way to do this would be to first distribute the 100 on the right side of the equation, giving y = 100x + 100x^2.
Then you could rearrange the equation to get 100x^2 + 100x - y = 0.
This is a quadratic equation, which can be solved using the quadratic formula:
x = (-b ± √(b^2 - 4ac)) / 2awhere a = 100, b = 100, and c = -y.
So x = (-100 ± √(10000 + 4100y)) / 200
You would then need to substitute the value of y into this equation to find the values of x.
Please note that in most cases the equation will have two solutions, one positive and one negative, and the solution will depend on the value of y.
it works! 😮
not always
In order to find x, you would need to solve for x in the equation y = x(x + 1) * 100.
yeah, I was thinking about that, but I was too tired to even try to start solving
💀
i mean i put it into https://www.calculatorsoup.com/calculators/algebra/quadratic-formula-calculator.php and it worked
Solve quadratic equations using a quadratic formula calculator. Calculator solution will show work for real and complex roots. Uses the quadratic formula to solve a second-order polynomial equation or quadratic equation. Shows work by example of the entered equation to find the real or complex root solutions.
¯_(ツ)_/¯
idk what that is but its wrong
lol
its exam week for me, lots of cheating lol
I dont fully remember how to use this, but I used this function in the past for something similar. X1 X2 and X3 are the 3 point's x values, and Y1 Y2 and Y3 are the point's y values. I would put X as the level and Y as the level end/start (idk which one you want).
(y1-y2)/(y1-y3) = (e^bx1-e^bx2)/(e^bx1-e^bx3)
Kind of complicated and will take some calculations, but worked for me (idk how tho) so good luck.
huh why is #dev-general a private channel
Barry messed up
barry you rat bastard
i need help
There is no time to wait! Ask your question @ruby dew!
Dude I need help
Please i need help
With my life
do you want help?
yes, please.
I am glad I am moved to a private channel, when im literally a new discord user.
no, i swear the apbroh ...
thoughts on having social medias for your discord bot to both promote it and announce stuff? (Instagram, Twitter, etc) Random thought I had lmao
Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.
Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.
Requested by: WanderingPalace
bruh...
bump i was just trolling
am sorry for his message sinking so bump
What was the name of that app that you can use for others to access something hosted in your computer (minecraft server, website) without exposing your IP? You run a command in a CLI and it creates some kind of address from their domain (<random code>.domain.com)
Edit: https://ngrok.com/
ngrok is the fastest way to put anything on
the internet with a single command.
💀
guys there is no normal general
just like the capital of brazil
they put the capital far in land so people stop living in the coast
theres no general so people talk on all channels
#minecraft is the normal general if its minecraft related, then #off-topic for anything not so minecraft related
ig off-topic is
if i talk about plugins in off topic they wont ping me and say #plugin-updates will they
if you wanna talk about plugins depending on the context then one of the general plugin channels or minecraft
#general-plugins if you need help maybe.
Depends on what you're talking about ig
where you type depends on the context of your message
11738 people said something with depend in this server
#off-topic thanks
This is about Minecraft
3,336 people said depend in this channel
This channel is for development discussions
why is there no general
attempting to unify my many inventories is fun, maybe using a framework would be better but the one i found requires you to use xmls
thats not general
Thats all you get
#minecraft is the general for minecraft stuff, #off-topic for non minecraft talk
or atleast i think thats correct
Other way around
#minecraft is actually exclusively for non minecraft related talk
common misconception
is that because people use the wrong channels?
i have plugged in the phone and inserted minecraft, minecraft plugins and development. i develop minecraft with lots of puglins, and with some api place holders. i sometimes use e cloud while developing inserting minecraft into my plugin phone.
i love ecloud
whilst i develop my plugin in minecraft
i also love that service while developing my puglins
is that english?
Yep, and i had to share my server with the request-free development. the plugins i used are made for developing, wich i am now. im developing a bot and going to use its commands once im done with the minecraft plugin and turning the execution file into a offer-services device. i like using my offer-services after im done with my request free minecraft development and plugins
smells like gpt-2
who is gpt?
gpt-4 now with bigger circles
gpt is a saint with enlightened mind
hes like a god to the US and the world
either gpt or literal circles being drawn on their phone keyboard
@Override
public LunixHolder getHolder() {
return new LunixHolder(getTitle(),getSize(), LunixInvType.ARMOR);
}
if i have a method like that inside my inventory class and i instance the class only once, will it create a new version of the object every time?
Im not on my phone
my condolences
The saint francisco?
it will make a new LunixHolder each time you call the method
basically im trying to have all my inventories stored in one map, but i want to create a new inventory and holder object everytime i call the get inventory method
i laughed too
you laughed in your heart too?
thank you, thats all i needed to know, was going to check after ive finished fixing every inventory class but wanted to know before hand.
constructor moment
java moment
im playing with fire
as long as the fire consents
im putting this shady product with 7 hazard symbols on the fire
the fire became green
its getting purple
should i put more tablets in the fire
That's a sign
what sign
i touched it help i got an instant blister
the fire is purple
its so big
i tried to blow it
blister mitten
me risking my life using YT2mate to download a youtube video knowing theres a 76% chance ill get traumatized when the ad pops up
use an adblock browser extension and you cant be traumatized then, also #off-topic
Hi, how to make run() start automatically please (Python)
from pynput import mouse
from threading import Thread
from time import sleep
LeftOn = False
class Test(Thread):
def run():
print("RUN - ON")
while True:
if LeftOn:
print("Ok")
sleep(0.50)
def on_click(x, y, button, pressed):
if button == mouse.Button.x2:
if pressed:
print(str(button)+" pressed")
LeftOn = True
else:
print(str(button)+" Released")
LeftOn = False
print(LeftOn)
with mouse.Listener(
on_click=on_click) as listener:
listener.join()
listener = mouse.Listener(
on_click=on_click)
listener.start()
I hate python
Its better for what i want
which is?
(also there is no X is better than Y in most cases)
eh
suppose python is indeed indirectly good for that
Where can I report bugs for DeluxeMenus?
also ^^ nowadays this tool exists, use it xD
i'll try with chatgpt ty
@eternal compass sorry for ping, but think it might be useful for you to know. I am unable to do the /setup system with per guild commands etc, since it would literally remove some features from app directory... like most used commands which only show if they are global commands 😭
Ah, unfortunate
I still think there should be an APi for hiding global commands per-guild
ye think you can do it with normal perms
yes, you can disable it in the integration menu of the guild
although quite unsure if you can make the bot request for it to be hidden by default?!
if __name__ == '__main__':
Test.run()
I'm on mobile so I can't do code formatting but those are underscores
Okay got it
thx i'll try it
does anyone have experience with paypal webhooks? I cant get them to work on sandbox, and they dont even show on the dashboard https://developer.paypal.com/dashboard/webhooks/sandbox
I guess is because of the environment, but if they get sent a few days later, that sucks
Just wondering if there’s a plugin that I could have /inv 1,2 ect.
playervaults?
Like I have different inv one for moderation and one for survival
I work on a paste system, similar to barry's, where I want to convert for example pastebin links in paste.helpch.at links.
How would I access all links, wait for all CompletableFuture's to complete, and then send a message with all the new links?
Actually, I think that this will do it listOfFutures.stream().map(CompletableFuture::join)
please use #development for support 🤓 🤓 🤓 🤓

PUlse
i have
changed my ways
and have fixed the big ass arrow
public class Multisummon implements CommandExecutor, TabExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("This command can only be executed by a player.");
return false;
}
Player player = (Player) sender;
if (args.length < 2) {
player.sendMessage("Usage: /multisummon <mob> <amount>");
return false;
}
String mobName = args[0];
int amount;
try {
amount = Integer.parseInt(args[1]);
} catch (NumberFormatException e) {
player.sendMessage("Invalid amount, please provide a valid number.");
return false;
}
EntityType mobType = null;
for (EntityType entityType : EntityType.values()) {
if (mobName.equalsIgnoreCase(entityType.name())) {
mobType = entityType;
break;
}
}
if (mobType == null) {
player.sendMessage("Invalid mob, please provide a valid mob name.");
return false;
}
for (int i = 0; i < amount; i++) {
player.getWorld().spawnEntity(player.getLocation(), mobType);
}
String plural = amount > 1 ? "s" : "";
player.sendMessage(amount + " " + mobName + plural + " have been summoned.");
return true;
}```
depending on your Java version, you could simplify that instanceof and cast to pattern-matching instanceof!
if (!(sender instanceof Player player)) {
return false;
}
then that exposes the player variable for the rest of that function
only on modern java versions
hence the disclaimer depending on your Java version
and even that's in Java 14, so if you're above 11 you very likely have it lol
eeh it wasn't released in java 14, just preview
means you need --enable-preview for both compiling and running the jvm
and that's a pita for the majority of people who barely even know what they're doing lol
I'm proud of you son that's a big improvement
ty
i mean
I want it to send a message
not just do nothing
oh oh ohhhh
that would make this Player player = (Player) sender; redundent
welp gotta change my language to level 16
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player player)) {
sender.sendMessage("This command can only be executed by a player.");
return false;
}
if (args.length < 2) {
player.sendMessage("Usage: /multisummon <mob> <amount>");
return false;
}
String mobName = args[0];
int amount;
try {
amount = Integer.parseInt(args[1]);
} catch (NumberFormatException e) {
player.sendMessage("Invalid amount, please provide a valid number.");
return false;
}
EntityType mobType = null;
for (EntityType entityType : EntityType.values()) {
if (mobName.equalsIgnoreCase(entityType.name())) {
mobType = entityType;
break;
}
}
if (mobType == null) {
player.sendMessage("Invalid mob, please provide a valid mob name.");
return false;
}
for (int i = 0; i < amount; i++) {
player.getWorld().spawnEntity(player.getLocation(), mobType);
}
String plural = amount > 1 ? "s" : "";
player.sendMessage(amount + " " + mobName + plural + " have been summoned.");
return true;
}```
now i'm left with that
why are you for looping through EntityType?
because?
you dont have to forloop through EntityType to get the entity type
yes i do
you dont
yes I do
lol
EntityType is an enum, which means you can do EntityType.valueof(String)
no i can't
You're going to say why you can't or just say you can't? lol
no
i'll send u the video as well
damn I can't send the video
Send it here
shut
if it's because of the equalsIgnoreCase you can do EntityType.valurOf(name.toUpperCase())
@ocean quartz how am I suppost to send it here
upload the video to youtube, unlist it and post the link
lol
That you just sent on Discord which means you can copy the link of it lol
that too
uhh, the video doesnt explain why you cant do that
yes it does
multible mobs
i said you dont have to for loop entity type to find the matching entity type to the string, not forloop the amount to spawn them
What does this video have anything to do with what we're saying?
nothing :kekw: but I wasted ur time
Congratz .. I guess?
@subtle smelt
what nova
I know the problem
why are you pinging me
i was in chat the moment you pinged me
the ping was highly unnessesary
still you probably shouldnt for loop something if you dont have to
Because otherwise your short attention span wouldn't see it
But your problem is em- yes
Just yes
Enums.getIfPresent my beloved
there isn't a problem if it works 🙂
Yes
if you're working on modern Minecraft versions you can use 17 safely!
i am
i'm use adoptium jdk
Omg I'm tired I read that as "I'm adopted idk"
but my language keeps wanting to change based on what I do
if i were it i would also want to change
it's better than this atleast
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(colorize("&b&lTL &b&o: &4Only a player can execute this command."));
} else {
Player p = (Player) sender;
if (p.hasPermission("server.multisummon")) {
Player player = (Player) sender;
if (args.length >= 2) {
try {
EntityType entity = EntityType.valueOf(args[0]);
int amount = Integer.parseInt(args[1]);
for (int i = 0; i < amount; i++) {
player.getWorld().spawnEntity(player.getLocation(), entity);
}
player.sendMessage(colorize("&b&lTL &b&o: &4You summoned &e&o" + args[1] + " " + args[0]));
} catch (IllegalArgumentException e) {
player.sendMessage(colorize("&b&lTL &b&o: &4This is not an entity."));
}
} else {
player.sendMessage(colorize("&b&lTL &b&o: &e/multisummon [mob] [amount]."));
}
} else {
}
}
return true;
}```
and now to reduce the amount of nested code
paper hates me 😎 WARN Nag author(s): '[Heklo]' of 'BalancedKillRewards' about their usage of System.out/err.print. Please use your plugin's logger instead (JavaPlugin#getLogger).
time to not sys out?
it still works, i refuse to be nagged into submission
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("This command can only be executed by a player.");
return false;
}
Player player = (Player) sender;
if (args.length < 2) {
player.sendMessage("Usage: /multisummon <mob> <amount>");
return false;
}
String mobName = args[0];
int amount;
try {
amount = Integer.parseInt(args[1]);
} catch (NumberFormatException e) {
player.sendMessage("Invalid amount, please provide a valid number.");
return false;
}
EntitiesType mobType = EntitiesType.valueOf(mobName.toUpperCase());
if (mobType == null) {
player.sendMessage("Invalid mob, please provide a valid mob name.");
return false;
}
for (int i = 0; i < amount; i++) {
player.getWorld().spawnEntity(player.getLocation(), mobType);
}
player.sendMessage(amount + " " + mobName + (amount > 1 ? "s" : "") + " have been summoned.");
return true;
}``` @brittle leaf HAPPY NOW?
how||dy||
no
:P
it doesnt auto parse for me
then again im on win 11
Enum's valueOf doesn't return null, it throws IllegalArgumentException
classic bad design moment
who are you talking to
The world
EntitiesType what
oops mispelled ;- ;
i usually write the code
then I will overlook it
but I wanted to see if it made u happy
and now time to delete the project and cry yourself to sleep :))
anyway
tabcumpletoor
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
if (args.length == 1) {
List<String> mobNames = new ArrayList<>();
for (EntityType entityType : EntityType.values()) {
String name = entityType.name().toLowerCase();
if (name.contains(args[0].toLowerCase()))
mobNames.add(name);
}
return mobNames;
}
return null;
}```
I'm losing my mind trying to make inventory guis

I tried making it myself following the spigot guide but then the events wouldn't fire properly so I tried multiple different libraries and all of them kinda suck or I can't get them to download
MF-GUI baby
I just used that one and the pagination and scrolling ones don't work
I followed the docs word for word
I even copied and pasted after manually writing it :(
define "not working", they've been great for me
I click the next and back buttons and they don't do anything
unless whenever you add an item it adds it to all the pages
did you cancel the click
As in lifting the mouse?
It is recommended to add a default click action to your GUI to cancel the click when working with pagination, if not, make sure to cancel the click before calling PaginatedGui#next/previous.
Well if you don't add more to the example you won't have pages because it won't have items in the page lol
also that lol
You have to populate the pages for them to work?
you gotta like, put stuff in them
I put stone in the first one
it only makes the minimum number of pages
Ohh okay
That makes a lot more sense-
It seems like the docs are outdated, it uses the .asGuiItem() for filling pages but that isn't a method
Works fine for me? I'm on 3.1.2 (latest) and it's a method on ItemBuilder
var filler = ItemBuilder.from(Material.GRAY_STAINED_GLASS_PANE).name(Component.empty()).asGuiItem();
``` code straight from my actual working project
?
oh yeah I think the parens are off on that one
asGuiItem() is a method of ItemBuilder, not fill()
just move it over one paren
Alright, thank you!
oh actually yeah you're right, the Arrays.aslist call is also messed up with parens
cause that fill method takes one List
gui.getFiller().fill(Arrays.asList(ItemBuilder.from(Material.BLACK_STAINED_GLASS_PANE).asGuiItem(), ItemBuilder.from(Material.WHITE_STAINED_GLASS_PANE).asGuiItem()));
that should work, at least in my IDE it does
yeah that works for me
i have submitted a PR, thank you for your reporting lol
🫡
Boys, question, which anti-cheat do you think is the best and why?
i saw a bit of talk about https://github.com/GrimAnticheat/Grim recently
idk about it being the best, nor have i ever used it
but it's got a lot of nice looking words in the readme 😌
Grim is nice yeah
I don't run a server
That tactic seems to be very effective, keeping 100% of hackers and cheaters away
Kicking everyone on join is also known to stop all cheaters
Surprised no one mentioned anarchy 😉
What about matrix? spartan? etc?
^
Paid and closed sourced can't really judge how good it is, never heard of them either so got no opinion on them
you haven't heard of spartan?
Like, how haven't you heard of any of them?
Btw am talking about 1.8.
Because of conversations of anticheats on MCCI, talked about a few, but not closed sourced ones nor ones focused on 1.8
Not focused on 1.8!?!?
Where did you live when minecraft was at it's golden age?
In the future
Liked the reply 🙂
I am thinking of using AAC.
Don't trust spartan, never tried vulcan or godseye.
On which side?
vulcan was made by very good developers, but it's a bit outdated now
Hey, Jim, nice to meet you.
We are talking about 1.8 so...
Outdated based on mc version?
yes i know, i mean outdated even for that
i think it's a bit close-minded for people to focus only on newer versions, when competitive gamemodes require anticheats most, and those are mainly in 1.8. regardless, any decent anticheat will support multiple versions.
Am thinking of using one for factions.
We can't use our ML for factions.
yeah is competitive gamemode, like people said earlier grim seems decent. i havent tested it too much but from initial looks its good
Am looking for a good suggestion from someone who knows what they are talking about.
ok well heres my advice - grim is probably the best free option, but if you want long term support im not sure it's reliable.
unless you have your own developer that can work with it, because its open source
I can get many, but I prefer to get important things done by myself.
And am not sure if I can trust a free option.
better switch from LuckPerms to a more trustworthy paid permissions system
We are talking about anti-cheats, what do paid permissions have to do with it?
why don't you trust free anticheats?
remember that paid != good
the whole epic series plugin line exists
jets' plugins exist
My plugins 😉
Usually coded by not so good developers.
And their configs are ass.
I can tell you that way too many paid plugins are done by devs that have no idea what they are doing, and a lot of the best ones are open sourced
I know some really crappy plugins 😉
From this point of view, I agree with you.
@oblique heath I still don't get your comment about permissions systems.
it was a comparison
he was joking, saying if you dont trust free things, than luckperms cant be trusted either
adding onto what matt said, some of the better plugins ive seen are the people who do freemium 
Oh 🤣
I might just edit an open-source one.
a lot premium is actually just i made this kinda mid plugin make it paid and just farm money irl because people believe paid = better
Either premium or free, which one should I try (for factions)?
Damn true...
It helps on affiliating tho.
grim is open source
Never heard of it
you chose to not make a factions server because a. its likely 1.8 and b. players on those servers are cringe
you're asking for advice, take it or dont.
in comparison to AAC which is a literally dead plugin
like actually inactive resource
@cursive jolt thoughts?
Yo guys, so I am recoding my bot (in jda) and the idea is to be basically a wiki type bot for several games. Here's the question, I am unsure how I should structure it... I didn't really wanna do a class for each "item" type, since several games have several types, sometimes the same name but with different stats, one single class, I am unsure how I would do it either.... thoughts?
Sealed types moment
1 item class and you just create them
likenew TerrariaItem("some name", some properties)
not sure though
What if I create a class called Propriety, and another like, you mentioned, new TerrariaItem(Propriety ... proprieties)?
would that work?
Propriety taking the key and value of that propriety ofc
sealed class Item(common, properties, here)
class TerrariaItem(notcommmon, and, common) : Item(common, properties, here)
class OtherItem ...
thats what i would do
cRusty enums
You probably havent marked your source directory
it was working
that sounds kotlin moment
i mean you can do the same in java?
Java (15+ I think) has sealed too
If it doesn't you can do the same just not as nicely
worked though, thank you