#dev-general
1 messages ยท Page 178 of 1
My other link got parsed
I wrapped it in <> so it wouldn't embed and it still did that ;-;
lol
does that actually work?
also deobfuscating is kinda hard work sometimes lol
Also I'm level 6
Embeds work from tier 2
oh tier
Level 10-20
yeah I meant tier lol
feelsbad
me and Yugi are Tier 4 because we're boomers lol
developer role doesn't bypass it either huh
@prisma wave is like tier 6 or something because he's a proper boomer
๐
YamlWritingTest 
xD
I thought testing YAML writing would be up to the library you're using
wow look at you getting your name on more projects lol
I mean, my contributions kinda keep going up as well
I contributed the Gradle section of the README to Paper, a late initialiser for JDA in Lavalink-Client, I updated the staff applications thingy in the FredBoat baymax model, and I contributed to some other stuff as well lol
expanding my "sphere of influence" xD
@jovial warren hey bud, still wanna try out my spigot build tools and server bootstrapper?
see how it runs on linux?
what's wrong with tars
TARs are good, but package managers exist for a reason
and package managers handle TARs for you anyway
what I mean is I don't wanna have to run pacman -U on this bitch lol
i mean i doubt it's gonna be on a package manager
yeah ik
I'll probably just get a JAR lol
make sure to include the manifest though
here's the command line arguments to run it with. There is no help section yet.
-v <version> (eg "1.16.2", will take latest if left out)
-o <output/server directory> (eg "server", the directory where the server jar will be created and copied to)
--verbose (prints build tools and spigot server output to console if set)
--temporary-buildtools (deletes the BuildTools folder after creating the server jar and copying it to the output dir)
-t <server jar name> (eg "server.jar", target server jar name)
--overwrite-existing (re-downloads BuildTools and the server jar if they exist already, probably don't mess with this yet, haven't tested it much)
so run it with
java -jar MinecraftServerLoader-0.3.2.jar -v 1.16.2 -o testing/1.16.2 --verbose --temporary-buildtools -t server --overwrite-existing for example
let me know if and how it works, if you encounter any errors etc
interesting
What is?
oh
yeah
The goal is to make a spigot plugin testing plugin for IntelliJ
where you specify the version you want your plugin to be tested on
looks pretty good
and it downloads it if it can't find it in the specified location
that sounds handy
and then copies your plugin and runs the server from within IntelliJ so you can debug right away
for now
seems to work perfectly
it just stops the server after downloading, signing the eula and creating all necessary files
yeah I figure the process of getting the latest build tools, figuring out which commands to run it with, copying the server to where you want it, running it twice (once to sign the eula) and stopping it to then copy the plugin file and start it is such a painfully tedious and boring process
coding a thing to make it do that and forcing you do go through that process many times in order to test the code is much more fun ๐
Eager to know if it posed any problems on Linux
public Object b(final Event obj) {
final String[] split = this.a.split("\\.");
Object obj2 = obj;
for (int i = 0; i < split.length; ++i) {
final Method method = ((Event)obj2).getClass().getMethod(split[i], (Class<?>[])new Class[0]);
this.b.add(method);
if (i == 0) {
obj2 = method.invoke(obj, new Object[0]);
} else {
method.setAccessible(true);
obj2 = method.invoke(obj2, new Object[0]);
}
}
return obj2;
}
```apparently luyten thinks that doesn't need a try catch, or it just didn't have one somehow
although I will mention that there's already something which kind of does this
what linux dist (and version mayb?) are you running?
he's running Manjaro
wait you're on Arch?
Arch is really nice
also @heady birch can you give me the code for the method that takes an Event and returns Object in EventPlaceholderCache please?
because I think luyten's been taking drugs or some shit
although I will mention that there's already something which kind of does this
@prisma wave ๐ฎ surprised pikachu
What is it?
@empty flint doubt any of this is actually important but
OS: Manjaro Linux x86_64
Kernel: 5.8.3-2-MANJARO
Java Version: openjdk version "11.0.8" 2020-07-14
the spigradle gradle plugin
that a problem?
@prisma wave how did you get that info? uname?
@jovial warren just copied from neofetch lol
ah okay
i was gonna use uname but it's not very pretty
@empty flint it only does that for versions pre-1.12.2 I think
๐ (don't ask about that path lol)
nice A8-7650K lol
@prisma wave Mitten I am pretty sure your BuildTools could not have run then
I added a java version check
"@Mitten" xD
@empty flint suggestions:
Add support for Aikar's flags (ideally with custom jvm flags specifable)
you don't need to run the server twice, you can just write the eula=true and start it
@jovial warren in my defence this isn't my main pc
xD
@empty flint suggestions:
Add support for Aikar's flags (ideally with custom jvm flags specifable)
you don't need to run the server twice, you can just write theeula=trueand start it
@prisma wave Idk what Aikar's flags is but I will take a look
As for the eula, can you just do java -jar spigot-1.16.2.jar eula=true?
val javaVersion = getJavaVersionFromConsoleCOmmand()
println("\nJava version: $javaVersion")
if (!javaVersion.matchesAny(*JAVA_VERSIONS.toTypedArray()))
{
System.err.println("Invalid java version. BuildTools will not run.")
return
}
Do you need to agree to the eula if you didn't write the jar ๐ค
@empty flint what's the version checker checking?
@prisma wave can you try doing "java -version" and making sure it's J8?
cough md_5 lazy coding cough
With no code but the client
wdym?
@empty flint yeah
eula = truedoesn't work
@prisma wave Then what did you mean by running it with eula=true?
I don't think BuildTools will run with Java 11
I downloaded the latest BuildTools version the other day and it said "I'll only run on Java 7 or 8" pretty much
@prisma wavehttps://regexr.com/5b4a0
it doesn't match the regex
How could your build tools execute?!
what the hell
that's not a Java regular expression...?
ยฏ_(ใ)_/ยฏ
actually yes it is
lol
incidentally forcing java 8 when buildtools already does that is kinda dumb
it's just a very weird looking one lol
also https://regex101.com/ better
Regex101 allows you to create, debug, test and have your expressions explained for PHP, PCRE, Python, Golang and JavaScript. The website also features a community where you can share useful expressions.
buildtools will work fine on newer java versions for newer MC versiosn
so there's no need to restrict it
incidentally forcing java 8 when buildtools already does that is kinda dumb
@prisma wave I was getting errors with BuildTools on Java 11
hmm
I guess I have to try again then
it doesn't force Java 8, it forces either Java 7 or Java 8 xD
because my name is King Nitpick I
Still interested in that eula=true thing you mentioned
was that just a guess or how does that work?
my usual initial setup process is just ```bash
echo eula=true > eula.txt
java -jar server.jar
saves running the server twice
especially with jvm startup times on a shitty pc
anyway, trying to build mc 1.8 definitely fails, 1.16.2 is fine
Can you run this thing again, this time without --verbose and wait for the java version check printout, please
the program should tell you which java version it detected
doesn't matter
oh god
I'm trying with 1.8.8 and it seems to work though, which 1.8 did you try?
1.8.8
mitten are u gonna help me later if u done here
I think build tools only supports 1.8, 1.8.3 and 1.8.8
probably
On Java 11
@prisma wave What does it print?
Ah
lol
found the bug
it returns from the method and doesn't handle the version check error. But I guess if it works for you, it should work for others on Java 11 as well?
I'll try again, maybe I don't have to Java versioncheck it
But
1.8.8 works fine for me so far
just the System.exit obviously doesn't happen for some reason
just the System.exit obviously doesn't happen for some reason
@prisma wave Yep, found out why and fixed it, though idk if I should fix it
Ah yeah nvm, build tools doesn't build 1.8.8 anymore aparently
yeah it won't on 11
one of these days I'll remember the markdown named hyperlink syntax and not have to google it
eventually...
yeah it won't on 11
@prisma wave It won't on Java 8 either
worked fine for me
mind trying again on java 8 for me?
Idk where to put this
But you know the YAML parser
You have to go to the Helpchat Parser webstie right?
Becuasue if so I can make a script that let's you use the YAML parser straight here in Discord from the bot
you can do =yaml [link-to-paste]
you could still do it lol
No point if you already have it
hey why's IJ throwing a hissy fit about me trying to use Comparator.comparing(Group::getName) where getName is a non-static method in Group, and this method is being called from a non-static context?
what's the error
non-static method cannot be referenced from static context
send the full code
final List<Object> list = new ArrayList<>(manager.getRegisteredGroups());
list.sort(Comparator.comparing(Group::getName));
```that's literally it
why are you using List<Object>?
ยฏ_(ใ)_/ยฏ
that's your problem
ah yes it is
you're trying to compare a List<Object> with a method that compares Groups
I think it's a bit too late at night for me to be thinking straight lol
I kinda just forgot how Comparator.comparing worked I think
also the word "criterion" comes in really handy when iterating over criteria lol
So Java 11 doesn't seem to compile 1.12.2, but aparently works with 1.13.2. I guess that's the cutoff point for J11.
yeah probably
@prisma wave Did Java 8 build your 1.8.8 and could you try building 1.12.2 with J11?
first person to tell me what "criterion" means gets a cookie
(without Googling ya cheats)
A criterion is a specific trait upon which something can be judged or evaluated
idk if that's proper English
But I tried to translate from my mothertongue
lol
you'd have to send me your shipping address for that
or I could ship it to a local post office lol
You can probably find that pretty easily
@empty flint my PATH was interfering for java 8, lemme give it another go
also @heady birch , you used the wrong your in LanguageSettings in fields TOGGLE_OFF, TOGGLE_ON, SET_GROUP and RESET_GROUP btw if you wanna fix that xD
So aparently 1.8 can be built with the newest build tools
the flags "--generate-source --generate-docs" fucked it all up
without them it works
imagine how long it took to figure that out ^^
hi niall
Hi
what do you use to send the packets or is it a secret?
Nms
okay so i need to make nms handler huh ๐ญ
this one is kinda nice but he uses some TabooLib
https://github.com/Arasple/TrHologram/blob/master/src/main/java/me/arasple/mc/trhologram/nms/HoloPackets.kt
similar to how mine works
interesting
Or just don't use any other libs, and have everything handled yourself 
Yes
interesting
do you think this would work:
http://images.virtusdevelops.eu/shareX/pmcc9tcg.png
You should probably handle the packet nullability
Since that'll probably throw an exception if you try to invoke a null packet
well i just copy pasted it from somewhere XD
this is java ver:
http://images.virtusdevelops.eu/shareX/anirh5sa.png
yea just check if the packet is null and don't send it
so basicly if(packet == null) return ?
now lets go rework my entire hologram handler yey!
also, there should be a space after the if ;((
cry
I will
yay
so this way i could probably have like 2-3 files for packets and everything huh
since i dont have to make one for each mc version
but i could make one for each mc version
but that way i need to add each spigot.jar to my dependenc
reflection 
reflection = less files?P
@quiet depot U alive?
Or anyone who's familiar with modules cause I'm once again confused,
I tried adding this at the end of my root build.gradle, however it just shat itself
dependencies {
implementation project(":common")
implementation project(":spigot")
implementation project(":bungee")
implementation project(":api")
}
Assuming it's due to the fact that I'm not applying kotlin on my root (since that breaks the entire thing)
my build.gradle: https://paste.helpch.at/azizaliril.bash
oop I think I figured it out
@hot hull why tf are you putting everything in one jar
thatโs stupid af
just ship separate jars
:bruh:
sorry just realised that was kinda rude
pls note, no offence to u in particular, loads of people do the same thing
i just donโt understand why
Okay so I've seperated them now
Why does this break for no goddamn reason -..-
@quiet depot You on PC and got 5min? Honestly so confused, I reimport it, and it works, I reimport, and it breaks, :the-heck:
on phone sorry
Why does this break for no goddamn reason -..-
@hot hull What's the error? I have my plugins in one root project with multiple jars, maybe I can help
push it and I might take a look later
Lemme push to GH and you can clone and you'll see, it'll be easier than if I try to explain it
ah can't right now then, im at work so no github cloning unfortunately
Okay so I've changed nothing from yesterday, and now modules just aren't recognized. It works sometimes, but then I reimport and it breaks again
gradle ๐ฉ
Don't let Niall see that 
do you get any errors in console?
Only the unrecognized field shit since it can't find the classes from other modules
@heady birch what they don't want you to know: ||gradle ๐ฉ||
Also, sorry for the spamping
Now i'm assuming it's due to the fact that api is a runtime dependency since it's inherited by the common module
Would that be the case?
But I felt like it was time someone told you
I mean I've only used gradle 1. in spring initializr (worked fine). Second converting a maven project. It obviously didnt like converting a multi module maven project to gradle
Would that be the case?
@hot hull How did you define that dependency?
And is there a reason it's a runtime dependency?
my spigot build.gradle
repositories {
maven { url = "https://maven.enginehub.org/repo/" }
}
dependencies {
implementation project(":common")
compileOnly "com.sk89q.worldguard:worldguard-bukkit:7.0.3"
}
my common build.gradle
dependencies {
implementation project(":api")
}
Well I mean I assume it sets it as that by default since it's defined in the common?
Can't
why's that?
Didn't I tell you that already?
@hot hull Maybe I forgot
I just set up a bunch of submodules as dependency to my lib (I suppose similar to how your API works) and it looks like this:
so it should be a runtime dependency if only the common stuff has access to it
This is how mine looks
potato pc Frosty upgrade your potato pc
Gasper, gimme $$ 
but you can't call the api methods from where you import common
no you gimmee $
anyone has idea how i could change those items to datawatcher
http://images.virtusdevelops.eu/shareX/4zlr80n0.png
if you use the api in common and just call these common methods in spigot you shouldn't add api to spigot
I call the api events in spigot
then import the api in spigot as well
and if common doesn't use your api, remove the import
It does use it
events shouldnt be in api
then leave it and just add it to spigot
if they are spigot dependenent
you niall since youre so good with nms how can i transform what i sent up above to datawatcher?
but usually api is not something you use in your own project ๐ค
Dont know datawatcher is
yeah usually you build your project implementation on top of the API
in PacketPlayOutEntityMetadata
My events are in the api, since the point is other people can listen to them and access them
They get called from the spigot/bungee, and listened to in the common
DataWatcher is probably the most obfuscated thing for me
My events are in the api, since the point is other people can listen to them and access them
@hot hull I don't know if I would do it like that. I have separate project classes and then custom api wrapper classes for whatever object i want to expose to others via the api.
wait so you use protocollib in kiteboard???
So I don't depend on my own API and the API doesn't know stuff it shouldn't be allowed to know.
remember that an API is just an interface to your program. Not part of your program itself.
Well yea, but I can't really make the events abstract can I?
So the API can change behavior, but it's not a vital part of the core behavior to begin with
Well yea, but I can't really make the events abstract can I?
@hot hull Depends on what you want the API to be able to do. If the event is read-only information that others can react to then you should make a wrapper. If they can cancel the event etc etc, then I guess you have no other choice than to expose API events and have your plugin listen to those same events as well
The events are cancellable yes
Yeah I guess you have no choice then than to expose those events.
wait so you use protocollib in kiteboard???
@dusky drum no but the packets I use dont have the DataWatcher object
Did the import work?
No it didn't
okay niall
what do your dependencies look like now?
because frosty
If you say gradle Imma be mad
If you had your event classes in the api, they are depending on the HandlerList and Event class e.g
So one wanting to write an API for frozen join + bungeecord would still have the bukkit dependency
Well yea but no way to avoid that, unless I have two seperate API's
Which wouldn't really make sense
@hot hull how does your dependency tools window look like now?
HOWLY yes! i made it work!
now i gotta make it for every single version of mc 1.8 - 1.16 with all Rstuff
@empty flint
Yeah thats the problem with the NMS way. you end up with lots of very similar classes just because they changed the package name between versions
when you build the project
A shit ton of unresolved references for all the api events
Imports are there and resolved, just the actual objects aren't
I'll try restarting IJ again, might be having a stroke again
Still the same bullshit
lel
Okay so now api shit doesn't work in common as well
Progress 
Okay so I deleted .idea and opened the project again and now it magically works
.idea is what tells IJ how your project is structured so yeah not surprised that worked
Well yea but why the hell does this shit keep breaking?
Yes
is it gonna do more than it has ever done?
If it works, yes 
like are you actually adding anything or just making it cross-platform?
Adding a ton of shit, as well as making it more extendable
and everything in your project is Kotlin right?
Yes
noice
Well we'll see if I can manage to access the lib in kotlin
we'll make it work lol
Otherwise imma just copy the lib into it
Hi folks, is there any recent PHP library for minecraft rcon?
I was only able to find this one, but the last commit was 3yrs ago
https://github.com/thedudeguy/PHP-Minecraft-Rcon
there we go lol

just made that myself lol
@quaint isle PHP library for Minecraft RCON?
@hot hull your project's gonna be this right:
xD
oof
Progress 
[11:51:42 INFO]: [FrozenJoin] Enabling FrozenJoin v3.0.0
[11:51:42 INFO]: Registering Registerable: command
[11:51:42 INFO]: Registering Registerable: message
https://github.com/thedudeguy/PHP-Minecraft-Rcon like this?
@jovial warren thats the same one I linked, no? I was wondering wether there is a more recent library because that one hasnt been updated since 2017
yeye shush, just debug
@quaint isle literally just google "php minecraft rcon" and you find loads
@hot hull is that debug level?
nono just personal debug, I gotta add a complete debug system at some point
That's what I did but I only found old stuff. Thought maybe I was searching for the wrong thing ๐
ยฏ_(ใ)_/ยฏ
Ayy, the event bus functions properly, meaning I can start actually doing shit
[12:02:27 INFO]: Triggered PlayerJoinEvent
[12:02:27 INFO]: Executed @FrozenJoinEvent

Poor elmo
okay so i have an issue how can i get all mc versions here
http://images.virtusdevelops.eu/shareX/yrjb2tbf.png
Reflection
nah
Then you'll a module system
problem with reflection is not al NMS versions have same fuctions a/b/c/d/e/f
thats why we have
http://images.virtusdevelops.eu/shareX/x80na7am.png
just gotta import all NMS
and i found:
https://github.com/Jacxk/all-spigot-nms
ew
cry
I've being crying for the whole day already
why?
Cause you told me to..
YES!
hey @heady birch , what's the third ToggleState (the enum in ToggleCommand)? I figured out the first two are ON and OFF but I can't figure out what the third is
ONOFF 
Probably Default
but if it was UNSET, it wouldn't make sense why ToggleOffCommand would use it
maybe the first one is UNSET, and the second and third are ON and OFF
ยฏ_(ใ)_/ยฏ
time to wait a good 7 hours for Niall to get back to me lol
Bardy, is having all join/connection bungee events an overkill or nah?
of curse it doesnt work:
http://images.virtusdevelops.eu/shareX/uby8w4zt.png
@hot hull wdym by that?
I'd make join/leave events work for both bungee and bukkit
Not what I'm asking, there's like 10 different events bungee has which handle join, connection, post login and shit
I'm asking if listening to all those (basically making them available to execute actions) is overkill or nah
nothing's overkill when you're making an API lol
if you want your API to be extensive then I say go for it
nooooo!!!!!!
Bardy, I'm ofc going to allow people to register their own events through the api, so it has full extendability, you could even make a gamemode with it in the end if you wanted to
lol
anyone has solution for git bash:
jar: command not found
what command are you running
jar
jar xf <file>
fixed
apparently jdk wasnt added to windows paths
so i manually added it
Hey y'all
Thoughts on something like this for the format definition?
formats:
example:
priority: 1
permission: frozenjoin.format.example
execution:
FrozenJoinEvent:
- '[MESSAGE] Hey %player_name%'
FrozenQuitEvent:
- '[MESSAGE] Goodbye %player_name%'
FrozenSwitchWorldEvent:
- '[BROADCAST] %player_name% has changed worlds, and is now in %player_world%'
https://bin.bardy.me/a1bSUcL4.rb ๐ค (happens when I try to create a new module in a specific project)
@hot hull yeah that looks good

Fuck is this sorcery, discord is showing I have a ping, yet it doesn't show up anywhere -.-
Check calls from group dms if you're on mobile
On PC, it's gone away now
btw KM, I had to add a normal plugin check for WG, since ya know it trows an CNFE since it's not there otherwise 
@prisma wave i need help 
class ExampleClass : Command(String), Listener {
private val smeltList = mutableListOf<UUID>()
fun onCommand(player: Player) {
// Command stuff adds/remove Player from smeltList, that works fine
}
@EventHandler
fun onEvent(event: Event) {
if (smeltList.contains(event.player.uniqueId)) {
// Do something with it
}
}
}
``` doesn't work because smeltList is always empty in the onEvent function 
That is disgusting
why are you inheriting from Command btw?
and also where does Command come from?
omg kotlin
^ yeah, good language
That is not relevant to the question 
so it's always empty?
Would probably be the exact same had i of done
class ExampleClass : CommandExecutor() {
// Do something
}
remove brackets xD
If it's all the same class there's no reason it should be empty if you're adding onto it
Do some debugging
And then clean and rebuild the project if debugging doesn't work
If that fixes it, Imma kek

