#dev-general

1 messages Β· Page 357 of 1

forest pecan
#

lmao

cinder flare
#

the plugin most likely. I've never seen a plugin that can't just be downloaded and put into the plugins folder

#

well i mean

forest pecan
#

there are a ton of plugins that do that

#

lol

cinder flare
#

winget makes sense, you're getting a thing for windows

forest pecan
#

like modules

#

lmao

#

addons to plugins

cinder flare
#

name a plugin you can't just put in the plugins folder

forest pecan
#

not all module plugins or addons can be dropped

#

like papi extensions

cinder flare
#

well yeah you still get papi extensions from within papi

#

and you literally can drop them

forest pecan
#

thats one example, but not all modules do it lmao

cinder flare
#

half the advice is to get the latest dev build and slap it in there youself

#

you'd still get submodules from the plugins themselves?

forest pecan
#

no no

#

im not talking about that

cinder flare
#

hmm?

forest pecan
#

im saying, the ones not included into the parent project

#

not talking about like "extra support" for other plugins

#

i know an example for this but i hate the author of the library so i wont send that one to you lmao

#

but there are many others

cinder flare
#

please elaborate im so confused

forest pecan
#

worldguard

#

you cant drop that in without worldedit

cinder flare
#

yes you need world edit

#

um

#

are you familiar with what a package manager does

forest pecan
#

yes it downloads the dependencies..?

cinder flare
#

yes

#

so it would download worldedit for you

#

problem solved

forest pecan
#

i thought you were talking in general

cinder flare
#

oml

#

hey im just glad i have someone to talk to lmao

#

everyone else is too sensible to discuss things with me haha

forest pecan
#

well, the other issue is identifying them

obtuse gale
#

lmao

forest pecan
#

like sure, WorldEdit could be in the plugins.yml

#

but how are you gonan find that file

cinder flare
#

It's in the same place in every jar?

#

and it has a list of [depends]

#

or you just do it manually and then new plugins you make them submit what their plugin depends on

#

that's what a lot of package managers do

#

when someone wants to add a package, they manually fill out all the metadata and stuff

forest pecan
#

yes ik, but what is going to be in [depends]. like a link to the jar download?

cinder flare
#

same thing it is now, you just resolve that name

#

Spigot already has a system, it just doesn't download them for you

prisma wave
#

I've made a very rudimentary spigot package manager before

cinder flare
#

see! if bm can do it, there's hope in this world

onyx loom
#

🀨

forest pecan
#

🀨

prisma wave
#

Let me try find the video

ocean quartz
#

@hot hull Since you're picky, look at this beauty

prisma wave
#

I've posted it here before

forest pecan
#

lmao so we are making plugget

cinder flare
cinder flare
prisma wave
#

here

cinder flare
#

i really like arch's AUR package managers

#

my favorite one is just called yay

prisma wave
#

yay good

forest pecan
#

plug-get worldedit

#

plug-get update

cinder flare
#

so if you wanna install something, you just do yay -S gnome-desktop

forest pecan
#

apt-get

#

apt-install

#

yum

cinder flare
#

and it makes me happy every time ☺️

cinder flare
prisma wave
#

you don't even need -S

#

Afaik

forest pecan
#

yum is infinitely better than apt

prisma wave
#

Oh wait yeah you do

cinder flare
#

it's dnf now

#

also red hat is stupid and killed centos

forest pecan
#

use dnf

#

then

prisma wave
#

The only package manager I use is cargo

cinder flare
#

also yum is really fucking slow

cinder flare
cinder flare
prisma wave
#

maybe

cinder flare
#

nice

ocean quartz
cinder flare
#

That's for your plugin?

#

In java?

onyx loom
#

where is this core πŸ₯Ί

forest pecan
#

For me, I dislike apt-get and yum as they are harder to script and automated as they have lots of gotchas that you have to be aware of. Such as, yum does not fail if a package name does not exist in the repos (due to typo or missing repo or you forgot to update the repos). apt requires a bunch of env vars set or it defaults to interactive mode and can ask you a bunch of questions when you install or upgrade a package. Though these issues are solved by proper config management tools like Ansible or SaltStack (but then you are not really using the package managers and these are not always an option depending on what you are doing).

apt-get also has the annoying split command where you use apt-get install to install and apt-cache search to search. This always annoyed me as I often search for a package they want to install it by just editing the search to install - but then also need to change the -cache as well. Minor but I did it often enough for it to be annoying. This has now been solved with the new apt command. There is a lot of similar subtle behaviour that annoys people if different ways with all of the package managers.

cinder flare
#

yes I'd like to see please

forest pecan
#

copied from the internet

onyx loom
#

and its kotlin

forest pecan
#

lmao

#

yum is for older operating systems

#

dnf is for the newer ones

forest pecan
#

like fedora 22 and above

cinder flare
#

apt has solved all the problems lmao

#

plus pacman and yay are superior anywyas

cinder flare
onyx loom
#

ofc u can

cinder flare
onyx loom
#

compiles to jvm with interoperability

cinder flare
#

i guess that makes sense lol

#

did someone port the whole spigot library?

ocean quartz
onyx loom
#

no u just use the same api lol

ocean quartz
cinder flare
#

oh it just works?

onyx loom
#

yes

#

matt....

#

gimme gimme!

ocean quartz
#

id("me.mattstudios.triumph") version "0.1.8"

cinder flare
# prisma wave here

okay that's like, really sick. what happened? why did you stop developing it? can we revive it? is it open source? i have so many questions!

cinder flare
onyx loom
#

is this on gh?

cinder flare
onyx loom
#

triumphteam ofc lol

#

was looking at ipsk

