#dev-general

1 messages ยท Page 437 of 1

prisma wave
#

aren't clojure lists O(n) lookup as well?

onyx loom
#

epic johnny

lunar cypress
#

no clojure vectors aren't

onyx loom
#

what can i say, my pc best pc (totally)

static zealot
#

Worst thing: malware xD

old wyvern
#

This should've been the language selection... but... its something

lunar cypress
#

They should be O(log n)

ocean quartz
#

What are you using for benchmarking, Johnny?

lunar cypress
#

jmh

prisma wave
#

Oh wow

#

That's quite impressive then

ocean quartz
#

Tyty

lunar cypress
#

But I'll have to investigate there because it shouldn't be able to get much simpler than arraylist lookup

#

Anyone more experienced with python data science stuff and can recommend a library to graph data + a quickstart?

prisma wave
#

Matplotlib is supposed to be good

lunar cypress
#

something is seriously wrong with ArrayList

#

the results get more absurd

#

Removing 1M elements takes 20 (!) seconds

onyx loom
#

๐Ÿฅถ

lunar cypress
#

while for the persistent ones it's around 1 second

#

can't be right

humble silo
#

were you debugging while checking that?

lunar cypress
#

this is definitely an outlier though

old wyvern
#

Lookup as in fetching value at a index right?

lunar cypress
#

gotta run that again

lunar cypress
old wyvern
#

Wow

#

But

#

That makes no sense

#

How is java managing to be slower

onyx loom
#

lmao

lunar cypress
#

what java version btw kaliber?

onyx loom
#

should be running on 11

oak raft
#

should I learn clojure before kotlin

old wyvern
#

Yes!

onyx loom
#

yeah 11

old wyvern
#

Also

#

Learn Haskell

oak raft
#

all before kotlin?

old wyvern
#

Yes

#

Kotlin is evil

onyx loom
#

openjdk too if thats of any note to u johnny, probably not

oak raft
#

Ok! ๐Ÿ‘

lunar cypress
prisma wave
lunar cypress
#

let me see if I consume the results correctly

prisma wave
#

Clojure is an interesting language

onyx loom
#

clojure is faster than java :kek:

prisma wave
#

Yep

old wyvern
#

Wait

oak raft
#

Once elara comes out I'm dropping everything to learn that though, obviously.

old wyvern
#

How many elements was it with?

#

The initial test you posted the result of

#

1M elemn?

prisma wave
#

When the dynamically typed language outperforms java

lunar cypress
onyx loom
#

ill run it again tomorrow johnny if u want

#

the more the merrier right

prisma wave
#

I'll run on my VPS if you want

lunar cypress
#

Yes, but not before I investigate in some places

prisma wave
#

Okay

lunar cypress
#

Your VPS probably has shit single core performance like mine

onyx loom
#

all for science ๐Ÿ˜Ž

prisma wave
lunar cypress
prisma wave
#

I've also got an Azure VPS with a dual core Xeon

#

Can't remember which one

onyx loom
#

yea can do that then

oblique heath
#

x5670 ๐Ÿ˜Ž

lunar cypress
#

includes.set(listOf("JavaRemoval.benchmarkArrayList"))
you can put that in the jmh block in build.gradle.kts

#

see if the result is still 20 seconds

#

for addition clojure's vector is pretty much on par with ArrayList

prisma wave
#

Impressive

lunar cypress
#

it seems the other collections are the places where Java clearly outperforms the others

#

well, apart from stacks and queues

prisma wave
#

Are vectors roughly equivalent to a TreeSet?

lunar cypress
#

no, they're the ArrayList equivalent

prisma wave
#

Oh right

#

But implemented as a tree

lunar cypress
#

yeah, for structure sharing

#

the other results look about what I anticipated

steel heart
#

any field that is mutated across more than one thread should in principle be volatile?

lunar cypress
#

kotlin's persistent collections are fast too though, holy cow

prisma wave
#

Kotlin... Good?

oblique heath
#

does anybody have any thoughts on how i should handle this:

I have a master server and some slave servers which the master deploys.

  • I can send messages from master <-> slave using server sockets
    • each slave has a specific open port that the master keeps track of, used for master -> slave
  • the master has an ID for each slave but the slaves don't know it

I need the slaves to know their own id, but they take a random amount of time to spin up so I don't think I can just send them a message as soon as I create them.

half harness
prisma wave
#

Idk if that's a good practice or not

#

But

oblique heath
old wyvern
#

How many elements john?

oblique heath
#

the only way it knows which slave messages it is if they send their ID

lunar cypress
#

well, + 1000 technically

onyx loom
#

im sensing something is wrong here

prisma wave
oblique heath
lunar cypress
old wyvern
#

Maybe theres some compile time optimization, otherwise very odd that o(logn) manages to execute faster than o(1)

oblique heath
#

each slave has a specific open port that the master keeps track of over which the master can send them messages

lunar cypress
onyx loom
#

ok yeah this is better, i was running it through IJ instead of console

old wyvern
#

Alrighty

prisma wave
oblique heath
#

each slave is a player's server

#

i need player A to get his own server every time

hot hull
#

Oh y'all got slaves?

#

Where does one get one

oblique heath
#

heck yea

prisma wave
#

Hmm

hot hull
#

You making a master -> slave relationship?

prisma wave
#

Can't the slave store its own id somewhere

hot hull
#

Wouldn't that make the most sense?