you'll need to add the Spigot server JAR as a configuration to debug properly
debugger
add your Spigot server JAR as a configuration within IntelliJ and run it from within IntelliJ, then you can set break points and evaluate thingys
Nah you don't need a debugger, printing is just fine kek, either you have multiple instances of the classes, or it's some compile shenanigans
^ that first point is wrong
discouraging debuggers is not a good thing frosty
Bardy, you're checking if a list contains a value, overkill to go debugging everything
you should just set up debugging for every project
Effort
because you're gonna need it anyway
Just don't make mistakes 
the issue is im creating new instances everytime 
big brain 
cus i am big fuckin brain
Would checking a class name to find the right class be viable or should I have a class identifier?
https://www.youtube.com/watch?v=_AHpRNJLamc @remote goblet
okay 
KM, when adding to a set I should use .plus or?
doesn't really matter
+= to add to a set
.plus is the same as +, .add is for +=
ah so that's why it wasn't working earlier, k
^ yeah you're right
@remote goblet basically unless you actually need the contract of a List it's probably better to use a Set everywhere
and if you dont overload += but did overload +, it unfolds it to the proper assignemnt as well. Like x += y would become x = x + y
because Kotlin's compiler is smart lol
It's probably a pretty common tactic
Rather than adding an extra instruction to the parser you can just expand it
How does one exlude shit from a project implementation?
Tried this but it doesn't work
implementation project(":common") {
exlude group "com.github.frcsty"
}
yes finally just needs older 1.8 r2 and r1
http://images.virtusdevelops.eu/shareX/4lkaf41z.png
You need jesus
?
Anybody have a way to develop the plugins in VS code?
I just love their interface way better than eclipse.
Don't
??
That looks ugly as well though..
VS code isnt made for java:?
this man tryna start a crusade ๐
I was just wondering if someone found a way lmao
VS code isnt made for java:?
wha
Actually you can use VS code for anything
I was just wondering if someone found a way lmao
@obtuse gale
You could use just about anything if you want to I guess
Even notepad if you're brave enough

