#dev-general
1 messages · Page 541 of 1
Oh cool! Is tornadofx at all like react?
and use a game engine if you're looking to make a game
lol, i wasnt gonna make a game, but noted
uhh no idea what react is 😳
ReactJS?
ah ok, well its like a component based html css js replacement kinda? all in js
a little
oh
never used it though
tornadofx uses javafx but also adds some kotlin specific stuff to it
if you want java 15+ support you'll have to modify the build.gradle a bit though
ah alr, ive mostly been writing in java 11 so i should be good! Do you know if it supports java modules? lol
and TornadoFX master branch only supports java 8 compilation
oh wow its actually written in kotlin too
uhh no idea about that, but javafx supports java modules... maybe tornadofx will too?
yep
huh cool
It also supports FXML (so scenebuilder and CSS too)
:))
and if you don't like FXML you can use just code itself, i'd recommend fxml if you're making menus though
lol never heard of that, but ya menus is what ill be working on
Alright see ya
cya
It just has to be unique... and domains are both unique and identifiable :))
Yeah I use com.GargatheOro.whatever usually
lowercase*
wdym splits it in two?
java naming conventions
Eclipse you just type out all three elements
just like classes being uppercase
com.gargatheoro.advancedelections
those are packages
yea sometimes it's just groupid.artifactid
GroupIDs and ArtifactIDs aren't specific to intellij btw
It was me
maven conventions
ya gradle uses the groupid and artifactid
and its technically kebab case
well packages are java conventions, but ig
¯_(ツ)_/¯
since he sent his package name
but
idk
uihwajkds
if you used gradle in eclipse, you'd have to fill in artifactid and groupid
well it could be the group id + artifact id
I only used gradle in the console before
Also Eclipse had some shortcuts for importing and cleaning/reformatting
What are they on IJ?
cntrl shift O for import and cntrl shift F for cleaning on Eclipse
F seems to be some sort of find function on here
none for importing, although sometimes it'll show a tiny popup saying something like "Alt + Enter to import", for formatting it's Ctrl + Alt + L
and yes Ctrl + F = Find, Ctrl + R = find & replace
oh and Ctrl + Alt + O cleans up unused imports @vast canopy
i mean it only takes a few seconds to import
¯_(ツ)_/¯
plus you're not gonna be importing frequently
since tab completion auto-imports (as long as you press Enter to autofill)
better tab completion than eclipse 😌
alt + enter????
^
I already said
but eclipse's import system is faster
ignoring the tab completion :))
there is no "import everything" shortcut, as there may be collisions in class names (different packages) and you'd have to go one by one to resolve them anyway
iirc in eclipse you'd have to type a . for the tab completion to appear, for example variable.<tab completion>, so the import keybind becomes really useful
i kinda like that ngl
in eclipse theres a popup if theres collisions
o
yeah but eclipse lets you force compile by default
lol
which is disastrously hideous
I'd say this is arguably as bad
I wouldn't be able to live without immediate live tab completion
😛
I was literally clueless when I first saw an error at runtime related to a compilation failure
🤣
Weirdest thing is that the message was oddly descriptive
the thing is
eclipse warns you
if theres an error while compiling
im 99% sure
it's been quite a while since I've used it
back when i made https://github.com/dkim19375/MagicItems
lol
Yes, in one of the building/compiling screens
There's a checkbox, idk if it's ticked on by default but the one screenshot I saw, it was ticked lol
horrid
🥲
Is there a way to compile / execute java code at runtime?
Or would I need to build a custom interperter
Mapped to actual java
For runtime testing
as in I need to see what value works somewhere
I'd build a plugin that can call any method
Via a command
Gotta be very careful with that though
Ofc
Incredibly cautious
Ah okay lol
k8s too?
Whats that?
kubernetes!
Thats called k8?
k8s
New to me
because there are 8 letters between the K and S
Is that a library, or your thing?
Docker is so cool, and i havent had any major issues with it yet so i dont totally hate it!
oh lol, never heard of it
oh wow, i must be out of the loop!
Are placeholder expansions Turing complete
?
I guess so, yea
Incredible
Thanos car
that is fucking cursed
exposed
😮
Bukkit Coding Tutorial 😌
Must be the one from the brister mitten person!
Lmao yeah it has to be, clearly
I'm tryina learn how to use the debugger 🥲