prisma wave
#

And if you're creating a new one, give it an id to store

oblique heath
#

i was thinking I could try to pass the ID in on creation of the slave, because that makes the most sense yeah

prisma wave
#

Seems like the best way

oblique heath
#

but i'll have to get a little... weird

#

i think

#

like, to the degree of having to put a text file into the slave's directory when launching it

prisma wave
#

if id is stored somewhere:
tell master what id is
else:
ask master for a new id # this implies it's a new instance with no user specific data

oblique heath
#

actually now that i think about it

#

putting a text file wouldn't be that bad

#

maybe...

prisma wave
#

I can kinda see why github want to discourage "master", this is getting a bit weird ๐Ÿ‘€

#

"please give me a new id master"

hot hull
#

How is that weird

old wyvern
#

Lol

oblique heath
hot hull
#

We back in the ancient times

oblique heath
#

since i bind a specific world directory to them via docker

prisma wave
#

Hmm

#

just create them with the id then?

#

If you're using docker pass the id as an environment variable or something

old wyvern
#

Are you planning to have the slave provide its own id to the master?

oblique heath
#

yeah further down the line

#

when the slave talks to the master it needs to give it's id

#

is how i have it set up

oblique heath
old wyvern
#

There would be an issue with that tho

oblique heath
#

i have no idea how to use environment variables right now, so i'll need to look into that

#

actually wait

old wyvern
#

Can the player modify the slaves source? What if you receive a request from some other machine with the id of one of your slaves?

oblique heath
#

the way i have it set up is a request to the server consists of an action, and the target of the action

#

so whatever ID is passed in is what the server acts on, essentially

old wyvern
#

Yes but so anyone can act as any other slave

oblique heath
#

it's a bit less orthagonal than that but thats the gist

#

yes

#

i suppose

old wyvern
#

Isnt that a vulnerability?

oblique heath
#

why would it be

old wyvern
#

Because then the point of an identity is lost

#

Wouldnt you want some form of authorization instead?

oblique heath
#

well there's no risk of using an identity maliciously

#

these are all servers running in a private network

old wyvern
#

So it accepts only internal connections?

oblique heath
#

yeah

old wyvern
#

Alright

oblique heath
#

not to mention my messaging service uses RSA keys so you'd need that in order to send a valid message in the first place

onyx loom
#

it is running it tho so im really confused as to why its taking so long, its taking 10-30% of cpu

lunar cypress
onyx loom
#

and yes i did add the includes.set(blah blah) in jmh block

half harness
#

Any good scoreboard library? the one i currently use doesn't appear to work :/

lunar cypress
#

It should at least tell you what it's doing currently

#

are you up to date with the remote?

onyx loom
#

yeah i remember seeing that when i first ran it earlier

#

ah if u just updated then probably not

#

ill try that then

lunar cypress
#

I didn't change anything special

onyx loom
#

better than nothing

lunar cypress
#

oh wtf

#

did I forget to update the plugin version?

onyx loom
#

๐Ÿฅฒ

lunar cypress
#

Or did I accidentally revert it

oblique heath
lunar cypress
#

Apparently I actually forgot it

oblique heath
#

is it a bona fide environment variable?

lunar cypress
#

I actually forgot it

#

pull again kali

prisma wave
#

I would like to see java do this

oblique heath
#

๐Ÿ˜ฎ

onyx loom
#

working now johnny lmao

lunar cypress
#

takes incredibly long for me too