Nothing is as better as IntelliJ
That's the devils work
I haven't ever setup IntelliJ to code
so
I guess I'll try
Nice @dusky drum I generally leave out some of the less used versions, so I usually only end up with the latest major versions. e.g 1.8.8, 1.12.2, 1.13.2, e.g
well
i added all of them just for yeh
thats why i havent added 1.8 R1 and R2
pretty much R3 has a lot of crash (hack) clients fixes
i broke rainbow ;(
http://images.virtusdevelops.eu/shareX/9twaod5t.png
i guess i should change this:
return DataWatcher.Item<Optional<IChatBaseComponent>>(DataWatcherObject(2, DataWatcherRegistry.f), Optional.of(ChatComponentText(name)))
thats for 1.15
you need to parse the hex colours into seperate chat components
each individual colour and text segment has its own chat component
wtfa?*ลก+
ye i saw how json is builded
like each text that has different color is seperate object in json
You can use Bungee to do it I believe
TextComponent.fromLegacyText or something
Then convert the TextComponent into json
but text i sent is already hex parsed
What do you mean already parsed
@obtuse gale intellij with Material UI theme is best, but if you're determined to use VSC you can just use a tool like Gradle to build and run your projects
One sec
k
Material Ui theme? I'll check it out. Thanks
This whole server is meant for coding _____ ?
IChatBaseComponent.ChatSerializer.a(ComponentSerializer.toString(TextComponent.fromLegacyText(legacyText)));
not entirely
Technically the server is for papi support first and foremost
But the development channels are for anything
how do i know if text is legacy niall?
k
Mostly spigot / bukkit
aha ok
but its using hex
@obtuse gale An example of material UI
oh so for any 1.16+ i need to convert from legacy?
yes
ugh
Gasper on my lib, you don't 
atom one dark best theme
^
niall another problem
it requires
IChatBaseComponent
but i get
IChatMutableComponent - or something
IChatMutableComponent should be an IChatBaseComponent
yeah you can actually do .mutableCopy as Brister said
where
Lol
lel
All that serialising get's slow if your doing it intensely
i have a complaint to make
wat
this is unacceptable
Sir you have received a complaint
either do val items = mutableListOf<DataWatcher.Item<*>>() or val items: MutableList<DataWatcher.Item<*>> = mutableListOf()
no excuses
By the way the Chat component stuff is nms based
based
So protocol lib is no use
@prisma wave release 0.4.0. I fixed the java version check. Did you have any luck with Java 11?
As far as I can tell, J8 can build 1.8+ and J11 can only build 1.13+
thats why i dropped protocollib niall :3
As far as I can tell, J8 can build 1.8+ and J11 can only build 1.13+
that is correct I think
Java 11 worked fine for new versions
groovy i fixed the issue you had complains about :3
java 8 also seemed to work fine for lower versions (although BuildTools failed for an unrelated error)
@dusky drum 
now lets see if rainbow works
@empty flint what am I looking to test in the new version?
It should do Gasper
I honestly forgot what it was that didn't work last time
oof @ocean quartz is this normal if using your Command Framework?
oh yeah, old versions
thanks Niall
http://images.virtusdevelops.eu/shareX/8vcz9aq5.png
But I think you had PATH problems
Hey @old wyvern
now lets run jprofiler
@empty flint I did, not anymore
How does The Intelijji community vs ultimate matter.
oh yeah and I implemented your eula trick
nice
@obtuse gale not a whole lot unless you're using enterprise frameworks and things
But like its not like. No commercial use
How does The Intelijji community vs ultimate matter.
@obtuse gale It does to jetbrains
Like I can sell whatever I make in it basically. its not stupid like that right
Ultimate adds duplicate checking, support for things like Spring, and all the features of other Jetbrains IDEs
ah
it's fine
k tysm
Uuh @pastel imp no, it's only like 30kb
oof so wth is doing it be that big
Can you show me your gradle/pom?
gotta love how when i run jprofiler my server tps drops to 2.0
speedy

haha when i detached mobs went flying fast XDDD
@pastel imp Hmm not sure, try opening the jar on winrar or something and check the files see what else is being shaded
just ah my join even uses 900ms wtfcidawฤld'*
ye will do
in the mean time... I am getting this issue https://paste.helpch.at/wisiyepoqa.md
It may be cause I am running paper 1.8.8
and the plugin is made in 1.12.2
?
but it should work anyways
getItemInMainHand doesn't exist in 1.8
welp that is true
but I can't use the getItemInHand
when I build the plugin
it doesn't let me build it
oh wait
ok it's just a note
it did build
about the size of the plugin
honestly didn't find much
that could cause that much difference
ok wait
why is kotlin also building with it?
The only options in inte
Cant send image
Would it be because you're using kts instead of groovy?
Idk
There is no option for material UI
?imgur
You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/ to upload images/screenshots.
Material UI is a plugin
welp besides that p.getItemInHand(); is also returning the same error
and I don't rlly wanna use spigot 1.8.8 to make the plugin cause of gameprofile errors etc
it's the one above
hmm welp gonna try to redo the project cause of the size of the jar
hm
do you say "the folder where the jar will be run from" or "the folder where the jar will be ran from"?
my English is rusty
leaning towards ran but not sure
You need to change the system path
where
It's currently pointing to 14, need to point to 8
Hmm on my pc > properties > advanced system settings > environment variables > path
Might need to restart the pc
If ecloud was still using Spring and thymeleaf I have no doubt it would be finished by now
i realized my packets take quite a lot of procesing power..
what are you sending?
metadata
entity metadata?
yes
ah okay
PacketPlayOutSpawnEntity doesn't have any metadata fields
you need to instantiate it with an Entity
aftert that i send meta
wait
did spigot 1.13 not have Configuration.getLocation?
does*
java.lang.NoSuchMethodError: org.bukkit.configuration.ConfigurationSection.getLocation(Ljava/lang/String;)Lorg/bukkit/Location;
Javascript Vue and Json:api
omg getLocation was added in 1.14
oof
@heady birch the backend should still be in Spring lol
Oh yeah it is but with json:api its a whole rest api thing
what's wrong with a REST API?
they're easy
also JSON is the best way to send messages with REST APIs imo
Good and all but I think only lemmo knows how
Service layer is pretty much completed through
okay changed to config..#get as location
also what is the last parameter of sendScoreUpdate btw?
is it by any chance score?
and is the last method in Adapter sendTeamAddPlayer?
@heady birch
and what's the last parameter of the last method in Adapter?
Yeah its score
what about the rest of those? lol
also is it just me or is it kinda annoying sometimes how when you declare a parameter as final, there's no way (as far as I'm aware) to carry that immutability down to subclasses (when using automatic override generation)
perhaps
which one is perhaps?
@heady birch Any idea how much size ORMlite would add to the jar?
it doesn't add that much at all afaik
Less than 0.5MB?
ah, I assume thats fine then
go suck on that Mr. "ORM is really large" xD
Um?
Interesting
@old wyvern I said to Niall the other day "would it be cool if I added more support for databases using ORM?" and he said something like "ORM is large"
oh ok
eh, my placeholder managment is kinda wierd i have to redo it i guess, also i guess i'll change some other stuff o.
@pastel imp that's because Kotlin is better
also @heady birch , what's the constant IChatBaseComponent in any adapter for 1.13+ for btw? because from what I can see, it's always an empty string and never gets updated
Anyone got any suggestions as to how one would make a completelly customizable listener system, I assume you'd just classpath scan to find the right class, but I wanna here any better ideas if anyone has them
its an empty chat component im pretty sure
yeah ik but what's it for?
when nothing needs sending
ah okay
because it seems to update the field b
which according to Mini's Mapping Viewer, is displayName
so according to the code I have infront of me, on team create and team update, the displayName is set to an empty string
yeah correct
@dusky drum it's not that easy when there's three different IChatBaseComponents all with the same initialiser value
i know right XD
(which are displayName, teamPrefix and teamSuffix respectively)
lol
Anyone got any suggestions as to how one would make a completelly customizable listener system, I assume you'd just classpath scan to find the right class, but I wanna here any better ideas if anyone has them
interfaces
you get the plugins to register interfaces with your plugin
and you call their methods
also what are the methods in Adapter_1_16_R1KiteChatComponent? @heady birch
In my plugin Niall, I was thinking of having a file which registers events, but then I'd have to have every event in the game so it'd be cancellable, and they'd just specify it in the format where they wanna use it
ie.
I'd register let's say PlayerWorldSwitchEvent through the config which would call FrozenPlayerWorldSwitchEvent (basically allowing others to only cancel that if they wanna modify it), and then the user would specify the frozen event to be listened to and execute the format on
bom bardy I prob wont comment on that because its quite unique to kiteboard
@hot hull something like this:
interface FrozenJoinListener {
void onSomeEvent(EventClass event);
}
JDA style
okay
well that's handy lol
so I'm on my own here then @heady birch
it's some pretty wacky arrow code ngl
Indeed it is
it can't be that hard to figure out what this does
oh I know
this is your way of dealing with hex colours isn't it
Yeah
why doesn't this use a regex?
I got one already
@heady birch can I share my regex with you?
sure just post it here
(&|ยง)(#)(\w{6}|\w{3})
And use while (matcher.find()) kind of thing?
first one matches either the character & or the character ยง
second one matches the character #
third one matches any word character either 6 times or 3 times
yeah
Which would have the best performance, regex or the way I do it at the moment?
probably a regex
Or switch to mf-msg? 
No need
Niall uses NMS for his hex stuff
xD
Mf-msg was written a while after I wrote all this stuff
Why the unneccessary parenthesises?
how do I specify the jvm target in gradle?
([&ยง])(#|[0-9a-f])(\w{6}|\w{3})? will match legacy codes as well as the new hex codes @heady birch
actually hold on
that'll also match &#
([&ยง])(#(\w{6}|\w{3})|[0-9a-f]) boom
perfect regex
first one matches a single character in the list &, ยง
second one matches either the character # (and third capturing group) or a character in the list 0-9, a-f
third one matches any word character either 3 (priority) or 6 times
wow I didn't know I was so good at regexes lol
not sure if it would be faster than the pure processing though?
yeah I'm not sure about performance either, though it will clean up your horrendous arrow code a bit
now I gotta figure out how to convert the arrow code to use the regex lol
look through each one of the dependencies
ยฏ_(ใ)_/ยฏ
.-.
@heady birch you gonna use the regex btw or just keep the old code? because I need to know if I gotta figure out how to do this with a regex or not lol
probably keep whats there
alright
yeah
also btw @heady birch , why do Adapter_1_16_R1 and Adapter_1_16_R2 not use EnumSet.allOf(AdapterCapability.class)?
unless they do and my decompiler is once again shite
Damn, fabric is much easier to work with than forge
oof
Mixin makes code manipulation much better and safer, pretty sure Forge is including it with the launcher now IIRC? Something like that
Has anyone made a server implementation that runs both fabric and spigot/paper yet? ๐ค
not afaik
Had to spend like 2 hours setting up forge the first time, fabric took me 5 minutes
Can I add a project from github to my dependencies without downloading and building the project myself?
jitpack
jitpack doesn't recognise the current version
you can use the latest commit hash
ah that worked, ty
What's the difference between List<out String> and List<String> in Kotlin? I don't quite get the explanation...
@empty flint check the docs on parameters
I believe out is used for when you only want a consumer or something
actually no it's the other way around
out ensures that it is only produced and is never consumed
it's to avoid ? extends X
Beautiful
why thank you
lmao
should've used Elara