currently trying to work on a tree rendering application, just for a bit of fun, and currently I have this: test1 ├──testSub1 │ ├──testSubSub1 │ ├──testSubSub2 │ └──testSubSubSub1 │ └──testSubSubSub2 │ ├──testSubSub3 │ ├──testSubSub4 ├──testSub2 test2which is great, but I can't quite figure out what the formula is for appending those horizontal bars, I want them to also go in between the testSubSub2 and testSubSub3 parts of the tree, so it looks like this: ```
test1
├──testSub1
│ ├──testSubSub1
│ ├──testSubSub2
│ │ └──testSubSubSub1
│ │ └──testSubSubSub2
│ ├──testSubSub3
│ ├──testSubSub4
├──testSub2
test2
nvm, got it
test1
├──testSub1
│ ├──testSubSub1
│ ├──testSubSub2
│ │ ├──testSubSubSub1
│ │ ├──testSubSubSub2
│ │ └──testSubSubSub3
│ ├──testSubSub3
│ └──testSubSub4
└──testSub2
test2
```think I kinda nailed that
@jovial warren what’s wrong with gnu tree
didn't know it existed, and kinda just wanted to see if I could make my own
it's literally 6 classes with probably less than 100 lines of code lol
nah it's called tree-creator
🤢 🤢 🤢
what are you doing that at?
It’s just Brister Mitten being Brister Mitten 🥲
Mrister Bitten
Mister Britain right?
Mister Bri'in
Bri'un
I read that as "Mister Berlin" for some reason

@prisma wave can u make a discord bot in python for me
Haskell, take it or leave it!
but he said any language 🙁
Any language in this list
- Haskell
programming languages at their finest
I can, yes
Unfortunately
💀💀
What about crystal?
statically typed ruby
Apologies, yesterday was pretty busy
Hmm I don't think i've ever used the host thing, so can't help with that part
Though if you're using static don't you need to install it?
Oh, i wasn't even reading the conversation lmao
Noob
I couldn't find anything to install for it. I have it working now using
route("/assets") {
static {
resources("css")
resources("images")
resources("js")
}
}
``` routes before the static blocks. I'm currently trying to make a form submit to a route (`/subscribe`), which works fine, but when clicking submit I get redirected to `/subscribe` which rightly returns a 404 since there's nothing there. The form request is handled successfully, but do you happen to know how I can stop being redirected on submit?
Same thing ruby is used for
it's what typescript is to javascript
It probably auto installs static when it's called, similar to routing, but normally features are installed with install(Static)
Do you do any redirecting on it? Is it something from in the html or the call itsef? @errant geyser
I see
You were talking about meth, right?
Crystal's a nice name for a hooker though
I don't do any redirecting in the call, the HTML is here https://bin.osable.tech/isevodixaw.html
#860006856067645440 1.8-1.6 pog
interface Builder<B : Builder<B, N, T>, N : Node.Builder<N, T>, T>
```jesus fucking christ almighty lol
Can you show me the action="/subscribe"?
Oh, sorry I should've said. I changed action to onsubmit and now it works as intended. Thanks a lot anyway
Oh yeah xD
Am I missing anything or?
io.papermc.paper
Yea saw that, still nada
You need to compile against Java 16
Was using java 15 yoikes
By default, cloud uses a FactoryDelegatingCaptionRegistry, which allows you to override the exception handling per caption key.
what the heck
nvm im dumb i forgot that inheritance was a thing yikes
BM apparently thinks $500/command is an affordable price lmao
(For a discord bot)
well yeah, why is it not?
Now he's backing out on a deal, smh
@prisma wave what do you have to say for yourself?
you are a scammer
Elaborate?
all discord bots need commands
Not mine obviously
I said no commands
(He said $500/command for a 100% .bat discord bot)
btw is it weird if i put commands that ill probably have in every one of my discord bots in my command lib?
so that i dont have to copy and paste it throughout all my bots
(and you can choose if you want it ofc)
Only like help makes sense there
also other cmds such as ping, eval, etc
You have eval commands?
ya
i only let myself use it
but is this idea a good idea?
to add commands already into the lib
I'd say help and none others, but thats me
I'm gonna trip on those staircases
lmao
Hello, I am currently coding a small plugin where I will need several "int" variables except that these are variables that are shared between all players on the server which is not wanted. The problem with that is that I don't know how to make these variables become "personal". Can you help me please
Thank you 🙂
don't use static
wat
#development for coding help in the future
You can use a Map<UUID, Integer>
This allows you to store an Integer for each UUID (the player's unique id)
private final Map<UUID, Integer> map = new HashMap<>();
// put value
map.put(player.getUniqueId(), 1525125);
// get value
map.get(player.getUniqueId());
// check if map contains value
map.contains(player.getUniqueId());
thanks, i will test that. Excuse me for the wrong channel
OOP
wat
uh
oh
i didn't see the word several
i mean i guess u can make a POJO or whatever it was called
so that u dont need a million maps
Well you'd still have a map of objects, no?
if anyone has a bow
1 map of objects > 10 maps
Well not if you're only storing one int
he said several int variables
Interesting how String#join uses StringJoiner which is basically a StringBuilder lol
So @ruby dew
Have you ever heard of functional programming before?
it's certainly rather niche
Ok dead chat
lmao
I'd start monologuing if there was a multi still
@frail glade can we get 1 more multi? XD we've been good boys
nah
Ahh I guess not
its been gone for like half an hour now
Maybe later when I'm back
well actually just 20 minutes
well later we won't have things to talk about 😢
well I Won't have thing sto talk about
Yeah but why would I use my personal spin when I'm not around?
ah
was not talking about personal one
just a random oneb
the 10k members spin
xD
bcz we didn't get enough of them
Oh is that why Cube did so many of them?
10k spins for 10k members
=flex
Here are some guild wide stats for your eyeballs. :eyes:

20,860,686
22,119
54,392
136,823
75,746
66,572
4,530,062+
10,002
Mar 29 2016
a free iphone 12
Ayy pog
That's a lie. Piggy doesn't have any money.
he did tho
look there ^^^
I really was hoping he'll make it an embed
and make the [click here] clickable
and it would take you to some random website. or maybe a rick rolpl
Isn't that a thing on mobile?
In other news, I just re-enabled artifact browsing on my Nexus. I spent the last day reworking some of their plugins that bundle with the software to hide uploader IPs because that's not something you can disable by default.
o
nice
in other news, I moved to chrome then decided to move back to firefox
even on linux it sucks
I think I just use Brave.
I Was just browsing the EssX repository on github and it was just randomly lagging and crashing
bad pc
My work gave me a laptop and it's better than my own laptop 
But I can't do anything on it cause it's all locked down 😦
pain
lmao
My laptop has like an i5 in it and this laptop they gave me has an i9.
well you can dual wield
just take apart the laptop and replace the components :))))))))))))))))))))
yeah. mine has an old i5 in it as well. and 8 gb of ddr3
hey mine is i5
and a 920MX nvidia gefroce
my pc
yeah but my i5 is old gen
i have integrated 😔
lemme check
ive got i5 3450
I have integrated as well. but fortunatelly I got the drivers to work on linux
it sucks
and now I can play minecraft at almost 100 fps
Adios people. If I don't see you again today, have a great day!
https://cpu.userbenchmark.com/Software im gonna run this and see how good my pc is
:))
u too
byee
blitz u should run this
make sure u dont have like 10 apps open though xD
it doesn't seem to be for linux tho
wine
🍷
yeah wine sucks
it's not that bad
for me it is
it doesn't even go to the size of my big monitor
when I make it full screen there's like 2 lines one at the bottom one on the right
and the rest is the size of my small monitor
also the loading speeds
are trash
I just tried to open epic games and it almost crashed
idk
my laptop might be very bad. I Don't disagree with that
but still
If someone knows 100% of Java but nothing about Minecraft, what does they need to know to code plugins?
well
I didn't say I know
That definitely reads like you are saying you know 100% of java but nothing about Minecraft lmao
I've personally started with the spigot plugin development post on their wiki. so I Can see how things works and then just dived in the api
this is the post
not really, I just want to understand limits
thanks
let f(x) (lim x->0) = x^2 + 5 * x
what
😌
that's how I Feel rn
limits!
that's just zero lmao
😌
what ngl means
not gonna lie
thanks
lmao
👍
thanks
well if you're not english you don't know those stuff, so you have 2 ways of learning it. Ask and possibly get laughed at for not knowing it (bcz people don't care if you're english or not) or google
lmao
i mean urban dictionary is a hot meme
🥲
😌
what's in the mouth of the blonde girl in your avatar?
i dunno a stick or something lol
class Cooldown(
id_: String,
var start: Long,
var expiration: Long
) : Cloneable {
val id: String = id_.lowercase()
}```
Since I can't have something like `this.id = id.lowerCase()` like in java, would this be a bad replacement?
ok
what I've seen kaliber do
is have a method
instead
well it was for a player
but same thing
eh
you can override a getter and setter
i is confusion
I mean inside the constructor or whatever @cinder flare
you can have init blocks p sure
public Cooldown(String id) {
this.id = id.toLowerCase();
}```
This ^
User(
uuid: UUID
) {
fun player() = Bukkit.getPlayerExact(uuid)
}```
don't remember exact thing
but u had something similar
class Cooldown(var id: String) {
init {
this.id = id.lowerCase()
}
I need it to be public but with private setter
you can override the setter
ud have to put it in a field to do that star
it already is?
I searched for that but is not possible for constructor arguments
it is
I know I can use id but then I will need id and this.id
no no, you wont have to
oh yeah it can probably shadow
id when assigning to id will be the parameter one
I see
can someone advise what would be the most efficient way of creating an auto rankup system? Ranks will be determined on the players level (not asking for spoon feed just a guide in the correct direction)
Define efficient
well structured & lag free with a heavy load of players
I mean, are you going to code this yourself solely?
Keep data in memory at least short term to avoid mass modifications, or use a good database hook and ensure you only do your checks once and when necessary
Anyways I would use something like LuckPerms so I don’t have to care about storage myself
LuckPerms is also scalable horizontally so that fixes most of the trouble
yes im fine with that side of things - I think i've figured it out I was over complicating it
Anyways the auto rank up system shouldn’t be too complicated
Git Gud
and if i press the X it appears right back
Check the IJ git settings
IT SAYS DETECTED_ _
WHYajnds
oh
its not popping up anymore
ok
woah
anyone know what the blue means?
blue/green
i've always seen it yellow, red, or green
oh it just means modified
rip yellow
idk why it hchanged
lol
red is new & not added
green is new + added
:thinksmart:
Oh yeah green is staged right?
Emily u purple
hmm yeah I feel that too
this one is arguably more relaxed or something in that way
man, why would one implement an annotation/@interface
?

"Tuples in Java" @prisma wave lol
Ew
Ikr lmao
Where does one find motivation to start coding again
All the way down in the bottom of the abyss
I mean
What the hell
Learn a new language
Not even circlejerking
It is good for curing burnout
That's so cursed
Eat pasta 😌
Lombok ??
Yea, just dont select it lol
You dont need lombok to use spring
Ik but it is there!!
It is a video yugi
oh lol
yes
Name?
😌
😌
😌
Kung Fury
Why does the perl logo looks like an onion lol
Upside down redish
yep
What movie is that
Kung Fury
Worth the watch, or will I die of cringe
I'll take your word for it
WHAT THE HELL
alr 👍
😌 😌 😌
yeah. we need to keep the trend
what trend
of things being in the wrong place
yo is there somewhere where I can find the hex or rgb value of java.awt.Color colors?
oh wait
I can just google cyan srgb I Think
xd
Thats a "break" not a "bend"
lol
@half harness where u at?
yo @eager fern decided I Don't need sleep anymore. if u still wanna play couple games xD
oh wrong channel
discord bad
classic
discord sometimes just doesn't switch the channel
like it switches for a sec
then switches back
🥴
How could you do that
i'm using a ThreadLocal to use an object that would be a local variable, but there is a lambda in a field that would use that local variable so i gotta make it a field somehow, and since it's a process that can be triggered from many threads i resolved to using a ThreadLocal
someone kill me already
please
🔪
That photo album is actually lit
glad I'm on it with my cursed pics
🥰
Does EzPrestiges have an event for when someone prestiges ?
yeah there is
EzPrestigeEvent
listen for that
k thanks ❤️
Is there a maven depend for it ?
How can I do that ?
Do I extend a class?
already imported it via maven with a dir one
you do it like with any other event
you have a class that extends Listener
and a method with the EventHandler annotation
its just slandered events, ok
implements 😊
also true lol
deriving 😊
Thanks for the help 🙂
Hello fellow helpchaties
I would like to formally introduce to the objectively true concept that everything is an object
Anf yes even primitive s
Are you Objectifying women in that statement!!????
please elaborate
To put it simply, you’re an object
😌 😌 😌 😌
Forgot how to make a repo into a git repo
fatal: not a git repository (or any of the parent directories): .git
git init
not required but you can take advantage of all the stuff paper added
Yeah, but if a server runs as a spigot jar I shouldn't use paper to make the plugin? Because I might include some code that doesn't exist in spigot right?
yeah Ig. Idk how paper made it work. I know for async teleport and stuff like that it will work just fine even if you use paper's method
but for the new events and stuff idk
or u could say fuck u to the spigot users 🤡
Not true
and still put your plugin on spigot 👍
PaperLib does that yes
Is there any reason for a server to use spigot instead of paper?
It is not API, it's a whole other library
no Valdemar
kk
yeah ik that. I thought they made the api work the same way.
someone said that a while ago in development or osmething
Nope
I didn't look into it
If the API isn't there, it just isn't, it'll throw an error
ok my bad 👍
What is PaperLib for?
Anyone knows how to set this up to build faster? Starting a Gradle Daemon (subsequent builds will be faster)
it adds the stuff from paper and just uses spigot stuff if you're not on paper
ah alr
for example teleportAsync if you're on paper otherwise uses the teleport from spigot
Doesn't change much but good to know ig
You just build it later
It does incremental builds once you've built it once
also it has the beautiful suggestPaper method
Ohhh wait yeah
hence why it says "subsequent builds will be faster"
Forgot what the word subsequent meant ngl lmao
Star
I know what it means now lol
How FJ looking, we at 10k yet?
notice he says We
lmao
only 9967 to go!
Link?
lmao
Kek
hehe
Time to bot the download??
Yes
that link is wrong kali
this has the old link yeah
Do it Yugi, you won't
yoo thanks for stating the obvious guys
star u should update it
boutta
Maybe
Ik its possible because someone did it to one of my old resouces at some point
And the staff blamed me 😄
How nice
SkinRestorer has 4.8 Mil downloads
@obtuse gale Consider multiplying your budget 3 or 4 times
a lot of those are botted downloads
wow xD
alr @cinder flare can I update?
ye
Mine reached around 150k before they reset it
=update links
lol
Pathetic Yugi
uh lol
lol
😎
nice nice
how much would you want for that job?
at least $60, that's a good few hours of work
60 or even higher depending on how kek stuff would be to implement
wew
if it took 4 hours, which would probably be on the fast end, that would be like $5 an hour lmao
I thought you made it Star? lol
True lol
hey
StarJoin
You wanna maintain my superior plugin?
deluxeasyncjoinleaveplugin
ahhh
Just the best plugin ever posted on spigot
Yeah
@cinder flare
Hi
hey
You wanna maintain Jaimss's superior plugin?
😂
who's Jaimm lmao

@surreal quarry
@surreal quarry why u died btw
😄
😌
it has a docker-compose with rcon enabled lmaooo
Boiis, Jetbrains meeting in 1.5 hours
and it's paper 1.8 🥲
Why is this a valid groovy syntax? Just, why
Lmao
everything is valid groovy syntax
looks like regex
you could've stopped at "Why is groovy valid?"
This is why groovy is superior
Yeah I think it's a regex literal
Whats with the $ at the front and end?
oh idk then
yup
Why am I getting bullied
He too newb to make something so amazing
busy 😞
not full time but approx 20 hrs a week, and it’s summer so i’ve been like golfing and hanging out with friends and stuff
Ah
It’s actually a company that posted in req paid a while back lol
I need to go one day
you should
Where u work
Vertmix
Or better yet, what kind of work
it’s like a startup in canada
different things but mostly mc plugins for different clients if theirs
Ew mc
yea but it’s pretty easy stuff most of the time and pays well
and i get to use kotlin 😩
🚨 IMPORTANT:
JavaScript Simplified Course: https://javascriptsimplified.com
My Other Courses: https://courses.webdevsimplified.com
Everybody has talked about the different types of programmers, but what about the different types of bad programmers. In this video I dig deep into what terrible programmers think by interviewing .10x developers.
...
I'm starting to hate mc development, it's too repetitive
🥲 imagine getting paid for your work.
||I am complaining but also I Just got 4 avatars made for free lmao||
yea it is frosty
Imagine not getting paid for work
rEcReAtE tHiS hYpIxEl pLuGiN pLeAsE
basically…
to be honest I haven't even tried to do any mc development in months other than working on deluxetags and deluxemenus.
i’m writing a bedwars plugin right now 😂
Gonna probably remove myself from mc and finish this goddamn world gen
The amount of ideas, yet no time
I'm so sorry to hear that
Thank you for your condolences
Which lang you cirklejerking now BM?
MittenLang
haskell
He's been with Haskell for a while
still haskell yeah
Ah still on haskell I see
Same
james and frosty dieded
haskell will live forever
sadge
discord is more important
the only thing keeping me on the leaderboard was my 300 something daily streak but i lost it
I'm active, just not here
wow 😔
smh
Where were you when frosty and james dies?
Fun fact, I spent around 150$ on valorant skins lmao
I mean it's a summer job - cleaning service. But the pay is amazing, the job is easy, and I get to not be in my country
🥲
frosty the janitor
Not exactly but yea I ain't complaining
🥲
o. my brother does something similar. he went in the Netherlands. And its his second week and the boss took the entire team kayaking and stuff
We don't have these kind of luxuries, but I went swimming in Faaker See the other day
Was nice
Over 5 years of playing 🥲
I probably spent most in minecraft
and that's like 30-40 euros or something idk
I spent 5$ on fortnite when it was first becoming popular as well xD
Where you from Johnny
Berlin Germany
Oh
@ocean quartzwhat was the link?
https://i.imgur.com/1b6FhNN.png impossible
Very jet-lagged
Heh
Does NBT tags disappear if I set for example a tag on a bottle and then check in the ExpBottleEvent since it's an entity now and not an itemstack anymore
I set the tag when adding it to the inventory
As an ItemStack
How?
Entity#gimmeYourItemStack()
Wat
lmao
lol
I can't just do this can I? new ItemStack((ItemStack) bottle);
bottle is the entity
nein
thought so
well passing an itemstack to an itemstack constructor after casting something would be pretty weird regardless
d;paper ExpBottleEvent
public class ExpBottleEvent
extends ProjectileHitEvent```
ExpBottleEvent has 1 all implementations, 8 methods, and 1 extensions.
Called when a ThrownExpBottle hits and releases experience.
vanilla emilyy
Yea it will have, since it's the same object no matter it's casted state
Hmm my method for checking doesn't work
nbt is probably one of the very few aspects of the game that isn't touched by craftbukkit
other than for PDC which writes to NBT
This returns true no matter if the key is wrong
if(obj instanceof Entity) {
Entity entity = (Entity) obj;
net.minecraft.server.v1_12_R1.Entity nmsEntity = ((CraftEntity) entity).getHandle();
NBTTagCompound compound = new NBTTagCompound();
System.out.println(nmsEntity.c(compound) + " TEST");
return nmsEntity.c(compound);
}
return false;
A bad one :))
But dont worry about it
Can you see what's wrong?
Other than using 1.12 ofc...
no because I have no clue what nmsEntity.c is
8% 😬
also 1.12_R1?
1.12 is only R1
a good one at least
Yeah
md5 and his dumb version schema
a lot of minor versions stay with the same revision number
the fuck
md5 at its best
wdym wxip, a true fucking beauty
a
Can you link to this? Can't find it
ask matt
I already linked it to him a while ago lmao
/**
* simple method to get instance of plugin
* @return plugin (mostly)
* @throws Throwable when it doesnt work
* @since today
*/
public static Optional<Plugin> getInstance() throws Throwable {
Optional<Plugin> emptyOptional = Optional.empty();
SimplePluginManager plugMan = (SimplePluginManager) Bukkit.getPluginManager();
Field f = org.bukkit.plugin.SimplePluginManager.class.getDeclaredField("plugins");
f.setAccessible(true);
List<Plugin> plugins = (List<Plugin>) f.get(plugMan);
for (Plugin plug : plugins) {
if (plug.getClass().getCanonicalName().equalsIgnoreCase(String.valueOf("dev.jaims.terribleplugin.Main"))) {
instance = (Main) plug;
return Optional.of(plug);
}
}
return emptyOptional;
}
why
just why
Because why not?
Read the name of the plugin
SimplePluginManager plugMan = (SimplePluginManager) Bukkit.getPluginManager();
this tho, makes me wanna yeet
Not the cast, but the name
Ahhh yeah thanks
I just don't understand where this hasTagMethod comes from
try {
return (boolean) hasTagMethod.invoke(nmsItemStack);
} catch (IllegalAccessException | InvocationTargetException e) {
return false;
}
I mean it's here but hasTagMethod = Objects.requireNonNull(getNMSClass("ItemStack")).getMethod("hasTag");
I dont get it lol
that's called reflection
mmm invocation
reflection go brr
I was gonna rewrite that class well, but can't be assed
Cuz it's ugly
yeah hey how come nobody has written an NMS library that just abstracts over every version from 1.8 to 1.17
Too much work
that's true
So I could include the entire class and then it'd work? Technically
Yes in the class only though right?
Like not other classes
I also need the wrapper ig
LegacyNbt, Pdc, NbtWrapper and if you want, ItemNbt just to be easier, that's all that is needed for 1.8 - 1.17
Can I do it without implementing Pdc? Because the plugin is made in 1.12.2...
🥲
of course
all you need to change is the dependency in maven/gradle and what target api version is in your plugin.yml
Also, how can I find a list for the versions like this? compileOnly 'com.destroystokyo.paper:paper-api:1.12.2-R0.1-SNAPSHOT' because I can't find it anywhere on google
😵💫
lol
\😵💫