#
@Benchmark
public void benchmarkArrayList(ArrayListState state) {
    state.arrayList.remove(randomIndex(state.arrayList.size()));
}
```this is literally it
#

It's called 1M times

onyx loom
#

all iterations were 20s each wtf

lunar cypress
#

arraylist what are you doing

onyx loom
#

its having a stroke

#

all of the time

#

deformed

lunar cypress
#

lmao my server takes 110 seconds each iteration

onyx loom
#

pain

lunar cypress
#

Oh I see why

#

I think

#

remove performs an array copy every time

onyx loom
#

o wth????

lunar cypress
#

Of all the elements that come after the index

obtuse gale
#

Why

lunar cypress
#

So that's a juicer with 1M elements

obtuse gale
#

That's so fucking dumb

onyx loom
#

lmfao

obtuse gale
#

That's the dumbest shit I've ever heard

#

No cap

lunar cypress
#

for shifting

obtuse gale
#

On arbitrary indexes or sequentially?

lunar cypress
#

random indices

obtuse gale
#

Ah okay it makes sense now lol

lunar cypress
#

Idk what the persistent equivalents do but they're more than 20 times faster

onyx loom
#

bruh

prisma wave
#

Clojure is just better

#

Undeniable

onyx loom
#

clearly

#

and kotlin ๐Ÿฅบ

lunar cypress
#

wait kotlin removal is missing

#

for vectors

#

Oh no

#

probably errors somewhere

onyx loom
#

that mightve been the failed test then ig

lunar cypress
#

thought I'd caught them all

onyx loom
lunar cypress
#

The kotlin one is unresponsive for me

#

Idk what it's doing

onyx loom
#

this is quite interesting

lunar cypress
#

Ok can you try KotlinRemoval.benchmarkVector in isolation? Do you get any response?

#

For me it's stuck in warmup it seems

#

this may be one reason why this is taking so long

#

probably times out after 10 minutes... for 45 iterations....

#

wait no that can't be

#

probably over after the first one

onyx loom
#

ill leave it running while i have my dinner, hopefully it works

lunar cypress
#

It's copying too much lmao

sweet cipher
#

How do I add a dependency to a plugin with gradle and have it compile with it?

ocean quartz
#

Set the dependency as implementation and use the shadow plugin

half harness
#

implementation & shadowJar

sweet cipher
#

Oh Matt you are here, its for mf-gui lol

#

I tried that, and it says the class is not found

half harness
#

did you shade and relocate?

#

and use gradle shadowJar

sweet cipher
#

I'll show what I did

ocean quartz
#

Yeah make sure you're building with shadowJar

#

Also i am always here

half harness
#

no u aren't

ocean quartz
#

always

old wyvern
half harness
#

smh

#

also is the gradle plugin compat with build.gradle?

ocean quartz
sweet cipher
#

repositories {
  mavenCentral()
}

dependencies {
    implementation "me.mattstudios.utils:matt-framework-gui:2.0.2"
}

apply plugin: 'com.github.johnrengelman.shadow'

shadowJar {
    relocate 'me.mattstudios.mfgui', 'me.masterofthefish'
}
half harness
#

also, relocate it to like me.masterofthefish.mfgui

ocean quartz
sweet cipher
#

gradle jar

sweet cipher
ocean quartz
#

That's the issue

sweet cipher
#

Oh

ocean quartz
#

You need to do gradle shadowJar

sweet cipher
#

ohh

#

Thank you

onyx loom
#

@lunar cypress this is totally fine right? LUL

sweet cipher
#

I've barely used gradle lol

half harness
onyx loom
#

yeah kotlin one must be borked

sweet cipher
#

Thank you

lunar cypress
#

oof

#

I think if we want results for kotlin we need to adjust some things

onyx loom
#

just maybe ๐Ÿฅฒ

lunar cypress
#

I think something else is definitely wrong though, it can't just be the bad implementation

#

can it?

ocean quartz
#

Codacy and the passive aggressive smile

onyx loom
#

๐Ÿฅฒ

obtuse gale
#

c:

onyx loom
#

that looks like its gonna be hella slow johnny, but it should atleast run yeah

lunar cypress
#

kotlin gets baby treatment

ocean quartz
#

Use explicit scoping instead of the default package private level
But I want it to be package private ๐Ÿ˜ฉ

lunar cypress
#

50k removals instead of 1M?

#

๐Ÿฅฒ

onyx loom
#

lmao sounds good enough

lunar cypress
#

But that's bad because we can't properly compare it to the others anymore

old wyvern
#

Make all of them 50k

lunar cypress
#

idk how representative that is

#

still taking ages with 50k removals ๐Ÿฅฒ

#

jfc

#

90 seconds

#

nah man

onyx loom
#

it works with 50k?

lunar cypress
#

I think Kotlin's gotta sit this one out

#

yeah

#

You can try by changing the global constants in Global.java

#

But if the difference is that huge it will render the results practically useless

#

Well I guess there technically are only Kotlin, Java and PColl for this one

old wyvern
#

It is with the normal kotlin collections?

#

Or the persistent ones?

onyx loom
#

persistent

lunar cypress
#

persistent

old wyvern
#

oh

prisma wave
#

should've guessed

#

kotlin bad

onyx loom
#

lmao

#

2 seconds per 50k removals with kotlin removal ๐Ÿฅถ

#

that is god awful

prisma wave
#

๐Ÿ˜ก

onyx loom
#
Benchmark                      Mode  Cnt     Score    Error  Units
KotlinRemoval.benchmarkVector    ss   30  2311.979 โ–’ 12.612  ms/op```
lunar cypress
#

God damn kotlin really has to fix this function

old wyvern
#

Um

#

What should we use for normal discord emotes?

#

Like ๐Ÿ‡ธ

#

in bots

#

The normal format used for the server specific ones dont seem to work

#

msg @compact perch

boreal needle
onyx loom
#

johnny its not letting me run it with that โ˜น๏ธ

old wyvern
obtuse gale
onyx loom
#

no

onyx loom
#

pcollections and java bad

obtuse gale
#

Minor details

#

Same thing