cinder flare
#

i luckily clicked on his third mysterious icon on his profile and it led me to triumph team

#

and from there i just assumed lol

#

so wait does Matt just have his own entire ecosystem basically

#

cause he's got MF

#

and MF-GUI

distant sun
#

basically

cinder flare
#

and he made holovid

#

holy crap

ocean quartz
#

They call it a monopoly

onyx loom
#

🀣

cinder flare
#

hahha

distant sun
#

he's gonna rule the world once he stop being lazy as fuck

forest pecan
cinder flare
#

lazy as fuck? dude he's got so much under his belt holy cow if this is lazy

forest pecan
#

its written in kotlin

cinder flare
#

YES

ocean quartz
cinder flare
#

dude it doesn't even look like code at that point

#

you're just writing toml

ocean quartz
#

I'll take that as an offence

distant sun
#

:))

cinder flare
#

no no i love it

forest pecan
#
    /**
     * Displays the startup message of the plugin
     */
    private fun displayStartupMessage() {
        if (!IS_PAPER) {
            "Go die".log()
            return
        }

        """
                
            &cβ–ˆβ–€β–€ β–ˆβ–‘β–ˆ β–„β–€β–ˆ β–€β–ˆβ–€ &8Version: &c${description.version}
            &cβ–ˆβ–„β–„ β–ˆβ–€β–ˆ β–ˆβ–€β–ˆ β–‘β–ˆβ–‘ &8By: &cMatt
            
        """.trimIndent().lines().forEach(String::log)
    }
cinder flare
#

it's just crazy how beautiful it is

onyx loom
prisma wave
onyx loom
#

damn it u beat me to it

cinder flare
#

dude I forgot that Kotlin has Ruby-like allowing you to run methods on literals

prisma wave
#

C is knightzmc/ppm on github

#

Oh someone already linked it

cinder flare
#

ye ye

#

now if only we could get updaters hooked in

#

maybe we maintain modified variants of each open source plugin we support that interoperates with our framework instead of theirs

onyx loom
#

difference between apply and also?

ocean quartz
#

Apply uses the object as this, Also uses it as it

cinder flare
#

oooh

onyx loom
#

ic

cinder flare
#

omg I thought spiget was a misspelling

#

but it's actually a real website i love it

prisma wave
#

Spiget is useful

cinder flare
#

yes it seems very much so

#

if they let me wget from spigot ill be very happy

forest pecan
#

isnt that the api?

cinder flare
#

yeah

#

is SkinsRestorer still a required plugin?

#

oh maybe for multi protocol servers

jovial warren
cinder flare
#

which line is it on

jovial warren
#

this is deobfuscated Mojang code, so I can't answer that

#

if I could, I would know the answer and wouldn't be asking here

cinder flare
#

hmmm

#

I mean there's like 4 array accesses

#

so any of those

jovial warren
#

gotta be one of them

cinder flare
#

maybe try renaming some of the variables?

forest pecan
#

param_02[this.redirect], param_02[var_0]

#

param_02[var_1]

#

it doesnt look deobfuscated tho lol

cinder flare
#

shouldn't be the first one on line 7 because it looks for null

jovial warren
#

yeah some of it has my edits

#

also, that's how good CFR is

cinder flare
#

and the line 10 boi is the same thing, so that should be fine

#

line 19 is straight from a for loop, so that shouldn't even go if it doesn't exist

#

and so is line 23... hmmm

old wyvern
#

Um line 7 could be the cause as well

#

The index is still accessed even if for a null check

cinder flare
#

well yeah i know but why wouldn't they write an index check function if it were able to be that

#

i could see it happening more on for loops that are longer than expected

old wyvern
#

Fair point

cinder flare
#

maybe 7 million longs longer lmao

old wyvern
#

Actually the value of redirect is part of the class and not the function so we cant really tell from just that snippet if it could or could not be out of bounds

cinder flare
#

in Kotlin, can you just have an illegal array access become null instead of throwing an exception?

old wyvern
#

Depends on what value was set there and where

cinder flare
#

i feel like that would be a useful feature

jovial warren
#

what do you want to see?

old wyvern
#

The whole class if possible bard

cinder flare
#

hoo boy i can't wait haha

jovial warren
#

this will prove it's deobfuscated and decompiled Mojang code hopefully lol

cinder flare
#

i think the joke was that it "wasn't deobfuscated" because it's still hard as fuck to read

jovial warren
cinder flare
#

oh god it's only gotten worse

old wyvern
jovial warren
#

I can go through and fix all the variable names if you want

forest pecan
#

Object2IntOpenHashMap

cinder flare
#

yeah that would really help

forest pecan
#

W o t

jovial warren
forest pecan
#

lmao

old wyvern
cinder flare
#

so this is for packets or something?

old wyvern
#

Yes I think for the initial command list sent to the player

#

For brigadier maybe

cinder flare
#

ah okay

jovial warren
#

yeah

#

this is the declare commands packet

cinder flare
#

can you modify it?

#

i mean like slap some array access checks and shit in there

old wyvern
#

Actually, easy find, enable on-exception breakpoint in the debugger on ij

jovial warren
#

yeah that won't work

old wyvern
#

Why not?

cinder flare
#

i don't think you can run this in ij lol

jovial warren
#

because this error happens client-side

old wyvern
#

ahh

jovial warren
#

and I'm not running the client in IntelliJ

onyx loom
jovial warren
old wyvern
#

i assumed you had the issue on the server side

#

Is this class from the client then?

#

@jovial warren

jovial warren
#

nah, this is from the server, but they're basically the same with packets

#

the reading and writing is common between both

cinder flare
#

okay well at least it's not called param_02 now

