#dev-general

1 messages ยท Page 142 of 1

obtuse gale
#

Shade fuck1,8

onyx loom
#

fuck1.8 is 500kb?

jovial warren
#

and mine is supposed to be as small as possible

obtuse gale
#

Probably not lol

onyx loom
#

shade papi and packetlistenerapi
thats 480kb fingerguns_reversed

jovial warren
#

he's already shaded PAPI

onyx loom
#

o

hot hull
#

I've not

#

Why would I kek

onyx loom
#

because for that 6.9mb

ocean quartz
#

I think the image idea is the best one, you can control it better

analog crater
#

And if someone decompiles it then have a nice 69 image

hot hull
#

"decompiles"

#

You do realize it's OS right?

jovial warren
#

lol

#

you know what people are like

hot hull
#

stupid yea

jovial warren
#

there's gonna be that one guy who decompiles an open-source plugin

prisma wave
#

One of my libraries might be about 500kb

old wyvern
#

Yo who designed that webpage ๐Ÿ‘€

#

๐Ÿ˜‚

#

Changes "silver" to "diamond", award shipped ๐Ÿ‘

hot hull
#

@onyx loom It is time to finally finish FJ fingerguns_reversed

onyx loom
#

ew

hot hull
#

Okay :c

jovial warren
#

is it just me or is it really DAMN ANNOYING when IntelliJ and literally every other JetBrains IDE just forces itself in to focus when you're trying to do something else

hot hull
#

As in the hover over app?

prisma wave
#

I have literally never had that happen

jovial warren
#

no, when you start it up, these windows pop up that grab your focus

#

if you're not focused on IntelliJ when it starts up it'll grab your focus

#

otherwise it won't

dawn hinge
#

yeah those are pretty annoying

onyx loom
prisma wave
#

WHAT

#

WHERE

prisma wave
#

CRUSADE

old wyvern
#

๐Ÿ˜‚

#

jk

prisma wave
#

WOW

onyx loom
prisma wave
#

I mean

old wyvern
#

๐Ÿ˜‚

prisma wave
#

It's not even incorrect

#

like

#

love it or hate it, Kotlin arrays > Java Arrays

old wyvern
#

nah im just downvoting for the sake of it

prisma wave
#

๐Ÿ˜ฆ

old wyvern
#

check again

lunar cypress
#

I mean the difference isn't really that big

old wyvern
prisma wave
#

ty

#

@lunar cypress you sure about that

quick flume
prisma wave
#

๐Ÿ˜Ž

#

it's a great subreddit

#

some would say the best

#

I was talking to some people, and they said what a great subreddit it was

lunar cypress
#

I'm still in need for a proper programming circlejerk subreddit

prisma wave
#

yeah, r/programmingcirclejerk is kinda dead

lunar cypress
#

I want gamingcirclejerk

prisma wave
#

it's just "rust good"

lunar cypress
#

But with programming

remote goblet
prisma wave
#

that would be brilliant

#

I'm not sure how it would work though

lunar cypress
#

You see the issue is that there aren't enough programmers that aren't part of the circlejerk but also know what they're talking about

prisma wave
#

yeah

old wyvern
prisma wave
#

there's also not that much irony unlike GCJ

lunar cypress
#

At least on reddit

#

Programmerhumor makes you realise that

prisma wave
#

programmerhumor is pretty boring

old wyvern
#

how does reddit work oof

prisma wave
#

it's just the same joke

#

over and over

onyx loom
#

kotlinmemes is just the best subreddit

#

theres no questioning it

prisma wave
#

^

#

so true

#

it's the only sub you need

#

So I was minding my own business when some STINKY Java user had the NERVE to tell me that kotlin was bad. My blood was boiling, I had never encountered such a RUDE person in my life.

And it gets worse.

They showed me their GitHub profile. You wouldn't believe it.

ALL PINNED REPOSITORIES WRITTEN IN 100% JAVA

I couldn't handle it. I felt sick. How did they plan to easily maintain a growing code base with this much boilerplate? And the repos had hundreds of stars. Are you seriously telling me that there are hundreds of SICK, DELUDED people in this world???

This needs to stop one way or another.

As a member of the Kotlin Klub i propose we declare war on the FILTHY Java users and eradicate them once and for all. They have gone too far this time.

Thank you for coming to my Ted Talk

#

Damn we should use this when there's a multi

lunar cypress
#

Oh no gotta clean up my pinned repositories

#

๐Ÿ˜ณ

prisma wave
#

it's quite a good copypasta if I do say so myself

onyx loom
#

ALL PINNED REPOSITORIES WRITTEN IN 100% JAVA
this gets me every time

prisma wave
#

๐Ÿ˜ก

#

oh no

#

wait

#

NO

lunar cypress
#

I hate that my JNI project shows Java instead of Rust because od the javadocs

onyx loom
#

uh oh

prisma wave
#

lmao

onyx loom
#

atleast pdm has an excuse ๐Ÿ™‚

prisma wave
#

true

#

I had to use Java because of the so called "majority of users"

onyx loom
#

๐Ÿคฎ ๐Ÿคฎ ๐Ÿคฎ

heady birch
#

@lunar cypress Hi

onyx loom
#

i feel SO SORRY for the pain that u had to go through making it

prisma wave
#

Thanks

#

It was very painful

#

And I'm not even joking

lunar cypress
#

๐Ÿ‘‹ @heady birch

prisma wave
#

CompletableFutures high-key suck

heady birch
#

I am a beginner rust user

#

I guess you could say my rust is slightly "rusty"

onyx loom
#

coroutines on the other hand Guns7

lunar cypress
#

My condolences

prisma wave
#

Rust bad kotlin good?

lunar cypress
#

I'm literally too dumb for rust

prisma wave
#

Low level programming is scary

#

pointers

lunar cypress
#

It's not even low level

prisma wave
#

๐Ÿ˜ฑ

#

rust is reasonably low level

lunar cypress
#

And you rarely have to deal with pointers

prisma wave
#

Compared to JVM

lunar cypress
#

Well yes relatively

#

In terms of the runtime

#

But the language itself is very high level

prisma wave
#

yeah actually

#

Rust is quite good

lunar cypress
#

You tried it?

prisma wave
#

A little

#

Nothing major, just a hello world and stuff

#

But it seemed quite nice

lunar cypress
#

Yeah

onyx loom
#

hello world

#

๐Ÿ™‚

lunar cypress
#

Wait until you get to the infamous fights with the borrow checker

prisma wave
#

uh oh

#

sounds scary

lunar cypress
#

Yes it's terrifying

#

"Hey you can't use that variable here because you don't own it anymore"

#