onyx loom
#
    includes.set(listOf(
        "KotlinRemoval.benchmarkVector",
        "PCollectionsRemoval.benchmarkVector",
        "JavaRemoval.benchmarkArrayList"
    ))```
#

am i stoopid or what

lunar cypress
#

verbosity.set("EXTRA")

#

it's time

#

oof

#

wtf is it doing

#

Excluding: com.github.johnnyjayjay.benchmarks.pcoll.PCollectionsRemoval.benchmarkVector, does not match PCollectionsRemoval.benchmarkVector,JavaRemoval.benchmarkArrayList,KotlinRemoval.benchmarkVector ???

#

Does it concatenate the includes??

onyx loom
#

lmao

jovial warren
lunar cypress
#

put an | between them instead, single string

jovial warren
#

they get converted automatically by Discord to their respective emotes

unkempt tangle
#

Anyone have experience with protobuf?

old wyvern
#

Yea got it bard

jovial warren
#

also, initial pass on fixing block breaking is out btw ๐Ÿ™‚

old wyvern
prisma wave
#

๐Ÿ˜ฎ

#

FRS?

old wyvern
#

Fastest, Reverse, Shortest

prisma wave
#

oh nice!

lunar cypress
#

i feel like this might get annoying for more experienced users, maybe you can add a command to set everything immediately

old wyvern
#

yes there is one

#

Using the quick flag sets to defaults and starts the game

lunar cypress
#

slash command? poggers

old wyvern
#

sadly discord-haskell doesnt suppourt it

#

and the author said he isnt adding it

lunar cypress
#

lol

prisma wave
#

you could do it "The Hard Wayโ„ข๏ธ"

lunar cypress
#

btw

old wyvern
lunar cypress
#

new discord interactions with buttons dropped apparently

old wyvern
#

There we go

onyx loom
#
Benchmark                                          Mode  Cnt     Score    Error  Units
c.g.j.b.java.JavaRemoval.benchmarkArrayList          ss   30    48.370 โ–’  0.602  ms/op
c.g.j.b.kotlin.KotlinRemoval.benchmarkVector         ss   30  2335.234 โ–’ 25.243  ms/op
c.g.j.b.pcoll.PCollectionsRemoval.benchmarkVector    ss   30    31.560 โ–’  2.741  ms/op

what in the fuck kotlin thonking

old wyvern
#

posted wrong ss before

lunar cypress
#

lol holy cow

onyx loom
#

thats 50k ops still btw

jovial warren
#

wait what's this?

lunar cypress
#

kotlin persistent collections

jovial warren
#

show me the way to this repository

visual lava
#

Does anyone know why in chat deluxe chat shows the place holder as %player% etc

lunar cypress
jovial warren
#

take a star

onyx loom
#

bardy arent u using kotlin collections lib in krypton too? ๐Ÿ˜ฌ

jovial warren
onyx loom
#

ah k

jovial warren
#

if you mean kotlinx.collections.immutable

onyx loom
#

i do mean that yes

obtuse gale
#

is discord having a stroke with embeds or something?

onyx loom
#

yes ๐Ÿฅฒ

#

discord is dying

old wyvern
jovial warren
#

yeah ik

hot hull
#

Yugi

old wyvern
#

Yea?

hot hull
#

Suggest that to be included into barry

obtuse gale
#

lol

jovial warren
#

I really gotta learn how JMH works lol

hot hull
#

Ofc other languages as well but yea

onyx loom
#

this looks pretty cool bardy cant lie

old wyvern
#

It suppourts all languages frost

#

I actually gave cube a js lib for this

#

But he's busy

hot hull
#

Bardy, quick question, how far/what stage is the plugin part of krypton at?

onyx loom
#

FJ to krypton when

jovial warren
#

ETA 2 hours

old wyvern
#

@quiet depot Could we get hasklash on here after update?

jovial warren
#

๐Ÿฅฒ

jovial warren
#

you can make plugins that send commands and stuff

hot hull
#

I want to debug/benchmark some plugins and krypton would be nice since I can add some methods to print execution time if I can access the current ticking plugins execution task

hot hull
#

Issue is I'd have to convert the existing one to krypton, which is yikes

lunar cypress
old wyvern
#

Yea that works

#

I dont really have a instance running myself tbh

onyx loom
#

yugi put hacks in the bot

old wyvern
#

the one on dev den is hosted on bms vps

hot hull
#

Basically I want to see how long an execution takes when a plugins task is ticked, if that makes any sense whatsoever

jovial warren
#

idk what you mean by "current ticking plugin's execution task"

jovial warren
#

Krypton doesn't have a sync scheduler btw

steel heart
#

=clash

old wyvern
#

Its not here conc

hot hull
#

Ah, not of much use then I presume

old wyvern
#

I can invite you to the test server if you want tho

#

lol

dawn hinge
#

It'll work eventually con

jovial warren
#

what exactly do you want to test?

#

there's an async scheduler that is backed by an SES

hot hull
#

Execution time for all tasks within a plugin

jovial warren
#

can Bukkit do that?

hot hull
#

Without actually adding it to each plugin individually myself

#

No clue

jovial warren
#

yeah I doubt anything can do that

#

since how would you measure that?

hot hull
#

No clue man

hot hull
#

And no, not world gen, something else

jovial warren
#

FJ is one of the rare plugins that might actually work in Krypton

#

since Krypton has a join event

#

called at a weird time though, and no way yet to set the actual message sent lol

hot hull
#

Code is on gh if you want to test kek

jovial warren
#

maybe I should add a way to do that

hot hull
#

I go now, one more day

onyx loom
#

what is it frosty

#

i cba to check

jovial warren
#

is it actually in Kotlin?

hot hull
#

Yes

jovial warren
#

I thought you converted it back

hot hull
#

Idk, can't remember

jovial warren
#

also, the testing for plugins has been very, very minimal

#

and when I say that, I mean I made a test plugin once to test a few basic things and that's it

#

haven't tested block updating yet

#

or like 99% of the rest of the API

#

on that note actually, if anyone fancies trying out the API, be my guest, I could do with some test subjects xD

hot hull
#

If it doesn't work, blame the user

jovial warren
#

exactly

prisma wave
#

not bad

onyx loom
#

ooo

#

stonks

static zealot
#

oh hell yeah @onyx loom I got banned 30 minutes xD

#

switching it here so I don't break the chain

onyx loom
#

didnt ask

static zealot
#

well I didn't ask either (if you asked)

onyx loom
#

o

#

fat uno reverse card there

kind lantern
#

can anyone help me with smth
it isnt exactly mc related tho

obtuse gale
#

depends

#

what is it

kind lantern
#

can i dm u it

obtuse gale
#

no

kind lantern
#

ok

obtuse gale
#

what is it

kind lantern
#

LOL

#

so

static zealot
kind lantern
#

my main discord account got the verification thing

#

but i dont have a phone

#

number

#

i was wondering if someone could verify it for me

obtuse gale
#

uh I really doubt anyone with more than 3 brain cells will give their phone number to a complete stranger lol

kind lantern
#

rip

#

is there another way

onyx loom
#

what is with people coming in here and asking this

obtuse gale
#

idk

#

seems to be a recurring theme

onyx loom
#

yup

fallen ruin
#

Does anyone here know datapacks?

obtuse gale
#

what about them?

fallen ruin
#

I need help getting a scoreboard to work

#
tellraw @a [{"text":"TNS Sapling Counter sucessfully loaded!","color":"aqua"}]

team add default
scoreboard objectives add current_sb dummy

scoreboard objectives add SaplingsPlanted minecraft.used:oak_sapling 
scoreboard objectives add SaplingsPlanted minecraft.used:birch_sapling
scoreboard objectives add SaplingsPlanted minecraft.used:acacia_sapling
scoreboard objectives add SaplingsPlanted minecraft.used:jungle_sapling
scoreboard objectives add SaplingsPlanted minecraft.used:spruce_sapling
scoreboard objectives add SaplingsPlanted minecraft.used:dark_oak_sapling

scoreboard objectives add .SaplingsPlanted trigger


execute if entity @a[scores={.SaplingsPlanted=1..}] run scoreboard objectives setdisplay sidebar SaplingsPlanted

execute if score value current_sb matches ..-1 run scoreboard players set value current_sb -1```
#