old wyvern
#

Did you see the client side stacktrace?

jovial warren
cinder flare
#

so we're looking at the code running not under your control just what it's doing, we can't modify it or anything cause then you'd have to recompile all of spigot?

jovial warren
#

this is the client

#

I could probably run the client in the IDE somehow, but I cbfa lol

cinder flare
#

oh I presumed that was the server side code sending the packet

jovial warren
#

yeah it is

cinder flare
#

wot

jovial warren
#

but the error happens client-side

old wyvern
#

Why are we trying to find the client side exception in the server side class πŸ₯²

cinder flare
#

yeah but the code that you deobfuscated is server?

cinder flare
#

okay nice that's what I was asking lmao

jovial warren
old wyvern
#

The packet is, but is the class similar?

#

Did you use a one for one copy of the class for the server?

cinder flare
#

yeah true maybe the client class handles it differently

jovial warren
#

that's what CFR gave me

old wyvern
#

CFR?

jovial warren
#

stop questioning my god damn methods

old wyvern
#

Is that a decompiler?

jovial warren
#

this class is the same in both client and server

jovial warren
#

got a feeling param_0[this.redirect].node == null might be the culprit

#

I might be incorrectly sending the flags

cinder flare
#

wait wait wait

#

you don't know the composition of the packets yet?

jovial warren
#

wdym?

cinder flare
#

I presumed someone had already decompiled that bad boy

jovial warren
#

what

cinder flare
#

you don't know the correct format to send the packet in?

jovial warren
#

I'm sending the correct packet

#

in the correct format

cinder flare
jovial warren
#

it works without LuckPerms

#

that's a big fact actually

cinder flare
#

lmaoooo wtf

jovial warren
#

since LuckPerms has a lot of commands

cinder flare
#

i mean but it works in the normal server

jovial warren
#

yes

cinder flare
#

maybe it's off-by-one for some reason

jovial warren
#

lol

cinder flare
#

okay help me understand what you're doing with this code

#

are you just recreating a spigot server and sending packets manually

#

in order to understand how to decompose them for your own server?

jovial warren
#

omfg no

#

I've written my own server from scratch

#

that code is client code

#

I asked a simple question: where could I get an index array out of bounds exception from

cinder flare
#

but i don't even know what you're doing

jovial warren
#

trying to get LuckPerms to work on Krypton

cinder flare
#

so you're seeing what LP does on a spigot server first?

jovial warren
#

no

cinder flare
#

dude

#

you have told me so little information

jovial warren
#

I've made LuckPerms work on Krypton

#

I'm trying to get joining working

cinder flare
#

And when you try to join it throws an index out of bounds?

jovial warren
#

yep

#

at the declare commands packet

#

which declares commands

cinder flare
#

hmm okay

jovial warren
#

gonna try using Forge to run the client in IJ

ocean quartz
#

Yup
It's a blessing

onyx loom
#

ah yea

#

same with getOrPut for maps, godly

prisma wave
#

java has that too

#

computeIfAbsent

#

But yea

onyx loom
#

computeIfAbsent πŸ˜‚

#

what kind of enterprise method name is that 🀣

old wyvern
#

πŸ‡― πŸ‡¦ πŸ‡» πŸ‡¦

jovial warren
#

man Forge is awesome

#

I can run the client in IJ

stuck harbor
#

stonks

prisma wave
#

You can run any jar in IJ

jovial warren
#

doesn't have a thingy thingy

#

main class

stuck harbor
#