B*tch

prisma wave
#

:/

#

Ownership and lifetimes are confusing

heady birch
#

Whats difference between pointers and &

#

aint & a reference/basically a pointer?

prisma wave
#

I think so

lunar cypress
#

References are safe pointers

prisma wave
#

& is just the syntax for getting the pointer of an object afaik

lunar cypress
#

Basically

prisma wave
#

is it called "destructuring"?

#

Idk

lunar cypress
#

Wut

prisma wave
#

object > pointer

heady birch
#

Actually I remember something like that

lunar cypress
#

Dereferencing you mean? That's the opposite

prisma wave
#

yeah ik

#

I mean the opposite of dereferencing

#

is there a name for that?

lunar cypress
#

Don't think so

#

Borrowing

#

Idk

#

Yeah that's probably the best term

prisma wave
#

I see

heady birch
#

yeah its annoying

lunar cypress
#

My main issue with rust is its incredibly complex type system though

#

I am so lost there

heady birch
#

what do you mean

#

structs and traits

lunar cypress
#

All those traits that shift between language and user space and some of which implicitely declare other traits, lifetimes, generics

#

I simply realised that Rust is definitely not my cup of tea

#

I like GC

#

I like functional programming

#

I like solution-oriented abstractions

onyx loom
#

is it convention to put a space before the : in the function return type?
e.g fun canRegister(): Boolean {
or fun canRegister() : Boolean {

lunar cypress
#

No

#

You use the space for extended classes/interfaces in class declarations usually

#

But everywhere else no

onyx loom
#

yeah thought so, was a little bit confused because of that

#

thanks

prisma wave
#

Basically IJ follows kotlin conventions unless told otherwise

#

So

#

Just format if you're unsure

onyx loom
#

o ive never used that

prisma wave
#

Ctrl Alt L?

onyx loom
#

correct

prisma wave
#

Imagine not having it in muscle memory

#

You need to press it at least every 3 seconds

#

Or your code will be LITERALLY unreadable

onyx loom
#

dont need to when u already follow the convention ๐Ÿ™‚

prisma wave
#

that's effort tho

#

focus on writing the important stuff

#

let IJ make it look pretty

onyx loom
#

its muscle memory for me to already do this

prisma wave
#

effort

#

ยฏ_(ใƒ„)_/ยฏ

compact perchBOT
#

There is no time to wait! Ask your question @obtuse gale!

#

There is no time to wait! Ask your question @obtuse gale!

#

There is no time to wait! Ask your question @obtuse gale!

prisma wave
#

wrong channel lol

old wyvern
prisma wave
#

also you only need to ask once

old wyvern
#

let me get my glasses

#

i cnt damn see a thing without going near the monitor soo much

topaz bay
#

@lone trench 14:55 PM

#

Something... is off here...

regal gale
#

Uhm...

#

should I?

onyx loom
#

absolutely not

prisma wave
#

I don't think that's even possible?

#

not easily anyway

#

there's no script engine for java that I know of

#

and everything would have to be inside a class

lunar cypress
#

Depends on what you need

#

But a public eval command is a terrible idea in almost every way imaginable

#

You should only do this if you know exactly what you're doing, have put the right security measures in place and use a containerised environment

#

So short answer no you should probably not

frail glade
prisma wave
#

good question fingerguns

#

I thought I fixed that lol

#

apparently not

ocean quartz
#

5 Ultra 0 KB

onyx loom
#

๐Ÿ˜ฎ

prisma wave
#

Unsigned 0 KB?

lone trench
#

? @topaz bay

ocean quartz
#

Here is the reason for his comment:
If you're using 24h style there is no point in adding AM/PM
You have 14:56 PM, 14 already implies afternoon so the PM is redundant

topaz bay
#

THIS

#

sorry caps

rotund egret
#

For those times when you want to make sure the reader knows it's after noon

regal gale
#

@lunar cypress even if i did that, i just do it privately for myself thonking

ocean quartz
#

Ooh wait, Kotlin 1.4.0-rc is a release version?

distant sun
#

24h clock best clock, change my mind

ocean quartz
#

^

topaz bay
#

@ocean quartz rc = release candidate

ocean quartz
#

Oh okay, converting a project to Kotlin and IJ suggested that version

topaz bay
#

thats strange

rotund egret
#

helluva candidate

topaz bay
#

cocaine is a helluva drug

rotund egret
#

I guess

#

Shrooms are more my thing

ocean quartz
#

140 lines to 90 after converting

topaz bay
#

@ocean quartz what the hell

#

That still sounds like way too much

#

lol

ocean quartz
#

Most of it are comments and empty lines

hot hull
#

@golden gust That's not a developer, that's a configurator fingerguns_reversed

golden gust
#

I got a developer who helped me out, all gucci.

#

๐Ÿ™‚

opaque dust
#

how can help me

#

My bungeecord is not working

hot hull
#

Caused by: java.lang.NoSuchMethodError: net.md_5.bungee.UserConnection.getDimension()I
at com.mcmylx.quickswitch.bungee.lIIlIlIlIIllIlI.IlIIllIIlIIllIl(e:129)
at com.mcmylx.quickswitch.bungee.lIIlIlIlIIllIlI.encode(e:104)

#

Incorrect version I'm assuming

frail glade
#

Iiiilllllliiii

opaque dust
#

What is it?

#

how to fix

hot hull
#

QuickSwitch is a plugin I'm guessing

#

I can tell you it's shit cause it's obfuscated fingerguns_reversed

opaque dust
#

ok thanks

#

I deleted those plugins xD

mighty forge
#

Could anyone let me know if you think it would be possible to create a 3rd party relational PAPI placeholder extension for Towny (https://github.com/TownyAdvanced/Towny/wiki/TownyAPI / https://townyadvanced.github.io/Towny/). Basically a placeholder that outputs different colours for the viewer depending on if the viewer's towny nation is an enemy or ally to the target player's towny nation (how it works for the faction relation placeholders). I don't want to make a paid request if it isn't possible. Feel free to ping, happy with any help.

hot hull
#

Should be possible yea

empty flint
#

Is anybody versed in graph theory here?

heady birch
#

what kind of graph

empty flint
#

What do you call a node in a directed graph that you can't reach anymore?

heady birch
#

cant reach anymore?

#

no idea

empty flint
#

Say you have the following simple directed graph

  A

/
B C
\ /
D

obtuse gale
#

with kotlin since == becomes .equals should I be using === for enums?

empty flint
#

With the direction going from top to bottom

lunar cypress
#

Doesn't matter @obtuse gale

empty flint
#

if you are at B, you can't reach C anymore

hot hull
#

Well you technically can fingerguns_reversed

empty flint
#

So I call A a passed node, D is a reachable node but I need a name from C

hot hull
#

Unreachable node?

empty flint
#

I had that as well but technically A is an unreachable node as well

heady birch
#

why cant you get back to C?

empty flint
#

so I don't want any ambiguity

heady birch
#

because the arrows are directed to B

lunar cypress
#

Because of the direction

heady birch
#

ok

gilded basin
#

linking node?

empty flint
#

@heady birch because it's a directed graph from top to bottom, I just didn't want to google the utf-8 symbols for the slanted arrows

lunar cypress
#

You can only ever pass one node in a layer

hot hull
#

Well not really Blocky, since it follows the direction it's reachable

lunar cypress
#

Not if you're already on B

#

It becomes unreachable

empty flint
#

If you are on B, A is not reachable anymore

hot hull
#

I mean yea

empty flint
#

but I need to distinguish nodes that you already went through to get to B from nodes that you did not go through and can't ever reach anymore

gilded basin
#

one-way node, linking node?

empty flint
#

Any naming ideas besides "unreachable"?

#

how does linking node fit?

#

they are all one-way nodes

#

maybe disconnected node?

#

Fuck sometimes it sucks not to be a native speaker

lunar cypress
#

This is terminology, this has nothing to do with being a native speaker

#

You just need to know the subject

#

I'm p sure you just call it unreachable

empty flint
#

This is terminology, this has nothing to do with being a native speaker
@lunar cypress Well yeah but if the terminology doesn't exist or I can't find any reference to it, then I get to invent my own

#

I think I'll go with isolated node

obtuse gale
analog crater
#

redacted I was mistaken by a different generated sources

lunar cypress
#

What?

#

Generated sources are mostly for annotation processors

#

So if you're using some annotation processor that generates source code that goes in there

hot hull
#

@jovial warren So where's that pr fingerguns_reversed

jovial warren
#

er... yeah... about that...

#

I may or may not have just kinda er... got bored after a bit and just went and did my own thing lol

hot hull
#

@prisma wave Counting on you now angry_fingerguns

jovial warren
#

I've got a custom world border plugin to make now that I'm getting paid for, otherwise I'd be right on it

hot hull
#

Yea no worries, gotta get that moola

jovial warren
#

mate, first time I'm getting paid for actual work I've done lol

hot hull
#

What you working on?

jovial warren
#

well, not really actually, though I suppose helping your 69 year old (yes, she's 69) grandmother out in the garden doesn't quite count

#

What you working on?
just said, custom border

#

gotta basically make a GUI-based system that allows any player on a server to upgrade the world's border

#

it's really easy, but it's gotta be fully configurable which is slightly annoying lol

hot hull
#

Not really hard, make sure you're using Matt's gui framework fingerguns_reversed

jovial warren
#

yeah I will

#

and Kotlin of course

hot hull
#

yeye

jovial warren
#

you know, I still remember when you hated Kotlin lol

#

in fact, I still remember when I thought Java + Lombok > Kotlin

hot hull
#

Lombok doodoo

jovial warren
#

yeah ik

#

it defeats the point of using Java

#

but I hated, and still hate, boilerplate

hot hull
#

Time to test out pdm fingerguns_reversed

jovial warren
#

yeah it's not bad

regal gale
#

Muhahaha i finally made something to my bot

jovial warren
#

what?

hot hull
#

Ignore him, he just randomly says things from time to time

jovial warren
#

yeah, I've seen that

prisma wave
#

@hot hull yo

regal gale
#

@jovial warren ^

jovial warren
#

yeah it didn't make sense why you said "I finally made something to my bot"

prisma wave
#

How on earth did you do that?

#

Is that the same thing that JShell uses?

regal gale
#

BeanShell helps

#

Or Java Compiler 6, but i don't want to waste files on my discord app

prisma wave
#

Ah

#

Quite cool

#

Although a bit impractical

hot hull
#

KM, fingerguns_reversed PR

jovial warren
#

how do you parse that sort of code btw @regal gale ?

#

like how do you parse text as code?

#

and then get the output from the console and format that

regal gale
#

That was too easy tbh

#

All you have to do is use Interpreter and then eval the entire code

hot hull
#

@obtuse gale What's your github

prisma wave
#

@hot hull gimme a sec, what do you actually need me to do?

jovial warren
#

usually when I look for people's GitHub I look up their Discord username (unless of course their name is Alex Wood, who likes to have a different username for absolutely no reason)

hot hull
#

Move the actions from old one to new one, then overall cleanup

regal gale
#

I was worried that the method declaration doesn't work on Interpreter tbh

prisma wave
#

Ok

obtuse gale
#

the one with the schlong profile pic

hot hull
#

Apparently I gotta change shit myself, since you too lazy smh Aj

obtuse gale
#

ive just fucked my version of it lol

hot hull
#

And I can't be fucked with changing to latest gradle and cleaning it up cause this mcdev shit outdated af

obtuse gale
#

tryna fix something else and it broke something else

jovial warren
#

why is your username different from your discord Alex? @prisma wave

quiet depot
#

because clojure is the best language

hot hull
#

Yes

jovial warren
#

never used it

hot hull
#

Wait Aj, so what's the current status of it?

quiet depot
#

neither

obtuse gale
#

the one on that repo should work, however sometimes it doesnt add the kotlin plugin

quiet depot
#

it's a lisp dialect on the jvm, that's all you need to know

jovial warren
#

well, I mean, just about every JVM language other than Java is better than Java lol

quiet depot
#

i love java

jovial warren
#

I mean, they have Java as an example of what not to do I suppose

quiet depot
#

java's really not that bad

#

there's plenty of languages that suit your description far better than java

jovial warren
#

true

#

Java's not bad, it's just not as good as some other languages around it

regal gale
#

@prisma wave what operation do you want me to test if it work on this BeanShell? thonking

jovial warren
#

try this: ```kotlin
val myNumber = 10
val myOtherNumber = 20

println("The total is: ${myNumber + myOtherNumber}")

#

bet that won't parse

regal gale
#

Hey, no fair ;p

jovial warren
#

F

#

you should support the superior Kotlin

regal gale
#

I already have that :)

jovial warren
#

wait it actually parses the superior?

#

gj

regal gale
#

So far my bot have 3 script evaluators

#

Js, Kt and Java

jovial warren
#

also btw @ocean quartz why do the MF guides say you have to relocate the package?

#

surely relocation should be optional

hot hull
#

Stop complaining about people relocating shit sheesh

jovial warren
#

I'm just curious lol

ocean quartz
#

Because you don't want your plugin using classes from a different plugin with an outdated version of the same lib, making your plugin break
Always relocate the libs

jovial warren
#

wait that can happen?

#

since when could plugins share the same dependencies like that?

errant geyser
#

They share the same class loader don't they?

jovial warren
#

yeah that'll be it

#

you're right

obtuse gale
#

How does .any{ } work?

ocean quartz
#

Yes
The plugin that loads first will load the classes of the lib
Since your plugin will have the same path to the lib it'll use the loaded one instead

jovial warren
#

also @ocean quartz compile smh

obtuse gale
#
private fun getClosableBlockByName(element: PsiElement, name: String) =
        element.children.asSequence()
                .filter {
                    // We want to find the child which has a GrReferenceExpression with the right name
                    it.children.any { child -> child is GrReferenceExpression && child.text == name }
                }.map {
                    // We want to find the grandchild which is a GrClosable block
                    it.children.mapNotNull { child -> child as? GrClosableBlock }.firstOrNull()
                }.filterNotNull()
                .firstOrNull()``` in this context
jovial warren
prisma wave
#

@obtuse gale any returns true if any elements match the predicate

obtuse gale
#

aight

prisma wave
#

@regal gale idk, does var work?

#

@jovial warren
Because not everyone can appreciate Clojure

regal gale
#

@regal gale idk, does var work?
@prisma wave ?

prisma wave
#

var

errant geyser
#

Java 11? I think it is, has var

prisma wave
#

Introduced in Java 10

errant geyser
#

Close enough

prisma wave
#

and BeanShell says it adds some scripting features

#

so

regal gale
#

Idk how var used in the format

#

It's just like kotlin, right?

hot hull
#

var name = "Name";

#

Same as js no?

regal gale
prisma wave
#

Same as kotlin AND js

#

Cool

#

Although var only works for local variables which kinda sucks

regal gale
#

I only know var in java so far

#

val in java definitely throws error

prisma wave
#

val doesn't exist

regal gale
#

Yeah xD

prisma wave
#

it's final var

hot hull
#

disgusting

regal gale
#

Frosty's favorite final :)

#

It still feels weird that I still have to use semicolon after each line, or else it won't work

#

If var works on this eval then I think it support lambda too, i guess

prisma wave
#

wait you still have to use semicolons? In a scripting language??

regal gale
#

Yes

prisma wave
#

stupid beanshell

regal gale
#

The scripting still think the entire script is 1 line if you don't use semicolon

obtuse gale
#

why would this return null

#
private fun getClosableBlockByName(element: PsiElement, name: String): GrClosableBlock? {
    println(element.text)
    println(name)
    return element.children.asSequence()
            .filter {
                // We want to find the child which has a GrReferenceExpression with the right name
                it.children.any { child ->
                    println("child.text = ${child.text} - Name: $name")
                    child is GrReferenceExpression && child.text == name
                }
            }.map {
                // We want to find the grandchild which is a GrClosable block
                it.children.mapNotNull { child -> child as? GrClosableBlock }.firstOrNull()
            }.filterNotNull()
            .firstOrNull()
}```
prisma wave
#

There are loads of different reasons

obtuse gale
#

lol

#

how would one find the reason

regal gale
#

stupid beanshell
@prisma wave well uh.. i'm speechless xD

obtuse gale
#

only returns null if I give that bad boy the name parameter plugins

prisma wave
#

Well there are no elements with the text "plugins"?

obtuse gale
#

o

#

fixed it

#

@hot hull 2018.3 right?

hot hull
#

Yea

prisma wave
#

dead version

hot hull
#

Eat my a$$

prisma wave
#

ok

obtuse gale
#

I fixed my problem after...

#

alot of testing

hot hull
#

<idea-version since-build="183" until-build="183.*"/>
I assumed this is all I needed to change, but doesn't look like it

obtuse gale
#

o

#

is it not?

hot hull
#

I keep getting a gradle error saying 2019.3 not found or some shit, so not sure

#

But I can't find any version specific shit anywhere else

obtuse gale
#

maybe try 183.*

hot hull
#

Cannot find builtin plugin repository-search for IDE: C:\Users\Frosty.gradle\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC\2019.3\5a74bbe98a814d61e6069abd0902b46668f1278c\ideaIC-2019.3

tacit cave
#
           for (players in Bukkit.getOnlinePlayers()) {
                players.playSound((Location) players.getWorld(), Sound.ENTITY_ENDERMEN_SCREAM, 1.0)```
#

How to fix it?

obtuse gale
#

thats not java?

tacit cave
#

it's kotlin

obtuse gale
#

og tw

#

oh yea

#

just do a forEach

regal gale
obtuse gale
#
Bukkit.getOnlinePlayers().forEach{

}```
#

also saying ur issue would help lol

prisma wave
#

@tacit cave what is the problem?

tacit cave
#

wait lemme ss

#

Can't screenshot.

obtuse gale
#

?imgur

compact perchBOT
#
FAQ Answer:

You won't be able to upload images here directly to avoid spam, so please use https://imgur.com/ to upload images/screenshots.

obtuse gale
#

O

#

I just got the same error frcsty

tacit cave
#

I mean

obtuse gale
#

ffs this build.gradle.kts is 300 lines long

obtuse gale
#

can you even cast like that in kotlin?

#

also btw i dont think casing a world to a location will work but idk

#

just use Player#getLoc ation

prisma wave
#

there's a LOT wrong there

#

maybe just send the code

obtuse gale
#
        Bukkit.getOnlinePlayers().forEach{
            it.playSound(it.location, Sound.ENTITY_ENDERMAN_SCREAM, 1F, 1F)
        }```
tacit cave
#
        Bukkit.getOnlinePlayers().forEach{
            it.playSound(it.location, Sound.ENTITY_ENDERMAN_SCREAM, 1F, 1F)
        }```

@obtuse gale that's code from java?

hot hull
#

@prisma wave 4 of the old actions haven't been converted from the java version yet, can you look at those?

obtuse gale
#

no

hot hull
#

That's kotlin Epic

obtuse gale
#

thats kotlin RedEpic

prisma wave
#

@hot hull alright

tacit cave
#

eh nvm wrong read lol

hot hull
#

It's uses reflection, and it's messy af so didn't even know where to start

#

Anyhow Aj, lemme know if you figure anything out

obtuse gale
#

ill go check out what the normal mc dev plugin for that version uses

hot hull
#

I copied it from that version

#

But I assume more than just that cahnged

#

changed*

tacit cave
#

just want to ask something

#

when kotlin is being updated?

#

to 1.4 release

onyx loom
#

soonโ„ข๏ธ

#

the release candidate just came out

ocean quartz
#

Prolly won't take too long, it's already on RC

hot hull
#

@obtuse gale Any luck?

obtuse gale
#

just went to bed

#

nop

hot hull
#

4PM

obtuse gale
#

got double science tommorow so i should be able to do it during that lol

hot hull
#

Wait you got school?

obtuse gale
#

mmmm

hot hull
#

ew

#

@old wyvern DMs fingerguns_reversed

old wyvern
#

Yea trying to open that webpage

#

My broadband died today morning

hot hull
#

rip

old wyvern
#

So stuck on mobile data rn

obtuse gale
#

Plus like my school is in NSW and everyone comes from VIC so it kinda defeats the purpose of them blocking off the borders thonking

hot hull
#

@ocean quartz The inventory types are included in the latest mf gui ver right?

ocean quartz
#

Yeah

hot hull
topaz bay
errant geyser
#

tf is VoxMc Sx

old wyvern
#

He was just showing clip an example for managing repository with github

prisma wave
#

hello clever people, I've got a bit of a code structure question:
I'm parsing an XML document, but the parsing should be in different stages (different stages extract different bits of data).
A stage might need to use data from a previous stage
At the end, all of the stage's data should be collected up into a final object representation

Currently I've defined ```java
public interface ParseStage<T>
{
@NotNull
T parse(@NotNull Document document);
}

but I'm conscious of the fact that this would require a central class to execute all the stages sequentially (and therefore the stages would need hard coding, breaking the open-closed principle). 
Any ideas?
hot hull
#

XML ๐Ÿคข

prisma wave
#

I also considered having an ArtifactBuilder that gets parsed to each stage (the final object created from the parsed data is an Artifact) but the mutability seems like it could cause problems, and also I'd need to have fields for each bit of data being extracted (going back to effectively hardcoding)

#

XML ๐Ÿคข
parsing data from a maven repository, I have no choice ๐Ÿ˜ฆ

errant geyser
#

Also

#

TRAITOR

#

Is that

#

JAVA

#

๐Ÿคข

prisma wave
#

gotta keep the PDM runtime small ยฏ_(ใƒ„)_/ยฏ

errant geyser
#

PDM is written in Kotlin though isn't it?

prisma wave
#

bit of both

#

the runtime is Java, as is the common library (that the runtime and Gradle plugin use, it handles querying maven repositories and things), but the gradle plugin is in Kotlin

#

and the Unit tests for every module will be in kotlin

topaz bay
#

@prisma wave why are you manually parsing xml?

prisma wave
#

once I finish them

#

@topaz bay as opposed to what?

#

oh

errant geyser
#

You want me to learn/try out Clojure, yet you don't even make PDM in Kotlin

#

๐Ÿ˜ก

topaz bay
#

the built in parsing??

prisma wave
#

No, I'm not manually parsing

#

I'm using Document and stuff, I just want to split the extraction of the parsed data into different stages

#

possibly bad wording

#

You want me to learn/try out Clojure, yet you don't even make PDM in Kotlin
making it in Kotlin would add ~2MB onto every single plugin using it, that ain't gonna work out

#

@topaz bay Speaking a bit more specifically, here's what actually needs to happen:
Extract all the elements from <properties> and load into a memory representation
Extract everything from <dependencies>, using data from the properties if necessary.

Having everything in the same class seemed like a bad idea, so how would you lay it out?

remote goblet
#

this is still my favourite code to exist

class CoolPlugin {
  override fun onEnable() {
    Thread.sleep(String.MAX_VALUE)
  }

  val String.Companion.MAX_VALUE: Long
    get() = Long.MAX_VALUE
}
heady birch
#

wtf

#

String

remote goblet
#

yes

#

String.MAX_VALUE

hot hull
#

Lol

prisma wave
#

That is an accurate representation of the power of Kotlin

remote goblet
#

can't do that in Java wonk

hot hull
#

Well you kinda could, but it'd only cosmetically be a string

heady birch
#

it changes nothing

prisma wave
#

you literally couldn't do String.MAX_VALUE

#

without a compiler hack of some sort

hot hull
#

I mean you could have your own String class fingerguns_reversed

prisma wave
#

true

#

but who wants to do that

hot hull
#

Noone

prisma wave
#

having classes with the same name as built-in classes is an antipattern

hot hull
#

@topaz bay You've just made my life easier with that expansion, danke

distant sun
#

What expansion?

onyx loom
#

gradient

topaz bay
somber tulip
#

If I was to make something where people can bid on slots in a menu, how might I structure that? So it can be expanded on? I originally thought nested maps e.g Map<Integer<Player, Integer>> for <Slot<Player Who Bid, Amount Bid>> but I'm not sure if that's the best way.

ocean quartz
#

I think you could make an object for that, for example Map<Integer, Bids> and in Bids you'd have a Map with players who big and their amount
But I'm not sure if that's the best way either

#

xD

somber tulip
#

I'll give it a shot, that menu in the image is a plugin I actually made but its internals are poor as i didn't know how to structure it

analog crater
#

^ Encapsulation is way better than nested maps

somber tulip
#

Looks like that's the best way then so far, I'll give it a go and see how we do ;p

frail glade
#

I mean we don't really care about performance, right?

analog crater
#

I mean we are spigot devs so yeah, we dont care

#

The spigot jar is dragging us down anyway

somber tulip
#

Is there a better / easier to use way? But also I'm not too fussed about microsecond performance increases just ease of use and future adaptations

analog crater
#

Encapsulation is eaiser/future proof

#

And more performance friendly

somber tulip
#

Okay, thanks

hot hull
#

Objects good fingerguns_reversed

analog crater
#

And I OOP

hot hull
#

And I oop yes

ocean quartz
prisma wave
#

functional interfaces are cool

frail glade
#

I don't get it

#

Nothing is fun about running

#

Its so tiring

errant geyser
topaz bay
#

.\gradlew wrapper --gradle-version 6.5.1

ocean quartz
#

What is the point of making a function open on an enum?

#

Code converted from Java became open

prisma wave
#

I think it's so a value could theoretically override it

#

Although IJ seems to open a lot of Java functions

old wyvern
#

Just means you can override it for particular enums

ocean quartz
#

Hmm don't think that's what i want here then

empty flint
#

Hm what do you guys think of LuckPerms' method of storing the config data in mysql as opposed to making config files for it?

analog crater
#

Much better than storing data in config files

#

Config should be read only and the user should input configuration settings

empty flint
#

I mean it's not data per se, is it? it's config. It gets configured once and it's never touched again usually. I am talking about the structure of the permission nodes and such

analog crater
#

Thats data not config. E.g group abc with permission node x.y.z

empty flint
#

how is that not config? data would be which player belongs to which group. the groups themselves are config.

analog crater
#

They are the data of the the groups

#

Such as group xyz has permission a.b.c with player $uuid who had permission t.u.c

empty flint
#

But you can say that about every configuration. Like if you have mysql config you can say they are the data of the mysql connection and should not be in a config file...

analog crater
#

No. Becuase they are user settings

#

Plus its better to store in a database becuase they have better schemas than yaml files

empty flint
#

but the permission groups are user settings in the exact same sense then.

#

they do not change (usually)

#

as opposed to the data itself

analog crater
#

They do change

#

And why have them in seperate storage systems when they are so closely linked

#

And you can make use of ORM aswell as backend for a website using that data

empty flint
#

Hm do you know how LuckPerms is doing that whole webserver thing where you can access that data via the browser?

frail glade
#

It loads it from a hastebin file

#

More or less

empty flint
#

and the server itself is a remote server set up by the plugin dev?

#

How does it communicate with the mc server? or rather the plugin running on the mc server?

frail glade
#

When you run the editor it converts your data to a string and posts it to the hastebin

#

Then it gives you a web editor link that loads the haste bin data

empty flint
#

right I got it so far

#

but how does the web editor communicate back with the plugin?

prisma wave
#

afaik it puts the data into another hastebin and the command loads from that

frail glade
#

When you run the apply edits it does a get request

empty flint
#

hm hm interesting

#

do you think it would be possible to run a webserver from within the plugin?

#

or is that too straining on the server resources?

frail glade
#

It's possible

#

That's what dynmap does

#

And plan

#

And a few others

empty flint
#

hm hm... might be worth looking into...

#

I remember dynmap causing lag a lot...

#

dunno if it still does

errant geyser
#

Dynmap causes lag while it renders, yeah

regal gale
#

For the record, i will never add Clojure scripting on my eval cmd ever again..

prisma wave
#

why not??????

#

clojure >>>

rotund egret
#

Well he said again, so he won't add it because he already did :^)

prisma wave
#

damn good point

#

clojure good

pastel imp
#

yo anyone knows a good mysql "tutorial"

#

never worked with mysql

#

and before learning how to use it in plugins

#

I wanna learn how to actually use it

#

.-.

prisma wave
#

w3 has one iirc

#

tbh SQL is pretty easy to learn

#

any tutorial will probably do

pastel imp
#

xd

analog crater
#

Say I want to create all possible alphanumeric string with any case which is >=1 and <=11. I know that there is 62 characters, so I have 62^11 which gives me the total amount of possible strings. However, from this info how would I get the amount of bits it requires (excluding language overhead. Just the bits for the characters)

#

In a 8bit encoding format

onyx loom
old wyvern
#

62^11 * 11 * 2 * 8

analog crater
#

Oh. Is it actually that simple?

old wyvern
#

Yea I guess so

ocean quartz
#

@topaz bay I require your wisdom, going to try making a JSON message with a syntax that looks similar to markdown, will be nice to learn new things
Example:
[<#e74c3c>**Testing Message**](hover: "<#3498db>*Hover message*")
Will turn into the image under
Any suggestion on how to approach this? Regex probably?

analog crater
old wyvern
#

um no

#

(6^11) * 11 * 2*8

analog crater
#

Oh.

old wyvern
#

62^11 possibilities (assuming 11 characters) * 11 (characters per possibility) * 2(no. of bytes in a char) * 8

topaz bay
#

@ocean quartz knowing me

#

I'd write a full blown lexer and parser

ocean quartz
#

I thought about a lexer as well, sounds fun

topaz bay
#

Oh its VERY fun

#

I was planning on writing my own grammar syntax, and having that be used as an input to a generic lexer system

ocean quartz
#

gonna do it ๐Ÿ‘€

topaz bay
#

As soon as I can figure out why gradle javadoc generation is fucking bugged

tacit cave
#

Does anyone know how to make NPC from Citizen to Hostile Mob, like they attacks player?

ocean quartz
#

Sx your lexer scares me

regal gale
#

@tacit cave you can try Sentinel

tacit cave
#

Plugin or Some other Codes?

topaz bay
#

Now thats a clean API if I've ever seen one

#

@ocean quartz Thank you

#

Which one though?

#

Theres like at least 4 different ones on my gh xD

ocean quartz
topaz bay
#

Ah yes...

#

The giga lexer

#

Relatively small, but extremely powerful

#

Its bounds are unknown to the mightiest of programmers

#

What scares you about it?

ocean quartz
#

Everything
I understand about almost nothing xD

topaz bay
#

LOL

#

You think THATS scary?

#

Have you looked at the Typer???

ocean quartz
#

oh no

topaz bay
#

That shit scares even me

#

2500 lines of pure EVIL

ocean quartz
#

Oh god

regal gale
#

@tacit cave plugin

tacit cave
#

Bruh

topaz bay
#

@ocean quartz Did you want me to actually explain it to you? Or were you just commenting on it?

ocean quartz
#

Just commenting on it, trying to understand how a lexer works so I can see where to start

topaz bay
#

lol ok

#

I would very much like to see what you come up with

ocean quartz
#

I'll try to not disappoint xD

topaz bay
#

You better not.

#

Or I'll come for you

#

๐Ÿ˜ˆ

ocean quartz
topaz bay
#

I admire your token type names

ocean quartz
#

I wonder if i should use regex for parts of it, i feel like this way it'll be a bit harder xD

topaz bay
#

Which parts though?

#

Parts of mine were regex at one point, but the increase in speed far outweighs the alternative

ocean quartz
#

Was thinking about using to get like content between [] etc
But hey I'll keep going this way at least I'll learn something new

topaz bay
#

That's actually not bad

#

But then you introduce recursion

#

Well I guess there would be recursion anyway, due to your syntax

ocean quartz
topaz bay
#

How come those values are separated?

ocean quartz
#

Printing them in each line instead of the list

topaz bay
#

How are they being parsed?

#

^ that they end up being a list and not one value?

ocean quartz
#

Right now I just took an example from stackoverflow so bare with me xD
Just adds each value to a list based on the found token nothing more

topaz bay
#

Wait what...

#

I'm so lost

ocean quartz
#

Same, trust me

topaz bay
#

Oh wait, nvm I get it

#

It doesnt even know that they are "strings" per se

ocean quartz
#

Nah, just detects something and puts it on a list nothing more

topaz bay
#

got it

severe ruin
#

Where do I make a ticket if i need support

remote goblet
#

you dont

ocean quartz
severe ruin
#

okay

regal gale
#

Supporting in discord with ticket sounds dumb

#

I think

ocean quartz
#

It's awful

remote goblet
#

im support team on PlayerWarp's devs discord server

#

and everytime someone makes a ticket

#

the bot mentions @ everyone

#

so i get a notification

#

every single goddamn time

regal gale
#

Just don't support that discord ๐Ÿ‘

remote goblet
#

i like bullying the developer

#

so ima deal with the pings

#

hi olzie EmiCool you suck

#

if you're reading this lmao

regal gale
remote goblet
#

what

#

hes a very easy person to bully and make fun of

regal gale
#

Can i bully you with Java

remote goblet
#

no

regal gale
#

I've been waiting for kt's first compiler for 2 minutes now..

#

Is that normal

topaz bay
#

YO

#

Look at this shit

#

Thats fire

ocean quartz
#

This dude got even crazier with this, let me see if i can re find his tweeter, he has way more

topaz bay
ocean quartz
#

Yeah that one!

topaz bay
#

The level loading one is fucking beautiful

#

Could imagine if this happened in Minecraft?

#

The little preview image shown on the worlds screen?

#

Just expanded?!?!?

#

And it was world?!??!?!?!

#

Ya know.... I think I might make a mod...

ocean quartz
#

Who knew a mod that lets you skip the loading time for portals could be so mind-bending???

This Non-Euclidean Mod is the Immersive Portals Mod if you didn't know, it gives of the non-euclidean geometry feeling, it was really trippy and weird!

๐•Š๐•ฆ๐•“๐•ค๐•”๐•ฃ๐• ๐•š๐•“๐•– ๐•„๐•’๐•ฅ๐•–
โ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌโ–ฌ...

โ–ถ Play video
#

This is pretty cool too

topaz bay
#

DUDE

#

I fucking LOVE non euclidean game engines

ocean quartz
#

They are awesome, would love to try something like that one day

topaz bay
#

oooooo

#

its the zelda theme in the background

#

Took me a while to notice that

#

Or some song that uses the motifs of zelda at least

ocean quartz
#

Aight my brain hurts from this lexer stuff imma head out to bed

topaz bay
#

WHAT

#

Thats all it takes?!?!?!?

ocean quartz
#

Oi it's 4am, imma do more tomorrow!

topaz bay
#

Mhmm

#

Excuses

#

๐Ÿ˜ˆ

ocean quartz
#

Still not sure how i wanna do it though
Because for example [#000](/guild/164280494874165248/channel/000/)Some text [Some more text](hover: Hover text) *italic test* this will be a valid syntax
I might search for any markdown element, handle it then after parse the colors

topaz bay
#

Would it just all be black?

ocean quartz
#

Not sure, it's either keep the colors throughout or reset once a markdown is found
The resetting sounds easier to do

ocean quartz
#

90% of the lexer examples and videos are in Phyton

topaz bay
#

That makes sense

ocean quartz
#

Yeah seems pretty simple to do with it

old wyvern
#

I have a simple lexer if you wanna have a look @ocean quartz

hot hull
#

@obtuse gale

obtuse gale
#

ree

regal gale
#

this is a sacarsm, pls don't kill me

hot hull
#

Tough talk for a fella within crusading distance.

lunar cypress
#

Good testing environment

topaz bay
#

Gross

#

Imagine not using interpolation

topaz bay
#

The almighty power of regex

hot hull
#

cute

topaz bay
#

Why does one even need actual programming

#

When you can use the power of finite state machines

rotund egret
#

regex bad

lunar cypress
#

because finite state machines do have limits

hot hull
#

Anyone got any cool hologram libs I could use for 1.8 fingerguns_reversed

glad spear
#

I bet aj does

hot hull
#

He's gonna be dissapointed that I'm on 1.8 again

empty flint
#

What would be the best way to store business objects in a database? I have a proprietary sql handler but I'd like to not have to maintain it and use something pre-existing. I was thinking of hibernate but I thought i'd ask if you guys know of something better

obtuse gale
#

I am disgusted

hot hull
#

It's a commission Aj :c

obtuse gale
#

idc

hot hull
#

Pay me the amount I get for this, and I won't make it fingerguns_reversed

obtuse gale
#

how much?

hot hull
#

DMs fingerguns

pallid gale
#

interesting price

distant sun
#

69 pesos

hot hull
#

See he get's annoyed, but doesn't want to resolve me of my missery

heady birch
#

DID

#

Did someone mention business objects and databases?

empty flint
#

yes

heady birch
#

Hello

empty flint
#

Hola

heady birch
#

Let me introduce you to Spring

empty flint
#

What does the Spring framework do?

heady birch
#

Everything

empty flint
#

Never used it, don't know anything about it

heady birch
#

You can model your business objects as java objects

#

Then it set's up databases and everything based on it

empty flint
#

That looks interesting enough

#

How much fine control do you have though? Can you specify custom queries as well?

heady birch
distant sun
#

Interesting

#

BUT

#

What normal person uses light theme on anything that has dark theme??

empty flint
#

@heady birch That looks like SQL. Any particular flavor? MySQL? Postgre? Oracle SQL?

heady birch
#

Oh yeah

empty flint
#

What normal person uses light theme on anything that has dark theme??
@distant sun Light theme by day, Dark theme by night

distant sun
#

no

heady birch
#

Its JPQL I think

#

or HQL

#

You can do native SQL as well

distant sun
#

Dark theme anytime

empty flint
#

I will check it out, looks interesting enough. Thank you!

#

Do I have to compile Spring into the Plugin jar if I want to use it?

#

Or does the spigot jar already support spring by any chance?

hot hull
#

It probably doesn't knowing spigot fingerguns_reversed

empty flint
#

I figured out why my plugin is 18MB btw

jovial warren
#

@heady birch you sure you can use Spring on Spigot projects?

empty flint
#

Because I decided to use ANTLR as we discussed before. Gotta compile all the necessary shit into the plugin ๐Ÿ˜›

heady birch
#

Probably

#

But

empty flint
#

@heady birch you sure you can use Spring on Spigot projects?
@jovial warren Why shouldn't you be able to?

obtuse gale
#

why wouldnt you?

heady birch
#

Your plugin will be larger than 18MB with Spring ๐Ÿ™‚

obtuse gale
#

lol

jovial warren
#

because of the way it works

obtuse gale
#

how big is sprinbg

empty flint
#

I mean is the size really an issue?

heady birch
#

Depends what you use

#

I tried doing it a while ago

jovial warren
#

with Spring, most things have to kinda be managed by it

heady birch
#

But couldn't register the server as a been or anything

#
@Override
    public void onEnable() {
        getLogger().info("Initializing the application context...");

        DefaultListableBeanFactory defaultListableBeanFactory = new DefaultListableBeanFactory();
        defaultListableBeanFactory.registerSingleton("logger", getLogger());

        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(defaultListableBeanFactory);
        applicationContext.scan("net.kitesoftware",
                "net.kitesoftware.clearchat",
                "net.kitesoftware.clearchat.service");
        applicationContext.refresh();

        EnterpriseClearChatApplication enterpriseClearChatApplication =
                applicationContext.getBean(EnterpriseClearChatApplication.class);

        enterpriseClearChatApplication.startApplication();
    }
#

Never got it working

empty flint
#

I'll ask in the spring discord

heady birch
#

๐Ÿ˜ณ

#

Spring discord?

empty flint
#

ah sorry spigot discord

#

brainlag

hot hull
#

spigot discord shite

empty flint
#

whatever, as long as they answer my question...

jovial warren
#

@heady birch why would you even lol

heady birch
#

I have never spoken in spigot server actually

empty flint
#

Well shit Niall. Here you introduce me to the Spring framework and then you tell me it's not suitable

#

What is a suitable alternative then?

jovial warren
#

you could try RPF

#

@quiet depot will tell you all about it I'm sure

empty flint
#

The Rwandan Patriotic Front?

jovial warren
#

lol

#

no, Reflection Project Framework I think or something like that

empty flint
#

Or the Patriotic Front of Rwanda?

jovial warren
#

yeah Reflection Project Framework

quiet depot
#

rpf isnโ€™t ready for prod

empty flint
#

god damnit ^^

jovial warren
#

Are you willing to accept the risks of using an in-development build? (Y)es/(N)o

empty flint
#

No

#

I want something that works

jovial warren
#

It does work afaik

quiet depot
#

what u making?

jovial warren
#

it's just not that stable

remote goblet
#

Patriotic Front of Rwanda? Sounds interesting

empty flint
#

and that is well documented with lots of examples to find on google

quiet depot
#

RPF has first class in-discord support

#

itโ€™s called piggypiglet

empty flint
#

I am looking for a way to avoid writing my own sql handler

#

so I'm looking for a way to store business objects

#

preferably automatically via annotations

#

like Hibernate or Spring

heady birch
#

What is your goal

quiet depot
#

then use hibernate or spring?

heady birch
#

Does it need to be a plugin?

empty flint
#

Yes it's a plugin, @heady birch

heady birch
empty flint
#

then use hibernate or spring?
@quiet depot I was thinking of hibernate then Niall mentioned Spring and then he said it's not suitable for plugins and now I'm back at Hibernate

heady birch
#

Something like this could work

#

Well

quiet depot
#

spring works fine for plugins

heady birch
#

Yes

empty flint
#

spring works fine for plugins
@quiet depot Have you used it before?

heady birch
#

You do have a 5mb limit upload on spigot

quiet depot
#

no

heady birch
#

But if its personal use then should be fine

empty flint
#

You do have a 5mb limit upload on spigot
@heady birch I don't upload to spigot anyway so that's not an issue

#

But if its personal use then should be fine
@heady birch It's not

quiet depot
#

niall you can add an external download

heady birch
#

Oh yeah

jovial warren
#

that's probably why FAWE does that then lol

#

and a few others do that as well

empty flint
#

I think I'll go with hibernate

jovial warren
#

Hibernate is just ORM

#

afaik

#

nvm apparently, like Spring, it does more

#

(most people know Spring as a web framework, that's what I'm referring to)

#

also @heady birch you're saying with Spring it'll take your project only to 18 MB?

#

idk what kinda Spring you been using but Spring Boot takes me to at least 35

hot hull
#

return within lambda acts same as continue in a for loop or?

obtuse gale
#

bruh

#

just realised the Fuck1.8 jitpack thing doesnt work lol

#
    implementation 'com.github.Aj3douglas:Fuck1.8:master-SNAPSHOT'```
#
    maven { url 'https://jitpack.io' }```
#

Could not find com.github.Aj3douglas:Fuck1.8:master-SNAPSHOT.

#

o

#

ive gotta add something to the gradle?

regal gale
#

return within lambda acts same as continue in a for loop or?
@hot hull break and continue are for iterator scope, so probably not the same

hot hull
#

Seems to be the same so fingerguns_reversed

empty flint
#

hmmm how would you model a one-to-many relationship in a database where the order is important? create a separate table with each element being an entry and store the index/order?

steel heart
#

Aj, send ur gradle

obtuse gale
tacit cave
#

@obtuse gale -.-

obtuse gale
#

?

#

oh right I forgot some people support using versions from 6 YEARS AGO

#

@steel heart when I try and run gradlew build on the project it fails

#

I think I read that jitpack uses it

#

Would that cause it to not import right?

regal gale
#

Is it really stupid of me to create Kotlin-Expansion for PAPI ._.

#

I already prepared the scripting engine, ofc

heady birch
#

I think someone made it

#

KotlinScript or something

topaz bay
#

That would be me

heady birch
#

Course ๐Ÿ™„

jovial warren
#

@obtuse gale wdym nobody should use 1.8?

obtuse gale
#

I mean nobody should use 1.8

jovial warren
#

1.8 should be used for things like lobbies because it's really lightweight and doesn't take up RAM

obtuse gale
#

Its 6 years old

jovial warren
#

and...?

obtuse gale
#

at very minimum 1.12

jovial warren
#

modpacks are still built in 1.7.10 and that's even older

obtuse gale
#

I know

#

Doesnt make it any better

jovial warren
#

1.8 still has its uses

#

that's a fact

#

1.6 is where I draw the line

#

and also 1.8 is better for PvP since 1.9 until about 1.14 or so PvP is dog shit

#

and also 1.8 runs so much more smoothly than the later versions

obtuse gale
#

Its 6 years old

ocean quartz
#

@old wyvern Sure thing!

#

@topaz bay Nice yeah, I might just do that, use regex to get the tokens

regal gale
#

1.6 is where I draw the line
@jovial warren i don't get that line

hot hull
#

You can't store data in a placed block correct?

heady birch
#

lol

#

extend Block and add your own fields

tranquil crane
#

anything older than 1.13 is icky

heady birch
#

Try it and see ๐Ÿ™‚

tranquil crane
#

extend block thonking

hot hull
#

I'm on 1.8 :c

#

Gotta add a spawner stacking system, first thought of storing locations but that's disgusting

old wyvern
#

extend Block and add your own fields
Wha

tranquil crane
#

Storing locations is about the best you're going to get

hot hull
#

Crap

prisma wave
#

^

#

it's not that ugly