I am trying to get one point added to the user if they place a sapling

obtuse gale
#

hm

#

tbh you might be better off asking in #minecraft lol or in the fabric or minecraft discords themselves, I personally doubt many people in here know that well enough

dawn hinge
#

I was thinking about giving prim my phone number, he left so nvm

boreal needle
#

youve been going for quite a while there conclure

#

do i need to brace myself

steel heart
#

Okay I need big brain help now.

Let's assume I make a combat log system which works like this:
People have the ability to pvp each other. Once someone pvp another player they both get into a combat status where they should not log out (if they do they lose their inventory). The combat status will be lasting for around 30 seconds. During that time the player who has it will not be able to go /spawn etc.

To implement it I thought about using epoch time and then compare between two different timestamps. Which would work good. Now let's say I want to also add a countdown on a sidebar scoreboard which would display how long time it's left till the combat status runs out. Of course in this case I would have to actually add some sort of repeating task. But then here's the two alternatives I could go with:

  1. I only use the repeating task for the combat status and then keep the time comparison implementation to check whether the player is actually in combat status.

  2. I don't use the time comparison implementation and instead we store a boolean for each player (or like in a set). Then whenever the player enters pvp we add them to the set and also start our repeating task. Once our repeating task is done, it will be responsible for removing the player from the combat status set. So here we would delegate all the work to that repeating task instead of depending on time comparison.

#

jesus

#

why did I write so much

boreal needle
#

it reading time

#

could you run a repeating task with a countdown builtin to it thatll disable itself and take them out of pvp mode when it hits 0

steel heart
#

yeah that would be option 2

boreal needle
#

oh yeah

#

imo that would work better

#

im not exactly reliable tho

steel heart
#

yeah it would remove awkwardness I guess

half harness
#

cba reading options, just make it a Set<UUID>, and in PlayerDeathEvent and PlayerQuitEvent check if the player is on the set, if it is, remove, and on quit, clear inventory.
When combat logged, make a BukkitScheduler#runTaskLater for 600 ticks, if the player is in the set, then "un-combat log", if not, then do nothing

#

oh for the countdown

steel heart
#

thats option 2 as well

half harness
#

you can make it a Map<UUID, Long>

#

okay

#

then option 2

steel heart
#

yeah but basically dont use time comparison

boreal needle
#

ayy i made a suggestion that might be actually somewhat correct for once

#

:D

half harness
#

you said repeating task in option 2

steel heart
#

yeah

half harness
#

do you mean runTaskTimer?

#

why timer?

steel heart
#

yes its a repeating task/ rescheduling task

half harness
#

actually you can just do Map<UUID, Map.Entry<Long, BukkitTask>>

#

then cancel task if player leaves and stuff

#

in case they rejoin

#

and the task is still in queue

steel heart
#

yeah though as of now I might go with a boolean per player or smtng

half harness
#

once

#

for 600 ticks later

steel heart
#

I'm implementing a visual countdown

half harness
#

placeholderapi?

steel heart
#

?

half harness
#

or ur own scoreboard

steel heart
#

uh my own lol

half harness
#

oh

steel heart
#

u want source?

#

lol

#

(its priv so I will have to inv u)

half harness
#

uh

steel heart
#

I am warning you

#

but ye

#

lol

half harness
#

๐Ÿ‘€

#

warning? ๐Ÿ‘€

steel heart
#

Sensitive programmers are recommended to not accept this invitation

half harness
#

o

#

source for the code in general, or the scoreboard source?

steel heart
#

all classes then

#

idk can u even share like a package only

half harness
#

no i meant like the sharing reason

#

like r u sharing so i can see scoreboard or the combat log

#