hehe I love DRM :(((((((

old wyvern
#

bm

prisma wave
#

Oui

old wyvern
#

Did you finish the changes document for elara?

prisma wave
#

uh I kinda forgot about it a bit

old wyvern
#

oh welp

prisma wave
#

I think we need to decide on some core ideas first

#

Are we going purely functional? If so, are we gonna have support for some imperative constructs?

stuck harbor
#

pure functional

#

no friction

prisma wave
#

Eager or lazy? Lazy makes sense for purely functional but not much if we're allowing side effects and things

stuck harbor
#

only sql

#

only sql

old wyvern
#

Id say, not purely, but close enough so we get the advantages without it beign a detterent like in haskell

prisma wave
#

right

#

By purely I meant what Haskell has

old wyvern
#

We could go that route

stuck harbor
#

Sir this is #sql

prisma wave
#

The issue with that is a lot more complexity though

old wyvern
#

But then we need some major changes to advocate the difference

prisma wave
#

Yeah

old wyvern
#

I guess we can still use the impure, pure idea?

prisma wave
#

That seems like a good idea

#

We can guarantee purity most of the time but we don't always need complicated constructs to do side effects when they're necessary

old wyvern
#

I guess we can let the users use the impure functions in a "haskell"-like way as well if needed

prisma wave
#

Yeah

prisma wave
#

make some function that converts a a => b into an a -> IO b or whatever

#

Personally I think the design of clojure and f# works the best - purity is heavily encouraged but you don't have to jump through any hoops to make impure code if necessary

#

but i guess we need to figure out what we actually want to do with elara before making decisions like this

old wyvern
#

yea

static zealot
#

he scammed the scammers lmao

eternal compass
#

and donated the money

#

amazing dude

forest pecan
#

now i think about it

#

creating malware is java is super hard to do

#

cause java is super limited on graphics shit

#

and also native shit

cinder flare
#

nah bro just use JavaFX ezpz

ocean quartz
#

TornadoFx fingerguns

cinder flare
#

ooh never heard of it is it good

forest pecan
cinder flare
#

yeah true there's a lot of boilerplate

#

i kinda died a little with how many lines of code a simple 2 page app took

forest pecan
#

its not that

#

its the limited functionality

sweet cipher
#

I think adding my project to github broke something. One of my classes just stopped working.

forest pecan
#

wat

sweet cipher
#

I can't import it anymore

forest pecan
#

i dont think thats possible cheif

sweet cipher
#

Idk

#

I tried adding the import and its not working. I can add the package before the class name when making the variable and it works, but trying to add the import just does nothing.

cinder flare
#

weird

sweet cipher
#

When I hover over it, it gives me an option to import class, but then nothing happens

cinder flare
#

try quitting and reopening intellij

sweet cipher
#

I did

forest pecan
#

oh that issue

ocean quartz
cinder flare
#

oh I see I see

#

so still pretty bad

#

just Kotilny :)

old wyvern
#

Yes

#

DSL's everywhere

#

Except for me it breaks IJs parser for some reason πŸ₯²

forest pecan
#

tbf, there are not many java frameworks for gui development are good

sweet cipher
cinder flare
#

awe nice

#

yeah i feel like java ain't the platform you want for nice looking web apps

#

maybe if you wanna go for the java applets of yesteryear

forest pecan
#

spring

jovial warren
#

wtf

#

how tf does ```kotlin
override fun register(command: Command) {
val commandNode = dispatcher.register(
literal<Sender>(command.name)
.executes { execute(command, it) }
.then(argument<Sender, String>("args", greedyString()).executes { execute(command, it) })
)

    command.aliases.forEach { dispatcher.register(literal<Sender>(it).redirect(commandNode)) }
}
#

I get that with the then

#

if I remove then, no issues

cinder flare
#

too long?

forest pecan
#

maybe fefo knows

#

this is brigad

cinder flare
#

@obtuse gale

obtuse gale
#

yeah he sent that too in the LP discord

#

because it's never enough to ask in one place

sweet cipher
#

Whats a good color plugin/theme for intellij?

obtuse gale
#

I mean the actual tree structure is good, you can't really fuck that up lol

forest pecan
#

i personally just take the normal black

#

normal dark theme

obtuse gale
#

mmmmmm

sweet cipher
#

Thats what I am using

forest pecan
#

lmao

#

yea

#

its good on my eyes

#

no big contrast

#

or anythingg

sweet cipher
#

I have to figure out how to revert everything back to normal because I just went through and made everything random colors

#

Oh I figured it out.

cinder flare
#

pastel syntax highlighting lights up the dopamine receptors in my brain

#

oooh and rainbow brackets

#

those things are nice

forest pecan
#

unless you use free version

simple kestrel
#

Hi :)

sweet cipher
#

Hello

forest pecan
#

omg Olivo

#

ur here

cinder flare
#

wtf

#

wdym

forest pecan
#

"Buy"

simple kestrel
#

Just joined

forest pecan
#

this place is better than spigot discord

obtuse gale
#

who that

cinder flare
#

wtf

obtuse gale
forest pecan
#

developer from spigot discord as well

cinder flare
#

it really does wth

forest pecan
#

hes acquainted with conclure

#

and i

obtuse gale
#

ah

cinder flare
#

dude it was free like seconds ago

forest pecan
#

nah

cinder flare
#

maybe its included in ultimate

forest pecan
#

it was like that for a coupel months

#

nope

#

its not included in ultimate

cinder flare
#

well i tell ya

#

i just got it for free literally like 3 days ago

#

at the recommendation of Matt

#

bro im gonna be mad at JetBrains

#

for the first time ever

#

this is like the Skyrim Horse Armor

simple kestrel
#

Darcula is good enough for me πŸ€·β€β™‚οΈ

cinder flare
#

it already has 4 stars lmao

sweet cipher
#

The Material thing just spaced out all my packages and classes

#

And nothing else

forest pecan
#

second favorite

#

i like simple themes

sweet cipher
cinder flare
#

i like Visual Studio Code Dark Plus Theme

#

it's probably tied with material theme

#

though i am in love with the pastels

forest pecan
#

developer role when πŸ˜”

simple kestrel
#

Hm how do I get tiers?

#

Nvm just got one from that message

forest pecan
#

ya

obtuse gale
#

chit chat chat chit chat

simple kestrel
#

Hm I should probably ger some sleep ;/

stuck harbor
#

no

simple kestrel
#

Or is it time to grind tiers

jovial warren
#

Darcula is nice

#

Atom OneDark with Matt's edits better though

#

with the compact everything πŸ‘Œ

simple kestrel
#

Hm might look in to that then

jovial warren
#

ask @ocean quartz for his colour scheme lol

forest pecan
#

@obtuse gale start learning to freaking not shout out loud and spam posts. you literally sent 3 posts of rants in 2 minutes

#

SHEESH

#

you also called me an internet weirdo

prisma wave
#

have I missed something

#

This is development general

forest pecan
obtuse gale
#

dude I dont like people trying to get me upset.. maybe you can understand maybe you cant.

forest pecan
#

i understand, but you literally almost harassed like 3 people

#

lmao

#

you gotta chill

prisma wave
#

lmao

cinder flare
#

this is still happening?

prisma wave
#

anyone here ever heard of Haskell?

cinder flare
#

i thought we swapped this out for the capitalist guy

ocean quartz
simple kestrel
#

Me

obtuse gale
#

Also this.
I really dont like if people just trashtalk me like that. Sorry to the ones that didnt mean it in a bad way, but I hope some1 can understand that I get mad if people just talk to me like that without any reason.
I tried to explain in the thread, if I get harrassed by (not everyone) most of the people for calling out a scam I'll definetly not try to be nice to the ones that did it

ocean quartz
simple kestrel
#

Thanks :)

#

Now time to get some sleep it's almost 1am. Good night everyone :)

jovial warren
#

gn

cinder flare
#

gn!

obtuse gale
#

@forest pecan I tried to put some effort in the post I made in the beginning and then most of the responses I get is just bs. None of the posts I quoted helped me. You tried to help me and I appreciate it, but as I said I got upset and didnt want to get made fun of while discussing a serious topic that I tried to make people aware of. Same in here.. I dont get it why people cant try to have a mature conversation and instead just try to make me look bad. It wasnt even about them, it was about a scam that I tried to make people aware of

prisma wave
#

man I love lisps

#

(= main (putStrLn "Hello"))

#

I made this earlier

#

Thoughts?

cinder flare
#

(+ 2 2)

#

how bout them apples

prisma wave
#

pragmatic and modern

distant sun
#

coc anybody? xD

prisma wave
#

Have you guys ever heard of rust btw?

prisma wave
#

Wait why doesn't COC have rust

#

Or does it

distant sun
#

its 12am smh bm

prisma wave
#

Exactly

#

I am going to bed go on my phone for the next 2 hours

cinder flare
#

hell yeah

#

watching tiktoks?

#

that's my favored pasttime

prisma wave
#

i prefer writing hello worlds in obscure languages to try and be funny

cinder flare
#

on your phone?

#

now that takes skill

prisma wave
#

yes

#

Takes a lot of practice

#

Typing the stupid backticks makes me want to die

cinder flare
#

oh boy I bet

sweet cipher
#

If people clone my repositories does that mean they are just downloading copies of the code?

obtuse gale
#

Essentially

prisma wave
#

Bit more complicated in practice but yeah

sweet cipher
#

Okay

prisma wave
#

You're downloading the entire git repo

#

Including the hidden .git folder

sweet cipher
#

Whats that?

prisma wave
#

basically git metadata

#

Stores the previous commits and branches and things

sweet cipher
#

Oh okay thank you.

#

I don't know why people cloned some of my stuff lol.

prisma wave
#

To edit it probably

#

How do you know they cloned it?

cinder flare
#

Maybe forked?

sweet cipher
#

It says in insights

prisma wave
#

oh cool

#

Didn't know that

sweet cipher
#

Idk who did it

#

It justs say total people who have

ocean quartz
#

Curious about how the new paper chat event is supposed to be handled, since it'll give a component now
Is it going to be just one single component that can have it's message extracted as a string? (for parsing purposes)
I feel like if it would be a bit odd to work with components in this situation
Seriously thinking about dropping Spigot support but idk

obtuse gale
#

wdym?

Is it going to be just one single component that can have it's message extracted as a string?

ocean quartz
#

I meant as in like one component where i'd get the message from, but I realize that's stupid probably better to just use a PlainSerializer on it

obtuse gale
#

not exactly sure what you're trying to say..? For example, the default component in the AsyncChatEvent is the translatable component for vanilla chat (chat.type.text or something, idk) that has 2 components as arguments: the player's display name which on click suggests /tell <player> and on insertion it inserts the player name, and the second argument the msg

ocean quartz
#

That's not exactly what I meant xD
Sorry hard to explain, basically was trying to say I needed the message as a string

#

In other news, @prisma wave 😦

obtuse gale
#

and what if it's a block NBT component, entity NBT etc

#

I mean those I really doubt you'll find in chat event

#

but it's just so malleable

#

it's not "a message", but a format

ocean quartz
#

Yeah which makes this pretty hard to work with for a chat plugin

obtuse gale
#

the plaincomponentserializer only works on textcomponents right?

ocean quartz
#

I am not sure, I'm assuming it should work for everything

obtuse gale
#

oooo you can make your own ComponentFlattener

ocean quartz
#

Yeah supports all

obtuse gale
#

wat

#

what's that..?

ocean quartz
#

The serializer xD

obtuse gale
#

plain?

ocean quartz
#

Yeah

oak raft
#

facts or no?

obtuse gale
#

what version tho

ocean quartz
#

Uh i just deleted paper's repo from the cache so it's the most recent and it uses 4.7.0

obtuse gale
#

but this is Plain...

ocean quartz
#

Oh I see the issue

obtuse gale
#

hm?

ocean quartz
#

I had the older serializer

obtuse gale
#

ah

ocean quartz
#

Well I'll think about this, might be worth dropping spigot

obtuse gale
#

what were you trying to do btw?

ocean quartz
#

Just thinking how I would change my chat plugin to paper only since my markdown lib needs string and the event changed to be a component

obtuse gale
#

it's... complex

#

the idea on the classic AsyncPlayerChatEvent is that you have a format and two args: display name and message

#

and that got formatted with String.format

#

legit

#

AsyncChatEvent does the same thing.. but with components; ChatFormatter takes two Components (display name and message) and formats them into one formatted Component

#

it kind of mimics it but idk it's odd

ocean quartz
#

Yeah, for simple things I can understand how the new chat event is way better
But since most likely I'd still need to cancel the event (for channels and things like that) it doesn't change much
Only the fact that i'd need to flatten the component first

obtuse gale
#

I can see how it's better for plugins that, for instance, show items on hover when you type stuff like [i] or w/e

#

since you can just call Component#replaceText(...) and it's amazing

ocean quartz
#

Yeah

#

Spigot needs to step up their game, paper gets better and better each update lol
Surprised there is still an incredible amount of people on Spigot

#

From essentials

obtuse gale
#

woah it's grown a lot since last time I saw it...

#

like

#

4 days ago...

#

okay I seriously don't understand why the recipients set in every chat event may or may not be mutable

#

wtf

#

I wish LP had bstats for bukkit and bungee tho

forest pecan
#

spigot used to be 0.1% higher

#

lol

ocean quartz
#

Yeah i think it'd make much more sense to be mutable or have a setRecipients

#

Also sad they named it message() instead of getMessage() because Kotlin won't turn it into a property

obtuse gale
#

worldedit

#

and globally, paper is 2% ahead yoo

ocean quartz
#

There is a nice graph from paper to show a more accurate percentage but I can't remember the site

obtuse gale
#

probably something minidigger did lol

#

wouldn't be surprised

#

πŸ₯²

ocean quartz
#

Lmao

#

Oh god mini wtf is this design lmao

forest pecan
#

well we know something now

#

he aint a boomer

#

those docs are prolly created in the early 2000s or some shit

obtuse gale
#

that Matt?

#

OH WOW

forest pecan
#

18 servers run on 1.14.1

#

lol

obtuse gale
#

there is 1 server running 1.17 and it is not paper

#

in fact -1 is running paper

forest pecan
#

hypixel?

#

wait no

ocean quartz
#

Don't think so, it was a graph
But this one is good enough

forest pecan
#

that wouldnt bepaper

#

prolly some paper test server

ocean quartz
#

64%, that's pretty good

forest pecan
#

or smthing

obtuse gale
#

holy shit I selected some text and half the site went blue

#

oh god Martin why...

#

HOLY SHIT

ocean quartz
#

Chad

#

Even on the read me

#

I swear that his ads sound like someone is inviting you to a pyramid scheme

obtuse gale
#

xD

#

if paper hard forks

#

oh boy

#

we will get snapshot APIs

#

eventually πŸ₯²

ocean quartz
#

If that happens I'll surely drop spigot
but all we have are snapshot apis

#

I like how Spigot adds R to the version but never releases a revision

obtuse gale
#

neither a release...

ocean quartz
#

It's in a constant state of beta

dawn hinge
#

😳

hot hull
#

:sadge:

dawn hinge
#

Beautiful

hot hull
#

@jovial warren I beg of you to implement some default shit for Bungee <-> Spigot communication, because the current stuff is just a complete abomination

remote goblet
#

PU_PepeHmmmSuperInteresting everyone here should show their plugins folder

#

i can very much start

hot hull
#

now what

#

I had like 200 plugin folders on my old pc, only got like 30 all together now

quiet depot
#

@hot hull velocity and paper communicate I think

prisma wave
#

What's happened to him

hot hull
quiet depot
hot hull
#

Only thing that matters

β”œβ”€β”€ RPF

quiet depot
#

theres group folders in there too

#

like HelpChat

#

that has a bunch more things in it

#

and placeholderapi

hot hull
#

I've legit tried everything and can't get this fucker to work ;C

quiet depot
#

@hot hull what

#

do u mean

hot hull
#

I need to send a request to bungee to send the updated config, however it just does not want to send the fucking message to bungee

quiet depot
#

have u tried sending a message to bungee

hot hull
#

boi if you don't

quiet depot
#

why don't you use sockets

#

or a messaging service

#

or something better than bungee

hot hull
#

Will probably need to, but it's such a small usage case that it's not really worth

jovial warren
#

you talking about PMCs?

hot hull
#

yesn't

jovial warren
#

I might implement a messaging channel into Krypton to avoid the mess of a system known as the BungeeCord plugin messaging channel

#

that won't rely on players being online

hot hull
#

I just need something reliable which supports messaging both ways

jovial warren
#

😏

hot hull
#

cause the shit I have rn makes my head hurt

jovial warren
#

I might end up making my own proxy from scratch at some point

#

not sure yet

#

if I do, I'll likely name it the suggestion I believe you originally gave to me as for what to name Krypton, if you can remember

hot hull
#

Aurora

jovial warren
#

yeah

#

the Aurora proxy and the Krypton Minecraft server

#

sounds good to me

#

what do you think?

hot hull
#

sounds good yea

jovial warren
#

I mean, if anyone else who knows much more about proxies than me wants to pitch in (which, let's face it, is likely quite a small minority of us here lol) then that'd be greatly appreciated btw

#

also, the great thing about making my own proxy is it means that the server <-> proxy communication can be whatever the fuck I want, since I have total control over both

#

I don't have to impersonate a vanilla client like BungeeCord does, so I get a lot more freedom

oak coyote
#

The power of having control over you dependencies

jovial warren
#

and it would mean that you wouldn't be able to direct connect to the backends either, since it'd be using it's own custom packet formats and stuff that won't make sense to a vanilla client

jovial warren
oak coyote
#

No weird shit you have to deal with πŸ˜‚

jovial warren
#

if I was to make a custom proxy, and have Krypton support it, I would likely just make an entire new set of custom handlers and just use a completely different Netty setup when proxy mode is enabled

#

then I could also send packets over UDP if I wanted to

#

and, as I said, I can design packets however I want

oak coyote
#

I like designing packets so scuffed people want to give up trying to use them πŸ˜‚

jovial warren
#

I'd probably design packets that are as concise as possible, yet make a bit more sense and aren't whack

#

and send them over UDP or something for speed

#

I mean, Bedrock and HTTP/3 with QUIC (all I can think of rn lol) use UDP, so there must be a reason

stuck harbor
#

mmmm UDP

#

I love dropping data

prisma wave
#

RabbitMQ

jovial warren
#

and that

onyx loom
#

make ur own protocol

jovial warren
#

the list goes on

jovial warren
#

and then just having Krypton use a completely different Netty setup when running under proxy mode

#

I mean, some packets that the proxy doesn't support will just be forwarded on like normal ofc

#

so it might not even be worth making my own protocol tbh

stuck harbor
#

yes I agree

prisma wave
#

Rabbit mq

stuck harbor
#

networking

#

I much understand networking

jovial warren
#

now that would be nice

prisma wave
#

Probably not the server's responsibility

#

If I wanted rabbitmq I'd do it myself

#

Using some actual specific library

jovial warren
#

no, but RabbitMQ would be better than plugin messaging channel

prisma wave
#

Not necessarily

jovial warren
#

yeah I suppose

#

RabbitMQ isn't really designed for fast messaging anyway

#

it's designed for complex routing and secure messaging

prisma wave
#

Plugin messaging is easy to implement, doesn't require any additional setup and doesn't need you to host anything else

jovial warren
#

if I can get it to work with no players online then that would be good

prisma wave
#

Not possible

#

Afaik

jovial warren
#

could add a custom packet then I guess for custom messaging

#

also, you know that all I need to send a plugin message packet is a connection right?

#

although, the proxy doesn't give me connections without players

prisma wave
#

Exactly

prisma wave
stuck harbor
#

wrong channel

onyx loom
stuck harbor
#

lol

#

let's see what I get this time

#

clojure

#

very nice

prisma wave
#

Ooh same

#

Not sure why my rust addition hasn't worked

onyx loom
#

?

#

u got a virus or smth?

simple kestrel
#

That link redirects yeah

hot hull
#

Works just fine?

prisma wave
#

πŸ₯²

jovial warren
#

lol

prisma wave
#

YES

simple kestrel
#

aw I got a 502 error ;/

stuck harbor
#

sadge

#

I need to setup a clojure environment

#

hmmm

#

doom emacs has it built in

prisma wave
stuck harbor
#

and emacs is written in lisp

quiet depot
#

emacs

#

lol

prisma wave
#

Worked for me

quiet depot
#

sublime masterrace

stuck harbor
#

sublime isn't bad

simple kestrel
prisma wave
#

yay

#

What did you get

simple kestrel
#

ocaml

prisma wave
#

nice

stuck harbor
#

very nice

prisma wave
#

U don't need much

stuck harbor
#

but what editor tho

prisma wave
#

whatever

stuck harbor
#

thats the question of the day

prisma wave
#

vim if you're so inclined

stuck harbor
#

cursive is expensive as shit

#

and I'm kinda growing on emacs chords

quiet depot
#

cursive?

stuck harbor
#

intellij clojure plugin, essentially

#

super powerful

#

super expensive

quiet depot
#

as in potato pc no go?

#

or does it cost mooneyy

stuck harbor
#

moneeey

#

$99 for a personal license

#

I can't be doing that

onyx loom
#

i didnt even know plugins could be sold

prisma wave
#

Wot

#

Isn't cursive free for non commercial use

stuck harbor
#

I don't think so

#

not sure

#

hold on

#

o

#

u right bm

quiet depot
#

4head

stuck harbor
#

but like, I'm kinda commercial, no?

quiet depot
#

no

#

you just take mandatory donations

prisma wave
#

Are you being paid to write clojure code

stuck harbor
#

fair

quiet depot
#

someone please help this man

stuck harbor
#

what the

prisma wave
#

lmao

#

What does that mean

quiet depot
#

i am sure not yet but maybe decipher soon?

stuck harbor
#

I should add spigot to my RSS

#

so I can see these things

quiet depot
#

what are you, 100 years old?

stuck harbor
#

yes

#

I use RSS

quiet depot
#

lol trash

#

i'm 117

#

or 118

#

can't remember

stuck harbor
#

sadge

quiet depot
#

did you ask it in this channel?

stuck harbor
prisma wave
#

ew

#

Cursed channel

stuck harbor
#

yarp

#

my spigot account is so barren

#

its hilarious

quiet depot
stuck harbor
#

I love RSS

#

its omnipotent

quiet depot
#

yikes

prisma wave
#

wtf dababy on the high performance minecraft server spigotmc.org??

quiet depot
#

yes

stuck harbor
#

don't look at my spigot

#

don't do it

#

I refuse

obtuse gale
#

Wasn't gonna

stuck harbor
#

good

frigid badge
#

aight i'm out

#

might as well leave

#

if this gets infected with the most childish dababy crap

#

big smh my head

#

;p

hot hull
#

huh

prisma wave
#

Hahahahahahahah

#

Nah the joke is a bit dead

onyx loom
#

brand new Lamborghini

prisma wave
#

Also lemmo any idea about that thing I asked a few days ago? Just making sure you haven't forgotten pleadingUWU

prisma wave
quiet depot
cinder flare
#

It's a Tiktok thing lol

quiet depot
#

oh

#

yeah I've never used tiktok

stuck harbor
#

k old man

prisma wave
#

oh is it?

stuck harbor
#

and i'm saying that whilst adding spigot to my rss reader

cinder flare
#

Lmao

quiet depot
#

hey I know he's a rapper

#

because google told me

prisma wave
#

he's actually not bad

#

He just became a meme for some reason

#

Yeah lol

#

r/DaBaby was hilariously bad

lunar cypress
#

rip r/DaBaby

prisma wave
#

a tragic loss

stuck harbor
#

hehe

#

i just set intellij to material one light

#

fuck

#

help

#

i cant see

prisma wave
#

ew

unkempt tangle
#

Anyone experience with reverse engineering?

#

Primary with C#, Unity

#

I got this GameRoot.cs code (C#) from Assembly-Charp.dll that are accessing a encrypted/encoded/obfuscated lua script

#

The EngineDll Shared Object is also simply use lual_loadfile() to access the GameRoot.ls

#

Thus drives me nuts ;c

static zealot
#

OMFG. My windows 10 just blue screened

#

I haven't seen this in so long

stuck harbor
#

haha

#

windows 10

prisma wave
#

yikes

unkempt tangle
stuck harbor
#
build {
    doLast {
        println 'Fini'
    }
}
#

πŸ™‚

prisma wave
#

intellectual gradle build

jovial warren
#

Yugi I'm gonna kill you I swear

#

you remember ages and ages ago when we were talking about node enumeration?

#

and you said how checking if the current element was already in the result list wasn't necessary?

#

well guess what

#

client throws an index array out of bounds exception if I have redirect nodes and that check isn't there

cinder flare
#

At least you figured it out eh?

jovial warren
#

I guess

#

still gotta figure out why LP's permission checks are fucked

stuck harbor
#

lol

#

imagine using euros

#

who need a 'stable currency' when u can use pounds

oblique heath
#

dong check came, bread is on me tonight

frigid badge
#

πŸ˜‚πŸ˜‚

lunar cypress
#

bread for 1.82€

stuck harbor
#

cheap

#

for London that would be cheap af

lunar cypress
#

seriously?

stuck harbor
#

everything is expensive in London and I don't even live there

lunar cypress
#

small breads cost like 15 cents a piece here

stuck harbor
#

christ

#

its like 1 pound here

unkempt tangle
#

:'C

cinder flare
#

Yikes imagine being bri ish

stuck harbor
#

shut

prisma wave
#

nah youve got a point

hot hull
#

He's got a great point, imagine being bri ish

lavish notch
onyx loom
#

too far frosty

#

😠

quiet depot
#

lol

#

cheap

#

healthcare is free in aus

lavish notch
hot hull
#

lmao

quiet depot
#

no because I know nothing about them

#

I don't know anything about healthcare either

#

my statement was preceded by a google

lavish notch
quiet depot
#

yeah

#

well

#

what's it like all the way down there?

hot hull
#

We 35/36th

#

sadge

stuck harbor
#

meh

#

that is per capita

jovial warren
#

you said the if (element in result) continue check probably wasn't necessary

old wyvern
#

In the bfs?

jovial warren
#

yeah

old wyvern
#

Yes it isnt necessary

#

Your not gonna visit nodes twice

jovial warren
#

if I don't have it, the client gets an index array out of bounds exception when processing it

old wyvern
#

Show me what you have rn please

jovial warren
#

literally, I added that line and it works now

#

gimme a min

old wyvern
#

Sure

jovial warren
#
    private fun RootCommandNode<*>.enumerate(): Map<CommandNode<*>, Int> {
        val result = mutableMapOf<CommandNode<*>, Int>()
        val queue = ArrayDeque<CommandNode<*>>()
        queue += this

        while (queue.isNotEmpty()) {
            val element = queue.removeFirst()
            if (element in result) continue
            val size = result.size
            result[element] = size
            queue += element.children
            if (element.redirect != null) queue += element.redirect
        }

        return result
    }
prisma wave
#

ew

jovial warren
old wyvern
#

Check what item it readds

#

That might mean you have some node connected to 2 parent nodes for some reason

#

in the in check try printing the overlap out

jovial warren
#

<literal luckperms>

#

registration of commands btw: ```kotlin
override fun register(command: Command) {
val commandNode = dispatcher.register(
literal<Sender>(command.name)
.executes { execute(command, it) }
.then(argument<Sender, String>("args", greedyString()).executes { execute(command, it) })
)

    command.aliases.forEach { dispatcher.register(literal<Sender>(it).redirect(commandNode)) }
}
old wyvern
#

Maybe aliases

jovial warren
#

yeah maybe

old wyvern
#

Does brigadier use diff nodes for aliases?

jovial warren
#

they're just literal nodes that redirect to other literal nodes

old wyvern
#

ah

jovial warren
#

that's what redirect does

old wyvern
#

Makes sense

jovial warren
#

I'm nervous lol

ocean quartz
#

Isn't it a bit too early for a big plugin to want to implement Krypton?
I mean i can understand once it's ready to use but it's not even usable yet

jovial warren
#

true

#

I mean, Krypton keeps growing and growing

ocean quartz
#

Yeah but think of it from LP's perspective, they'll have to support a new module that none of it's users will use

jovial warren
#

nah, I said that I'll fully maintain it myself

winter iron
#

Is sending EntityEquipment packets async bad? I don't think it would be since its just a visual

prisma wave
#

Any packet can be sent async afaik

jovial warren
#

yeah you can send packets async

winter iron
#

good good

jovial warren
#

you just can't update stuff async

winter iron
#

ye

#

thats fine

#

just gonna send packets on move event async then

jovial warren
#

I'm gonna add support for tab completions now I think

#

I love how I'm just avoiding the things that are annoying that I should be working on and working on things that are easy but aren't really that important lol

#

like block breaking πŸ₯²

cinder flare
jovial warren
#

or fixing allocations

cinder flare
#

allocations are overrated

#

my 7 million longs give me comfort

jovial warren
#

lol

cinder flare
#

they're like a cozy blanket when I sleep

jovial warren
#

let me try just skipping any longs that are 0

cinder flare
#

ooh that would probably help a little

prisma wave
#

rust i64 actually uses 10x less memory than java longs

old wyvern
#

I mean if we all work on plugins for Krypton, it may become usable at some point with enough supporting plugins

cinder flare
#

haha

#

im sure it can't be too hard to port stuff to Krypton?

#

it's very similar just a few things are different

stuck harbor
#

famous last words

old wyvern
#

With some plugins, yes, but most are just a mess and would require a rewrite

jovial warren
cinder flare
#

and it'll probably be more enjoyable to work with yeah lol