๐Ÿ‘€

steel heart
#

uh

half harness
#

lol

steel heart
#

I thought of sharing gh repo

half harness
#

i need scoreboard lib ๐Ÿ˜ฉ

prisma wave
#

ok

steel heart
#

Kiteboard has an api I think

#

then we have spigot apis scoreboard interface

#

works fairly decent

half harness
#

isn't Kiteboard a plugin?

steel heart
#

ye

#

also api

half harness
#

i dont want to force users to use a specific scoreboard plugin ;-;

steel heart
#

true I guess

ocean quartz
#

O

half harness
#

rip Niall

obtuse gale
half harness
#

@ocean quartz

obtuse gale
#

It's a bit eh though

steel heart
half harness
#

hm

#

i swear I've seen this before

obtuse gale
#

TigerHix hmm

#

Sounds familiar

steel heart
#

you know him?

half harness
#

does it support 1.8?

#

probably does

ocean quartz
#

Might not, that's very old

half harness
#

extremely outdated

ocean quartz
#

Oh wait

half harness
steel heart
half harness
steel heart
#

well else just ask Matt to do it

forest pecan
#

lol look at my computer science exam requirements

#

this is too funny

#

"No Penalty"

steel heart
#

lol

half harness
forest pecan
#

"= instead of == and vice versa"

ocean quartz
#

Dkim to a 6yo repository "extremely outdated"
Dkim to 1.8 (7yo) "Best version ever!!"

steel heart
#

ok oof dkim

obtuse gale
forest pecan
#

that aint a library or an api

#

thats a plugin

half harness
#

it can be shaded

#

apparently

forest pecan
obtuse gale
#

That is literally a cause of bugs

half harness
#

jeez

#

stop spamming

obtuse gale
#

Lol did he get muted?

forest pecan
#

strangely, the exam is stricter about multiple choice

half harness
forest pecan
#

He did

#

LMAO

half harness
#

WIAT

#

LMAO

#

@obtuse gale

#

LOL

#

HE DID

forest pecan
#

He can't see this channel

#

lol

#

It's okay. We've all been there before

#

๐Ÿฅฒ

ocean quartz
#

Smh

half harness
#

๐Ÿฅฒ

#

i forgot why i got muted

#

oh wait yea

#

it was in #voice-talk

forest pecan
#

my mute wasn't even on purpose lmao

#

i used a command accidently

#

in the wrong channel

#

and discord wasnt registering the sending message

#

i was like wtf lmao

steel heart
#

lol

#

remember when efe got muted

obtuse gale
#

Yeah like right now

half harness
#

hes muted rn

ocean quartz
#

@obtuse gale Smh

#

Talk

half harness
#

well

#

not anymore

obtuse gale
#

Lol

steel heart
#

lol

heady birch
#

?

forest pecan
#

wait how did he get unmuted

#

@ocean quartz did you tell a mod

#

to unmute

obtuse gale
#

This kid is gonna get himself banned from discord...

ocean quartz
# heady birch ?

Sorry Niall I didn't mean to ping you, was trying to do @Niall because they were talking about Kiteboard

ocean quartz
forest pecan
#

Lemmo?

#

Gaby?

#

lol

ocean quartz
#

Robi

heady birch
#

No problemo

forest pecan
#

Oh

#

weirdchamp

#

lol

#

i dont see him in here often

obtuse gale
#

Well did you?

half harness
#

too old

obtuse gale
#

Why am I not surprised

lunar cypress
#

@old wyvern how big was your manjaro image on your boot device?

#

wtf

forest pecan
#

doesnt codemc provide free maven hosting

lunar cypress
#

I don't want to be dark blue

obtuse gale
#

Yooo

#

You evolved

half harness
#

big boi now

obtuse gale
#

I liked the T3 color :(

#

??

steel heart
#

@half harness

#

challenge

#

code a scoreboard lib

half harness
#

.

steel heart
#

no fr

#

easy fame

#

dkims awesome scoreboard

forest pecan
#

or code a media library

#

/s

onyx loom
#

mf-scoreboard

forest pecan
#

dkim-scoreboard

half harness
#

why did plusOne go to thonking

obtuse gale
steel heart
#

mf-bukkit

#

when?

onyx loom
#

๐Ÿ˜ณ

half harness
#

wait

ocean quartz
#

no
I make libs based on things I'd use, doubt i'd ever use scoreboards, they are pretty annoying lol

onyx loom
#

kek

obtuse gale
#

Lol

forest pecan
#

they are annoying cause they flash

#

right

steel heart
ocean quartz
#

No, they are just awkward, who likes playing with a giant thing on the right size, it feels out of place

jovial warren
forest pecan
#

lmao

half harness
#

maybe if ur gui scale is on auto

#

then yea

steel heart
#

๐Ÿ‘€

half harness
#

but no one plays with that

jovial warren
#

what is wrong with Bukkit's scoreboard system btw?

half harness
#

everythings huge

jovial warren
#

I wanna know so I can fix it in Krypton

ocean quartz
steel heart
#

bbg tbf

#

the javadoccing is terrible

#

like

jovial warren
#

I've seen it break 100 times over

steel heart
#

d;spigot Scoreboard#registerEntry

ruby craterBOT
#
@Nullable
Scoreboard getScoreboard()```
Description:

Gets the scoreboard for the associated objective.

Returns:

the owning objective's scoreboard, or null if it has been unregistered

obtuse gale
#

I never had issues with it though

half harness
steel heart
#

d;spigot Scoreboard#getEntry

ruby craterBOT
#
int getScore()
throws IllegalStateException```
Description:

Gets the current score

Returns:

the current score

Throws:

IllegalStateException - if the associated objective has been unregistered

obtuse gale
#

๐Ÿคท

steel heart
#

wait where is it

half harness
steel heart
#

d;spigot Objective#registerEntry

ruby craterBOT
#
void setRenderType(@NotNull RenderType renderType)
throws IllegalStateException```
Description:

Sets manner in which this objective will be rendered.

Parameters:

renderType - new render type

Throws:

IllegalStateException - if this objective has been unregistered

steel heart
#

here

#

wait

#

wat

forest pecan
onyx loom
#

ha!

jovial warren
#

I want a way that plugins such as KiteBoard and FeatherBoard could not have to use NMS

steel heart
#

anyways it contains stupid shit like "oh this returns the score" when the method says getScore

#

I guess no surprise but still annoying as hell

forest pecan
#

do you guys javadoc getters/setters lol

ocean quartz
# half harness

Look how much cluster you have on your screen, giant scoreboard, giant bossbar, giant left thingy that is basically useless

steel heart
#

pulse if it needs

onyx loom
#

keystrokes mod kekw

half harness
#

and well yea the memory thing is useless idk why i have it

ocean quartz
#

But it is, you lose like 20% of your screen with just hud

onyx loom
#

i need to see my own key strokes !!!

forest pecan
#

kaliber did you buy every plugin possible

#

lol

onyx loom
#

eh

half harness
#

lol

onyx loom
#

wym

forest pecan
#

when i see your roles

half harness
#

idea: make Tab, Teams, and Scoreboard be different things

forest pecan
#

i see like 20

onyx loom
#

oh right

ocean quartz
#

Idea: remove scoreboards

onyx loom
#

well ive bought all of clips plugins as i used to have a server

#
  • voteparty
jovial warren
#

also, you can say goodbye to BS like Bukkit.createScoreboard or whatever it is because I think I'm just gonna make all the scoreboard stuff data classes

half harness
#

always confuses me how scoreboards and tabs are the same thing sorta

forest pecan
#

oh lmao

onyx loom
#

im only missing guilds role โ˜น๏ธ

steel heart
#

its actually an instance method ScoreboardManager#getNewScoreboard()

half harness
prisma wave
onyx loom
#

lmfao

steel heart
#

BM bruh

#

my ears

prisma wave
#

โค๏ธ

jovial warren
#

Bukkit? instance methods? what are those?

forest pecan
#

that is hilarious

#

lmaoo

steel heart
#

lmao

ocean quartz
#

Look at that beautiful jaw line

prisma wave
#

what a chad

lunar cypress
#

๐Ÿ˜ฎ

steel heart
#

though you'd have to call Bukkit.getScoreboardManager() iirc

#

so still not pog

jovial warren
prisma wave
steel heart
#

johnny thats a thing?

static zealot
steel heart
#

wew

lunar cypress
#

yes

steel heart
#

sheeesh

onyx loom
static zealot
#

embeds?

#

or what's that?

lunar cypress
#

nope

prisma wave
forest pecan
#

lol

steel heart
#

new api feature ๐Ÿ˜ฎ

static zealot
#

did they actually add buttons? nice

distant sun
lunar cypress
#

it's "components"

jovial warren
#

how

#

how are those facts

lunar cypress
#
{"content": "hi",
 "nonsense": true,
"components": [{"type": 1, "components": [{"type": 2, "style": 1, "custom_id": "test", "label": "Test Button"}]}]}```
onyx loom
#

because KRYPTON bad NMS GOOD

lunar cypress
jovial warren
#

Krypton good NMS bad

#

that's just facts

ocean quartz
#

You delete the project, change it to gradle and do gradlew shadowJar

jovial warren
#

even if Krypton is trash, at least it's not half obfuscated and filled with inconsistencies that make you go mad

ocean quartz
#

Lol

steel heart
#

ah

lunar cypress
#

no

#

actual button

prisma wave
#

๐Ÿ˜ฎ

forest pecan
#

Krypton bad Kryptonite good

onyx loom
#

what is nonsense lol

lunar cypress
#

If you click it the bot receives an event

steel heart
#

oo

#

thats actually useful

lunar cypress
#

because I wasn't sure initially if this was real

distant sun
#

does jda have that or is a beta feature?

jovial warren
lunar cypress
#

not even beta or alpha

#

It's live, but completely undocumented

#

also only available in dev mode

steel heart
#

wait so normal users wont see a thing?

lunar cypress
#

(not the regular dev mode)

#

so far yes

#

But they'll likely introduce it officially in the near future

steel heart
#

very nice

lavish notch
#

@lunar cypress Can buttons be made by users or only bot accounts?

surreal quarry
#

buttons ๐Ÿ‘€

lavish notch
surreal quarry
#

ooo

#

sexy

arctic juniper
half harness
#

how do i fix this...

onyx loom
half harness
#

what file?

onyx loom
#

idk

#

all of them ๐Ÿ™ƒ

half harness
#

;-;

ocean quartz
#

do smaller commits

lavish notch
#

How do I create the buttons through the bot?

lunar cypress
#

it's in the same category as slash commands

#

I sent an example earlier

#

need to send it to the create message endpoint

lavish notch
#

Does this have to be done directly with the discord api or is there any wrappers that support it?

spring canyon
#

The feature is very new so it's unlikely that any big wrapper already implemented it

steel heart
#

Imagine if that wasnโ€™t the case lol

lunar cypress
#

probably gonna begin implementing it for discljord soon

old wyvern
#

um

#

ghost ping?

#

oh nvm

#

found the msg

old wyvern
#

Atleast that was the consumed size on the usb

#

Altho rufus could have partitioned more than it needed, so not fully sure

#

Wait

#

no

#

only 2.6 Gb

obtuse gale
#

And the "idek what this has anymore" Fefo

old wyvern
ocean quartz
obtuse gale
#

actually I believe I have done more

#

let me find it

old wyvern
#

Also

#

dark blue johnny

#

lol

#

Fefo be typing a paragraph

obtuse gale
#

someone shoot me in the face lol

half harness
#

:/ so i just removed VCS and readded, but now its making be commit every file

#

it completely ignores gitignore

#

and I already googled

#

I think my file got corrupted because of my stupid computer bluescreening

#

๐Ÿ˜ฆ

#

how do I get rid of all that from being committed?

old wyvern
#

Add the gitignore to the change list and try commiting

sweet cipher
#

Remove them from your plugin

half harness
#

it already is

old wyvern
#

The gitignore file

half harness
old wyvern
#

Its not selected for commit

#

It has changes

half harness
#

oh

#

hm

#

wait

lunar cypress
# old wyvern only 2.6 Gb

ok that makes more sense, currently all image flash tools just write like one 140MB file though lol

#

for me

#

and idk why

half harness
#

makes me pull

old wyvern
#

Which one did you use?

half harness
#

and it fails

jovial warren
#

oh btw, I'm currently working on doing a major refactor to Krypton, and I was just thinking, if I want to switch to the style where you have no blank lines between the header and the first property (I'm keeping a blank line in there if the first element is a function), should this also apply to enums?

#

e.g. ```kotlin
enum class MyEnum {
VALUE_ONE,
VALUE_TWO
}

steel heart
#

Ye

jovial warren
half harness
#

I just did git pull https://github.com/dkim19375/Bedwars.git master

jovial warren
#

is your local history different from your remote history?

half harness
#

uh

#

i have no clue

lunar cypress
half harness
#

i just deleted .git

lunar cypress
#

I presume the usb drive is broken somehow

#

But idk how to fix it

#

It works normal outside of that

#

But after flashing it shows up as "Removable usb drive" or something

old wyvern
#

Try formatting it beforehand

lunar cypress
#

Did

old wyvern
#

Thats fine

#

That depends on the name you gave in rufus while burning

#

Did you check if it shows up in the boot menu?

half harness
#

okay

#

ill just store the files

#

and then git clone

lunar cypress
#

I did not however I'm pretty certain that one 140MB file can't be valid

old wyvern
#

Where did you see the 140 mb from?

lunar cypress
#

explorer

old wyvern
#

btw when I connected this usb on windows it didnt show me the whole drive

#

Just part of it

#

It only shows the whole thing on linux

#

I assume it has something to do with the filesystem type

lunar cypress
#

oh, maybe

#

pretty sure it was different for mint though

half harness
#

um

#

new issue

old wyvern
#

Not really sure, but worth a shot I think

half harness
#

how do i commit my files to github? nothing on the changelist...

old wyvern
#

Is the gitignore file present?

half harness
#

yes

#
# Project exclude paths
/.gradle/
/.idea/
old wyvern
#

open a terminal in the project directory and do git add .

half harness
#

i did

#

fatal: not a git repository (or any of the parent directories): .git

old wyvern
#

huh

#

Are you sure you did it in the correct directory?

half harness
#

uhh i think so

#

oh wait

#

i dont think so

steel heart
#

lmao

half harness
#

now theres a new folder

#

called Bedwars

#

ill try pasting it

#

into the actual project dir

#

uh

#

how do i change the git root

old wyvern
#

Bruh

#

Did you clone into your project directory?

half harness
#

maybe

obtuse gale
#

...

old wyvern
#

๐Ÿคฆโ€โ™‚๏ธ

half harness
#

what

#

What

obtuse gale
#

how do you not know

old wyvern
#

cloning creates a directory for the repository

half harness
#

oh

#

then how do i clone

#

in the project

#

thing

old wyvern
#

smh

half harness
#

ok ima try again

#

so

#

what do i do

#

okay

#

ima delete the dir

#

um

#

ok it works now

#

argh

#

this was annoying

#

๐Ÿ˜ฆ

#

aw cmon

#

hauisjkndwasdj

forest pecan
#

dkim u suck

obtuse gale
#

legit

half harness
#

;-;

forest pecan
#

lmfao

half harness
#

now intellij doesn't want to reload gradle

#

intellij whyyyyyyyyyyyyy

forest pecan
#

u suck

#

Tofpu ugly bird too

#

๐Ÿฆ

dawn hinge
#

pulls maven card

half harness
#

ew maven

dawn hinge
#

Pulse

forest pecan
#

Tofpu you are an ugly bird!

half harness
dawn hinge
#

That's just harassment at this point

#

๐Ÿฅฒ

forest pecan
#

Never

#

Always ugly!

dawn hinge
#

๐Ÿ™

forest pecan
#

๐Ÿ™‚