#dev-general

1 messages Β· Page 174 of 1

jovial warren
#

probably sendPacket if I was to hazard a guess

old wyvern
#

Editing methods are ussually reloaded. To add methods you need dcevm or something afaik. But yea changes inside a method should be fine

heady birch
old wyvern
#

Are you sure that isnt active?

obtuse gale
#

ive got dcevm

jovial warren
#

jesus christ lol

old wyvern
#

hmm

obtuse gale
#

followed that exactly

old wyvern
#

I see

#

Have you checked if your lines are added with the debugger?

#

Try adding a breakpoint to that line, Intellij wont show it as a breakpoint if its not reloaded the class yet

jovial warren
#

@heady birch I think you missed two at the bottom of that xD

heady birch
#

yeah

empty flint
#
dependencies.ext.spigot = { final String version ->
    dependencies.compileOnly "org.spigotmc:spigot-api:$version-SNAPSHOT"
}

How does this translate to kotlin?
There is no dependencies.ext in that dsl. Is that extra or extensions?

jovial warren
#

in to Kotlin?

empty flint
#

yes

jovial warren
#

just ext {} I believe

empty flint
#

there is no ext {}

jovial warren
#

actually wtf

#

what are you doing

#

you can't depend on things using an ext block

empty flint
#

According to Piggy you can and he does aparently

#
apply from: "https://cdn.piggypiglet.me/gradle/spigot.gradle"

dependencies {
  spigot "1.16.2-R0.1"
}
#

check out the link

#

I want to replicate that in kotlin dsl

#

what does the .ext stand for though?

jovial warren
#
val dependencies.ext.spigot = { version ->
    dependencies.compileOnly("org.spigotmc:spigot-api:$version-SNAPSHOT")
}
```?
#

not sure

#

ext is supposed to mean external

#

@prisma wave how much do you know about the DSL?

empty flint
#

dependencies.compileOnly(...) doesn't exist

jovial warren
#

oh yeah of course it doesn't

empty flint
#

the gradle fuckery starts again

old wyvern
#

umm wait

empty flint
#

oh yeah of course it doesn't
@jovial warren why of course?

jovial warren
#

somebody help me out, I don't know DSL well enough for this lol

empty flint
#

me either, please help

old wyvern
#

ext is from ExtensionAware

jovial warren
#

is it?

empty flint
#

yeah so in kotlin dsl that's extra

#

now just how do I get the compileOnly from dependencies?

old wyvern
#
All extension aware objects have a special β€œext” extension of type ExtraPropertiesExtension```
empty flint
#
dependencies.extra.apply {
  set("spigot", {
      group: String, version: String -> "org.spigotmc:$group:${spigotData.bukkitForVersion[version]}"
  })
}
#

this compiles

#

but it returns the string, not the dependency handler called CompileOnly

#

I guess this works...

old wyvern
#

Does it?

empty flint
#

it compiles

#

I just don't know how piggy invoked that lambda using

dependencies {
  spigot "1.16.2-R0.1"
}
old wyvern
#

I havent used kotlin for gradle yet but I assume you can just have an infix extension or something?\

#

Gimme a minute lemme try creating a test proj with kotlin dsl

empty flint
#

Now I know why they all said gradle with groovy dsl was so much cleaner

#

I think I have to switch after all

#

it's just so messy if I don't

old wyvern
#

πŸ€·β€β™‚οΈ

empty flint
#

Gimme a minute lemme try creating a test proj with kotlin dsl
@old wyvern Did you get anywhere?

old wyvern
#

Its still importing stuff

#

2 mins plz

onyx loom
#

good pc 🌝

old wyvern
#

Internet*

#

πŸ™ƒ

jovial warren
#

it took me this long to remember that setting source roots exists lol

old wyvern
#

seems to work borz @empty flint

empty flint
#

what does?

old wyvern
#
infix fun DependencyHandlerScope.spigot(version: String) {
    compileOnly("org.spigotmc:spigot-api:$version-SNAPSHOT")
}
empty flint
#

ah, well

#

that's a shame

old wyvern
#

?

empty flint
#

I converted to groovy just now

#

doesn't matter though ^^

old wyvern
#

lol

empty flint
#

ty for trying it out

#

but I feel like the kotlin dsl isn't near as ready to use as groovy

old wyvern
#

I see

empty flint
#

if you don't know how gradle works at all

#

which I don't

jovial warren
#

hey @heady birch can I see your module/project hierachy please? (and your parent pom if you'll let me since that's the only one not put in manifest xD)

#

afternoon Matt (saw you typing lol)

ocean quartz
#

Heyo, was gonna make a joke but decided not to xD

jovial warren
#

lol

#

I'm just sitting here deobfuscating KiteBoard

#

(got permission)

onyx loom
#

might aswell just ask for the source through GPL kek

jovial warren
#

I did

onyx loom
#

take him to court then πŸ‘€

jovial warren
#

you think I got the money for that? xD

#

and also I cba lol

onyx loom
#

yes

hot hull
#

:bruh:

ocean quartz
#

Join us in the suing fest

heady birch
#

slim shady

onyx loom
#

my name is

heady birch
#

all the poms are wrong

jovial warren
#

lol

heady birch
#

messed up the group name when I made it a year ago

#

only some of it is updated

jovial warren
#

ah okay

heady birch
#
<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2015 - 2020, KiteSoftware
  -->

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.kitesoftware.board</groupId>
    <artifactId>kiteboard</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>kiteboard-core</module>
        <module>nms</module>
        <module>kiteboard-dist</module>
        <module>kiteboard-api</module>
    </modules>
</project>
jovial warren
#

so should I just delete all these old poms then? lol

#

cheers

heady birch
#

no

#

they still work

hot hull
#

You legit going to ask him for the entire source?

jovial warren
#

I did before lol

#

but I don't want the entire source, deobfuscating this has been a fun challenge

empty flint
#

what's the groovy equivalent of kotlin's fold(...) method?

jovial warren
#

don't think that's something that Groovy has

prisma wave
#

probably called reduce

#

folding and reducing are very similar

lunar cypress
#

The terms are synonyms

prisma wave
#

^ although the 2 functions do slightly different things in kotlin

lunar cypress
#

Yeah, but still the same functionality

#

Dunno why they made this decision

prisma wave
#

Β―_(ツ)_/Β―

empty flint
#

I can't find examples for reduce in groovy

#

how does that work exactly?

lunar cypress
#

ok apparently what kotlin calls fold is called inject in groovy

#

for whatever damn reason

empty flint
#

well inject makes sense if you think about injecting values into an accumulating object

lunar cypress
#

no...

#

it doesn't

#

When I sum elements I don't inject anything anywhere

#

it almost sounds like it's for side effects, even though the whole point of it is to avoid those

empty flint
#
def bukkitForNms = [
  "1_12_R1" : ["1.12-R0.1-SNAPSHOT", "1.12.1-R0.1-SNAPSHOT", "1.12.2-R0.1-SNAPSHOT"],
  "1_13_R1" : ["1.13-R0.1-SNAPSHOT"],
  "1_13_R2" : ["1.13.1-R0.1-SNAPSHOT", "1.13.2-R0.1-SNAPSHOT"],
  "1_14_R1" : ["1.14-R0.1-SNAPSHOT", "1.14.1-R0.1-SNAPSHOT", "1.14.2-R0.1-SNAPSHOT", "1.14.3-R0.1-SNAPSHOT", "1.14.4-R0.1-SNAPSHOT"],
  "1_15_R1" :  ["1.15-R0.1-SNAPSHOT", "1.15.1-R0.1-SNAPSHOT", "1.15.2-R0.1-SNAPSHOT"],
  "1_16_R1" :  ["1.16.1-R0.1-SNAPSHOT"],
  "1_16_R2" :  ["1.16.2-R0.1-SNAPSHOT"]
]
def nmsForBukkit = bukkitForNms.inject( [:] ) {map, key, values -> values.each { map[it] = key } }

@prisma wave Can you help me figure out why inject doesn't work here like this?

#

I'm pretty sure it has to do with some groovy syntax

prisma wave
#

i'm not too familiar with groovy

#

what's the error / problem?

empty flint
#

'inject' in 'org.codehaus.groovy.runtime.DefaultGroovyMethods' cannot be applied to '([:], groovy.lang.Closure<java.util.List<java.lang.String>>)'

jovial warren
#

fold is named fold because it's folding the elements in a list in to one

lunar cypress
#

that was not the question

#

the question was why they used both fold and reduce, which again, are synonyms and have no connection to their different parameters

empty flint
#

So how do I reverse the map and flatten the keys

lunar cypress
#

this reduction does not make sense

#

you don't return the map

hot hull
#

How do I register a dir as a module?

lunar cypress
#

in gradle?

hot hull
#

yus

lunar cypress
#

by editing settings.gradle

#

I think includes 'name' is the one

runic flume
foggy pond
lunar cypress
#

lmao

empty flint
#

In case anybody is wondering, this would be the syntax instead of using inject:

def nmsForBukkit = bukkitForNms.collectEntries {key, values -> values.forEach(value -> [value, key])}

jovial warren
#

@heady birch been a while, wondering what the method at line ~65 in the Colour class does lol

#

looks like it takes a string and does some wacky bit shifting, writes the results to a char array and constructs a string from that char array

heady birch
#

It converts something like #ABC to #AABBCC

#

then the bit shift is just getting the RGB seperate values out of the int

jovial warren
#

ah okay

#

please don't tell me that's that method name I saw from you the other day

#

"convert3To6"

#

or something like that lol

heady birch
#

yeah it is

jovial warren
#

lol

#

I'm just separating the API from the core at the moment

#

also trying to put your animation API in to the API if I can lol

heady birch
#

Anyone know a more performant version of String.split(",")

jovial warren
#

I don't think there is

#

what's wrong with split()?

dusky drum
#

maybe Guava's Splitter? Niall?

#

or StringTokenizer

#

wait

jovial warren
#

what's Interpolation's elements btw @heady birch

dusky drum
heady birch
#

Lol gasper im reading that part now

dusky drum
#

XDDD

heady birch
#

Interpolation HSB and RGB

jovial warren
#

okay

dusky drum
#

basicly i think split is still the fastest

#

maybe also try apache stringutils

lunar cypress
#

Yeah what's wrong with split? @heady birch

heady birch
#

It is a hotspot during my profiling

#

Basically splitting thousands of lines per second

#

Csv format

dusky drum
#

howly

#

why so much?

heady birch
#

live radar data

dusky drum
#

?

#

like which radar?

ocean quartz
jovial warren
#

noice

empty flint
#

What's apache spark used for?

#

I read the description but can't imagine anything from that

#

@prisma wave could you help me out with gradle a little?

prisma wave
#

It's for large-scale distributed data processing

#

I believe

#

And sure

empty flint
#

so I have this folder structure in my root project. the gradle folder is the in the root folder

#

blockyData.gradle contains this map:

def blockyData = [:]
version.kotlinVersion = '1.4.0'
version.serverVersion = '1.16.2'
version.jvmVersion = '11'
tiny crest
#

Hello, does someone know how i can change my build version on Intellij?

jovial warren
#

@heady birch what are the String[] and List<String> methods for in Animation?

empty flint
#

I'd like to use the blockyData map in other gradle scripts.

#

And I can't seem to get it working

jovial warren
#

Hello, does someone know how i can change my build version on Intellij?
@tiny crest build version for what? IJ's build version? Gradle version? Maven version?

heady birch
#

List<String> returns the created animation

#

String[] is the aliases

#

like command alises

jovial warren
#

ah okay

prisma wave
#

I'm not too familiar with using multiple .gradle files but can you not do apply from: 'blockyData.gradle'?

ocean quartz
tiny crest
#

@tiny crest build version for what? IJ's build version? Gradle version? Maven version?
@jovial warren Like the name of the plugin

#

The jar name

jovial warren
#

@ocean quartz thanks for putting that link here, that's something I want to attend now lol

ocean quartz
#

It's awesome

jovial warren
#

@tiny crest what build automation tool are you using? (e.g. Maven, Gradle, etc.)

tiny crest
#

Maven

jovial warren
#

there's a field for that

empty flint
#

I'm not too familiar with using multiple .gradle files but can you not do apply from: 'blockyData.gradle'?
@prisma wave Yes, but how do I access that map then?

jovial warren
#

<version>THE_VERSION</version> @tiny crest

tiny crest
#

Ohh

empty flint
#

because this doesn't work

tiny crest
#

Thanks!

empty flint
#

like it doesn't know what blockyData is

#

I also tried with ext.set('blockyData', blockyData)

#

but I don't know how to access it

jovial warren
#

also @heady birch wouldn't be surprised if you've already answered this before, but what are the AnimationTypes again?

heady birch
#

static = placeholders set after , dynamic = placeholder set before

jovial warren
#

cheers

#

still working on the animation API lol

jovial warren
#

also @heady birch , line 114 in AnimationOptions, what is that method called? is it copy or is it combine?

#

the one that returns AnimationOptions, and takes AnimationOptions, and creates a new instance of AnimationOptions and then takes the values from the parameter and puts them in the new AnimationOptions, then takes the values of the current AnimationOptions instance and puts them in the new AnimationOptions, and then returns the new AnimationOptions

#

if that makes any sense at all haha

empty flint
#
apply from: "https://cdn.piggypiglet.me/gradle/spigot.gradle"

dependencies {
  spigot "1.16.2-R0.1"
}```

@mental stag
@quiet depot does this work for you guys? I can't seem to get it working...

heady birch
#

@jovial warren merge

jovial warren
#

okay

heady birch
#

oh its public AnimationOptions getMergedFromDefault(final AnimationOptions defaults) {

jovial warren
#

ah okay

#

also can I show my current API module?

#

like the structure with all the classes (I mean classes, interfaces, enums, etc. lol) in it

#

@heady birch πŸ™‚ (sorry about the constant pings but you don't see my messages otherwise lol)

empty flint
jovial warren
#

also @heady birch , where did you get the craftbukkit dependencies from?

#

@empty flint which one?

empty flint
#

@empty flint which one?
@jovial warren The whole thing, it's all underlined

jovial warren
#

surely it tells you which method specifically is ambiguous

#

ambiguous methods occurs when you have multiple methods that could all be called with the arguments you supply

#

I think

empty flint
#

I mean sure, but what could those be?

#

afaik this is the way you define subproject dependencies in gradle

jovial warren
#

yeah it is

empty flint
#

also @heady birch , where did you get the craftbukkit dependencies from?
@jovial warren Do you mean net.minecraft.setver... classes?

jovial warren
#

yeah

#

are they just supposed to be in Maven Local?

empty flint
#

you can use the same repo as the spigotapi, just use spigot instead of spigot-api.

"org.spigotmc:spigot:<bukkit version>"

jovial warren
#

okay

empty flint
#

are they just supposed to be in Maven Local?
@jovial warren They get installed to maven local when you run build tools

jovial warren
#

ah okay

#

so I need to run BuildTools then?

empty flint
#

here's a neat little map of NMS versions mapping to bukkit versions:

bukkitForNms.'1_12_R1' = ['1.12-R0.1-SNAPSHOT', '1.12.1-R0.1-SNAPSHOT', '1.12.2-R0.1-SNAPSHOT']
bukkitForNms.'1_13_R1' = ['1.13-R0.1-SNAPSHOT']
bukkitForNms.'1_13_R2' = ['1.13.1-R0.1-SNAPSHOT', '1.13.2-R0.1-SNAPSHOT']
bukkitForNms.'1_14_R1' = ['1.14-R0.1-SNAPSHOT', '1.14.1-R0.1-SNAPSHOT', '1.14.2-R0.1-SNAPSHOT', '1.14.3-R0.1-SNAPSHOT', '1.14.4-R0.1-SNAPSHOT']
bukkitForNms.'1_15_R1' =  ['1.15-R0.1-SNAPSHOT', '1.15.1-R0.1-SNAPSHOT', '1.15.2-R0.1-SNAPSHOT']
bukkitForNms.'1_16_R1' =  ['1.16.1-R0.1-SNAPSHOT']
bukkitForNms.'1_16_R2' =  ['1.16.2-R0.1-SNAPSHOT']
#

so I need to run BuildTools then?
@jovial warren yes

jovial warren
#

I'm using Maven (not my project, I'm decompiling Niall's KiteBoard)

hot hull
#

It's the same for maven and gradle

jovial warren
#

is it? haven't used Maven in ages lol

empty flint
#
  dependencies {
    implementation project(':BlockyNmsLib')
  }

like... gradle is seriously pissing me off

#

it's not even worth learning imo

jovial warren
#

also, what about NMS 1.7?

empty flint
#

nothing but problems when you just repeat stuff that previously worked

jovial warren
empty flint
hot hull
#

Got pinged 400 times :))

jovial warren
#

also wonder why it selected my name

#

I got pinged ~130 times

#

yeah they tried to ping me but forgot >

errant geyser
#

I got pinged 30 ish times, but I don't see any messages mentioning me lol

hot hull
#

Deleted by bass

empty flint
jovial warren
#

@frail glade sorry for the ping, but what the hell is going on in #minecraft ? are we getting botted?

errant geyser
#

No, we're being kidnapped by armed Barry's

hot hull
#

Bardy.. no it's a frat party

#

What do you think

jovial warren
#

lol

#

ya never know these days

errant geyser
jovial warren
lavish notch
#

I'm intrigued to know what initiated it.

jovial warren
#

so am I

prisma wave
#

how are they typing

jovial warren
#

^

prisma wave
#

if the channel is muted

hot hull
#

They aren't

prisma wave
#

oh the messages are just taking time?

empty flint
#

Why you specifically, though?

jovial warren
#

they're still sending messages every so often

hot hull
#

Y'alls discord is slow

prisma wave
#

ah lol

jovial warren
#

ah okay

ocean quartz
#

It's not typing it's being deleted

prisma wave
#

ohh

#

ofc

jovial warren
#

do we not have @loud gyro in here?

empty flint
#

rofl the bots all got levelups

jovial warren
#

Dyno would sort this out in like 1 command

hot hull
#

Dyno is trash

jovial warren
#

it's alright

hot hull
#

He tried at the end

jovial warren
#

Dyno does a good job sometimes

#

also @empty flint if it's not available in BuildTools, guess I gotta download the CB JAR and manually install it to maven local right?

frail glade
#

Not really sure what that was, but we should be good now.

lavish notch
#

It was quite comical.

jovial warren
#

okay

#

yeah it was

lavish notch
#

My mommy doesn't like me, you happy now? 🀣

frail glade
#

Literally sitting here in a lecture and I look over and I see I have 150 pings a minute.

lavish notch
#

I got 14 πŸ˜›

onyx loom
#

i hope ur phone was on silent 😬

hot hull
#

Lmao imagine being in a lecture and your phone legit on loud exploding

jovial warren
#

lol

#

also, anyone here know how to add a JAR to maven local?

#

nvm

remote goblet
#

@ocean quartz do you do nms ?

#

or packets

#

or whatever

ocean quartz
#

Yeah

remote goblet
#

So

#

how would i make it force a player to open a book and quill pepefeet

ocean quartz
#

Oh hmm i actually don't know, never tried that xD

remote goblet
#

well

#

fuck

jovial warren
#

and this is why we don't use Java lol

onyx loom
#

hes using kotlin

remote goblet
#

It turns out

jovial warren
#

yeah I've ran in to NPEs using Kotlin before

remote goblet
#

You can't actually do what im trying to do

#

because opening a book and quill is client side

#

not server side

jovial warren
#

you'll get an NPE if you put your init block and call a method that uses a variable declared underneath the init block

#

(don't ask how I know that lol)

#

@remote goblet you see that faint line all the way over to the right? that's the maximum length a single line can be before it'll wrap the line

#

you can increase it in settings if you want

#

I think the default is 80 chars

#

but I have mine set to like 120 chars because I write way too many one-liners

empty flint
#
    implementation project(':BlockyNmsLib:v1_12_R1')
    implementation project(':BlockyNmsLib:v1_13_R1')
    implementation project(':BlockyNmsLib:v1_13_R2')
    implementation project(':BlockyNmsLib:v1_14_R1')
    implementation project(':BlockyNmsLib:v1_15_R1')
    implementation project(':BlockyNmsLib:v1_16_R1')
    implementation project(':BlockyNmsLib:v1_16_R2')

Any idea how to add implementations dynamically?

#

Something like project(':BlockyNmsLib').subprojects().forEach...

#

ah lol almost had it

#

project(':BlockyNmsLib').getSubprojects().forEach({ implementation it })

jovial warren
#

noice

steel heart
#

project(”:lol”).getSubprojects().each{ project-> dependencies { implementation project}} fingerguns

jovial warren
#

what kinda rubbish is that

#

also why is your name Conclure<?>? it should be Conclure<*> xD

#

because my name is King Circle (Jerk) II

prisma wave
#

pff imagine having generics

jovial warren
#

wdym

prisma wave
#

clojure has no need for generics

#

it just works

jovial warren
#

maybe I'm still Prince Circle (Jerk)

#

lol

subtle lynx
#

the default is 80 chars for a reason ._.

hardy wolf
#

paper mc on #150 rel, have they managed to fix the latest dupe or nah ?

gilded basin
#

which as the piglin one does not work on paper only spigot

hardy wolf
#

i haven't watched how they do it i just know i didn't want to update just yet bc of that

gilded basin
#

if it is that one then it has never worked on paper

hardy wolf
#

nvm just checked dupe fixes plugin, it was patched yesterday already

jovial warren
#

Spigot doesn't fix dupe bugs like that

#

Spigot just waits for Mojang to do it

steel heart
#

it just works
@prisma wave boi generics is so fucked up ngl

#

But it has its functionality

prisma wave
#

static typing is so 2003

steel heart
prisma wave
#

no need for generics

steel heart
#

True but I mean it’s handy in java

jovial warren
#

? super ? lol

prisma wave
#

doesn't compile

lunar cypress
#

best website

#

people are going crazy ways to prove things about type systems

onyx loom
prisma wave
#

type systems are scary

lunar cypress
#

yes

#

this is why you start with dynamically typed languages when you make your own ones typically

#

but on the other hand constraint solvers like haskell's type checker are incredibly impressive

prisma wave
#

haskell

#

gotta learn that

#

looks scary

lunar cypress
#

it is

#

that's the real, pure, mathematical functional programming

#

clojure is vulgar

prisma wave
#

yeah

#

lambda calculus in a language

onyx loom
#

gotta learn that
@prisma wave new circlejerk? 😳

prisma wave
#

absolutely

onyx loom
#

haskell mitten

prisma wave
#

haskell and rust are the most circlejerky languages

static zealot
#

anyone can give me a link to a tutorial or something where I could start learning how to use sql? I'm trying to not use yaml files to save data xD

lunar cypress
#

omg the thought of this server going all the way from java through kotlin and clojure to haskell circlejerk is so unbelievably funny to me

prisma wave
#

lmao

#

i fear some people will be with kotlin forever πŸ˜”

lunar cypress
#

I mean it's basically impossible because this is still mostly about mc and haskell is very hard and bound to a lot of theory but still

prisma wave
#

can't write plugins in haskell 😭

#

or maybe you could with some hideous jni hacks

lunar cypress
#

oh god

#

lmao

#

jni programming in haskell

prisma wave
#

sounds brilliant

lunar cypress
#

this has got to be the worst thing

onyx loom
#

anythings possible

prisma wave
#

trying to do OOP in a pure hardcore functional language

lunar cypress
#

jni isn't oop fortunately

prisma wave
#

but getting java interop is

#

and writing plugins is pretty much oop

lunar cypress
#

p sure this is impossible

#

I don't think haskell even has an ffi

prisma wave
#

😭

lunar cypress
#

oh well i am wrong

prisma wave
#

yay

#

now first off someone needs to make :haskellmoon:

lunar cypress
#

I'll tell you, if you start doing this now, you won't get useful results done for another 3 years

prisma wave
#

probably not

#

but it's a worthy cause

onyx loom
#

first haskell plugin

lunar cypress
#

Imagine what kind of cool stuff we could all do if spigot didn't exist

prisma wave
#

imagine if spigot didn't exist

#

😍

lunar cypress
#

πŸ¦€ πŸ¦€ πŸ¦€

prisma wave
#

:haskellmoon:

empty flint
#

> Internal compiler error. See log for more details

lunar cypress
#

uh oh there's a paper called "bridging the gap between haskell and java" from an uni here

prisma wave
#

oh no

empty flint
#

How do I revert IntelliJ version lol

prisma wave
#

they're like polar opposites lmao

empty flint
#

imagine if spigot didn't exist
@prisma wave What's wrong with spigot?

prisma wave
#

messy

#

inconsistent api

lunar cypress
prisma wave
#

doesn't work half of the time

#

and won't work with haskell

onyx loom
empty flint
#

and won't work with haskell
@prisma wave How many more fucking languages do you need it to work with?

prisma wave
#

all of them

empty flint
#

Like, chill out man and just choose one already

prisma wave
#

i choose haskell

empty flint
#

Next thing you're gonna try is create a plugin in html

onyx loom
#

🀣

prisma wave
#

hmmmmmmmm

onyx loom
#

expanding ur knowledge of languages is nice

empty flint
#

i choose haskell
@prisma wave not an option. pick something else πŸ˜„

prisma wave
#

it is now

#

wait

#

plugins in html would be possible i think

onyx loom
#

LMAO

prisma wave
#

make an html interpreter that converts to java or something

onyx loom
#

😳

empty flint
#

expanding ur knowledge of languages is nice
@onyx loom True, doesn't mean spigot is bad if it's not the tool to use in order to expand that knowledge. That's not its purpose

lunar cypress
#

bm is pretty solid at java and kotlin I'd say so "stick to one language" doesn't really make sense as an argument

onyx loom
#

spigot is bad tho

empty flint
#

make an html interpreter that converts to java or something
@prisma wave Why not make a natural speech interpreter that makes plugins? Then we're all fucked.

prisma wave
#

i'd rather die

#

also

#

where does haskell install

#

i can't find it

#

stack i mean

lunar cypress
#

oh

#

you're in for a ride

prisma wave
#

it installed mingw but nothing else

#

help

lunar cypress
#

you need to compile and install gcc

#

and then a bunch of other stuff

prisma wave
#

I used choco

#

I think it did that

lunar cypress
#

choco on its own doesn't do that

#

if you don't already have it you'll need to work with linux

#

hold on

empty flint
#

=haste

compact perchBOT
#
HelpChat Paste

Please use a paste service to share configs, errors, code and long logs.
β€’ HelpChat Paste

lunar cypress
#

or wait does chocolatey actually work if you don't touch anything else?

prisma wave
#

idk

#

the official guide just says to use chocolatey

#

I just can't find where it installed to lmao

lunar cypress
#

ghci is the repl

prisma wave
#

haskell is not giving a good first impression

empty flint
#

peace of shit gradle can't even do the one thing it is essentially made for

prisma wave
#

@lunar cypress what about the stack executable? IJ wants it

lunar cypress
#

haskell is not beginner friendly in terms of tools

empty flint
#

Does anybody know what to do about an internal gradle compiler error?

prisma wave
#

make sure you're on latest version

lunar cypress
#

does it recognise it as a command?

prisma wave
#

no

lunar cypress
#

well rip

prisma wave
#

so it probably didn't get installed with choco

#

i found an installer

lunar cypress
#

I also used choco but I had to do a bunch of other stuff first

prisma wave
#

:/

lunar cypress
#

C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.10.1\bin\ghci.exe

#

here is my installation

prisma wave
#

mine is the same

#

but a newer version

#

got it working

lunar cypress
#

cool

#

you were like half an hour faster than me then

prisma wave
#

wow

lunar cypress
#

the fun thing about haskell is that 80% of its resources and docs are from 1997

#

I'll be learning it in uni but until then lord knows how

prisma wave
#

wut

#

i thought it was pretty modern?

#

oh apparently not

lunar cypress
#

It's quite old and an academic language

#

It is used in practice as well but it's rather made with the maths and purity in mind than actual practical usage

#

which differentiates it from lisps for example

prisma wave
#

yeah im getting that impression

lunar cypress
#

and I know haskell fans would hang me for saying this

#

don't get me wrong it is definitely usable, it's not a purely academic language

#

it's used in server backends mostly

prisma wave
#

i see

#

might make a little server to learn then

lunar cypress
#

I also want to pick up learning it again, but last time I simply got frustrated by the high entry barrier and I couldn't figure out the simplest things

prisma wave
#

off to a great start

empty flint
#

hm does your gradle --version also output

Gradle 6.6.1
------------------------------------------------------------

Build time:   2020-08-25 16:29:12 UTC
Revision:     f2d1fb54a951d8b11d25748e4711bec8d128d7e3

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020

Kotlin version 1.3.72 ?!

jovial warren
#

okay @heady birch were you drunk when you wrote this code: ```java
list.add(a.substring(0, Math.min(Math.max(j, 0), a.length())) + "Β§7" + a.substring(Math.max(0, Math.min(j, a.length())), Math.min(a.length(), Math.max(0, j + 1))) + "Β§8" + a.substring(Math.max(0, Math.min(j + 1, a.length())), Math.min(a.length(), Math.max(0, j + 2))) + "Β§0" + a.substring(Math.max(0, Math.min(j + 2, a.length())), Math.min(a.length(), Math.max(0, j + 3))));

onyx loom
#

niall is never drunk 🌝

jovial warren
#

you sure about that?

#

because after that block of code, idk anymore lol

lunar cypress
#

No he only takes lsd

jovial warren
#

haha lol

#

seems legit

lunar cypress
#

Beautiful code though. Not that I'll even start thinking about what it does, but simply artistic

#

You know all the famous musicians also took drugs before they wrote their masterpieces

empty flint
#

have you ever coded while high?

onyx loom
#

maybe

jovial warren
#

@empty flint nope lol

#

@lunar cypress you realise that's not all of it right?

#

he didn't just write code like that once

#

he wrote code like that three times

#

I mean, he did say something like "wait until you get to the animations" earlier, and I am on the animations now so, I guess I was warned

lunar cypress
#

Lol

#

have you ever coded while high?
@empty flint yeah actually. Was not very productive

jovial warren
#

also, just for a bit of context if you don't know, Niall gave me permission to deobfuscate and decompile KiteBoard

#

so that's what I've been doing all day

lunar cypress
#

Sounds like fun

empty flint
#

@empty flint yeah actually. Was not very productive
@lunar cypress Really? I made some of my best work while high πŸ˜„ No idea how it works but it is faster than any of my previous attempts and has not failed yet

#

I'm sure I could figure out what I did

#

but I'm not touching that

#

Then again I did have very unproductive sessions as well I guess

lunar cypress
#

Yeah, did nothing for me

#

I also tried finishing a project after coming home drunk once but as you may expect it was worse

empty flint
#

uh yeah hard pass on drunk coding

jovial warren
#

@lunar cypress yeah it is, I actually had no idea that deobfuscation was this fun lol

#

and I'm actually improving KiteBoard's API and other stuff whilst I'm at it as well, so 2 in 1

lunar cypress
#

Oh really? I was being kinda sarcastic

jovial warren
#

no, it is actually kinda fun, once you get past all the copy and paste crap

#

it's really exciting just seeing a broken apart project just come together

lunar cypress
#

Man, you must be everybody's darling. Enjoying making sense of other people's messes

jovial warren
#

haha lol

#

you do get good satisfaction from seeing something you put loads of effort in to start to pay off

jovial warren
#

anyway, it's bed time now lol, good night all

obtuse gale
#

Hey all, just joined, I came here with a question, has anyone looked into making a plugin or adding a feature to a plugin that would generate an item non-destroyable in lava/fire, like netherite tools, ingots, blocks, etc.

I was thinking of a nice feature but not sure if its actually possible, has anyone else came across this or tried to recreate it? And as far as I know netherite doesn't have any weird or new NBT tags. Would love to hear some thoughts on this, mention me your opinions πŸ™‚

jovial warren
#

Might be possible with NMS idk

#

Though things like that are fully hard-coded

obtuse gale
#

IIRC, Choco wanted to expose that to the Bukkit API

#

But it had some strange behaviors, like entities "dying" client-side but they were still on the server perfectly intact.

#

Or something like that

ocean quartz
#

Could be done with the damage event though, i think
Just won't look as good as netherite

empty flint
#

I just went through the ordeal of having to remove all traces of kotlin from my PC and clean install the kotlin compiler πŸ™ƒ

heady birch
#

is that the fade animation?

#

looks nothing like that

hot hull
#

@obtuse gale You could just assign an nbt to an item and then on lava burn event and shit check if the item has the nbt and cancel it

empty flint
#

I literally have no idea what to do anymore

hot hull
dusky drum
#

im so friking confused now

#

im so confused

#

like wtf?

obtuse gale
#

Is there a max amount of chars on whatever your putting it on? Maybe that holographic can only have so many chars

dusky drum
#

nop

#

tested

#

i dont belive length is an issue

#

i guess i'll have to do more debuging

#

thats why im confused

heady birch
#

I should open source my gradient stuff

dusky drum
#

Hehe

foggy pond
#

Guys is SQLite similar to MySQL?

dusky drum
#

if i print entire text to console:
Count: 48 Text: οΏ½xοΏ½οΏ½xlοΏ½xHοΏ½xoοΏ½xlοΏ½xoοΏ½xgοΏ½xrοΏ½xaοΏ½xpοΏ½xhοΏ½xiοΏ½xcοΏ½xPοΏ½xlοΏ½xaοΏ½xcοΏ½xeοΏ½xhοΏ½xoοΏ½xlοΏ½xdοΏ½xeοΏ½xrοΏ½xsοΏ½x οΏ½xeοΏ½xxοΏ½xaοΏ½xmοΏ½xpοΏ½xlοΏ½xeοΏ½x.οΏ½x οΏ½x%οΏ½xpοΏ½xlοΏ½xaοΏ½xyοΏ½xeοΏ½xrοΏ½x_οΏ½xnοΏ½xaοΏ½xmοΏ½xeοΏ½x%
its right there but no idk where it dissappears

foggy pond
#

The way that it works?

#

(And the way that queries are created)

#

And updated

heady birch
#

pretty much yeah

obtuse gale
#

SQLite is local,

heady birch
#

there are some syntax differences

foggy pond
#

Oh then if I have figured out MySQL I won't have many issues with SQLite

dusky drum
#

pretty much ye.

dusky drum
#

im having brain lags with this gradient stuff.

#

like i just cant ..

foggy pond
#

Trying to make gradients in 1.16?

#

Figured it out about a month ago, took me several days

Not easy at all

#

And it is also very buggy

dusky drum
#

its not that my text just dissapears

#

like half of it is gonner

foggy pond
#

How even πŸ˜‚

dusky drum
#

i have no idea

#

thats the problem

foggy pond
#

I never experienced that issue myself

#

Where are you trying to make the gradients work?

dusky drum
#

in text

#

hologram

#

i guess i figured it out now

foggy pond
#

In holograms? Do they support hex colors?

#

They should right

#

Since entity names support hex colors

dusky drum
#

if you make extension yes

jovial warren
#

@heady birch if you're gonna open-source anything, open-source KiteBoard's API

#

Also I think my old messages got lost in the oblivion lol

#

I asked if I could show what I've currently got in the kiteboard-api module

empty flint
#

could somebody give me a working build.gradle root and subproject file so I could take a look at how to set this shit up?

jovial warren
#

What you struggling with?

empty flint
#

kotlin compiler errors and shit

#

whenever I add my lib project

#

it just fucks up the kotlin compiler

#

e: java.lang.AssertionError: Recursion detected on input: equals under LockBasedStorageManager@7432de87 (TopDownAnalyzer for JVM)

jovial warren
#

All you need is this: ```groovy
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.4.0'
}

allprojects {
repositories {
mavenCentral()
}
}

subprojects {
dependencies {
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
}
}

empty flint
#

if you wanna take a look

jovial warren
#

Show me your parent build

empty flint
#

bruh

#

I think that was it

#

lemme try something

#

I think the stdlib was missing

#

hooooooooly

jovial warren
empty flint
#

dude

#

try figuring this out when you have no idea how gradle works and the internet tells you the stdlib is included by default

#

when you include the plugin

#

fucking hell man

jovial warren
#

What kinda idiot told you that?

#

Lol

empty flint
#

I looked up how to include the stdlib, all the results said it's included if I add the kotlin jvm plugin

#

like

jovial warren
#

Yeah that's BS

#

You need a dependency to use Kotlin

prisma wave
#

it is included

#

since 1.4

jovial warren
#

Ah since 1.4

prisma wave
#

which has caused numerous problems for pdm

empty flint
#

it is included
@prisma wave aparently not

prisma wave
#

I'm not sure it will be for subprojects

empty flint
#

but it might have something to do with gradle using kotlin 1.3.7 to compile for wahtever reason

prisma wave
#

but if you add the 1.4 plugin, it gets added to that project

empty flint
#

I did add that plugin

#

but yeah maybe not for subprojects, idk

#

I still don't 100% trust it works

#

gotta uncomment all the stuff I removed to see if it was the culprit

jovial warren
#

Β―\_(ツ)_/Β―

empty flint
#

ah nop

#

still

#

fucks up

#

yeah and stdlib 1.4.0 is included

#

=haste

compact perchBOT
#
HelpChat Paste

Please use a paste service to share configs, errors, code and long logs.
β€’ HelpChat Paste

empty flint
#

this is my root build file

#

note that spigotApi(latest) is just a function I made that returns the appropriate spigot api implementation, just in case ur wondering.

#

LOl

#

ok so it very likely has to do with my code

#

I removed the src folder and it didn't fuck up the compiler

#

Ok I found it

#

why does this work:
object Server : Server by Bukkit.getServer()
but this doesn't:
object PluginManager : PluginManager by Bukkit.getPluginManager()

#

Any ideas?

jovial warren
#

@pallid gale why doesn't the HC paste have line numbers smh

#

Probably either an outdated version or a setting, or both

#

@empty flint what are you doing lol

#

just use typealias, no?

obtuse gale
#

?

#

There are line numbers

jovial warren
#

I can't see them

#

nvm there are, I just had dark BG & light text on lol

prisma wave
#

@empty flint 2 classes with the same name

#

it's extending itself

#

I did actually point this out a while ago

#

it's like class Server : Server

empty flint
#

hm

#

makes perfect sense

prisma wave
#

just make a top level property

#

val server = Bukkit.getServer()

obtuse gale
#

how does by work?

prisma wave
#

compiler generated delegation

obtuse gale
#

I understand that completely....

prisma wave
#

it will override all of the Server methods with a call to the Bukkit.getServer

#

eg kotlin object BukkitServer : Server { override fun getOnlinePlayers() = Bukkit.getServer().getOnlinePlayers() //etc }

empty flint
#

@prisma wave what's typealias?

prisma wave
#

makes an alias for a type

#

often used with complex function types

empty flint
#

can you give an example of how it works?

prisma wave
#

eg typealias PlayerProvider = () -> Player

#

not sure that's the right syntax

#

might be a :

#

but you could then use PlayerProvider instead of () -> Player everywhere

empty flint
#

aaah

#

cool

#

How does processResources work?

#

cuz right now it just removes my plugin.yml from the jar

jovial warren
#

wat

#

processResources, from the name, processes... resources...

empty flint
#
  processResources {
    include 'src/main/resources/plugin.yml'
    filter(ReplaceTokens, tokens: ['name': name, 'main': "$group.$name", 'version': version])
  }
jovial warren
#

most people around here use filter though yeah

#

you forgot from() I think

#

@prisma wave

prisma wave
#

yea you need a from

empty flint
#

does it have to have a from() even if I use include?

#

found this format online as well

prisma wave
#

i believe so

jovial warren
#
processResources {
    from 'src/main/resources' {
        include 'plugin.yml'
        filter(ReplaceTokens, tokens: ['name': name, 'main': "$group.$name", 'version': version])
    }
}
#

or something like that

#

that's how I like to do it anyway

empty flint
#

> No signature of method: build_7vjmkwww1pehxex7cyok1owdl.tasks() is applicable for argument types: (build_7vjmkwww1pehxex7cyok1owdl$_run_closure2) values: [build_7vjmkwww1pehxex7cyok1owdl$_run_closure2@526a8b66] Possible solutions: tap(groovy.lang.Closure), wait(), any(), wait(long), files([Ljava.lang.Object;), use([Ljava.lang.Object;)

#

no closure for the from method

#

org.codehaus.groovy.runtime.GStringImpl cannot be cast to java.lang.String

prisma wave
#

from(sourceSets.main.resources.srcDirs)

#
   from(sourceSets.main.resources.srcDirs) {
        filter ReplaceTokens, tokens: [version: version]
    }```
empty flint
#

can I specify certain files there?

prisma wave
#

I think you can add the include

#

but why would you want to?

empty flint
#

because I will have more than just the plugin.yml in the resources folder

prisma wave
#

doubt it will make any significant difference

#

but yeah i guess

empty flint
#
Circular dependency between the following tasks:
:BlockyDebug:processResources
\--- :BlockyDebug:processResources (*)

eh... what?!

#
processResources {
    from sourceSets.main.resources.srcDirs {
      include 'plugin.yml'
      filter(ReplaceTokens, tokens: ['name': name, 'main': "$group.$name", 'version': version])
    }
  }
jovial warren
#

is it just me who ever since they started using Kotlin, they now write Java code using very strict nullability rules lol

empty flint
#

oh

#

maybe the ()

jovial warren
#

like I'm using @NotNull and @Nullable everywhere now, even when I don't need to

obtuse gale
#

is it just me who ever since they started using Kotlin, they now write Java code using very strict nullability rules lol
yeah not me

#

I just dont write java code at all

jovial warren
#

I'm deobfuscating KiteBoard, which is written in Java

empty flint
#

@prisma wave nah still getting > org.codehaus.groovy.runtime.GStringImpl cannot be cast to java.lang.String error

jovial warren
#

if @heady birch open-sources KiteBoard, I'm probably gonna rewrite it all in Kotlin lol

empty flint
#

the filter method doesn't like it

#

'filter(ReplaceTokens, tokens: ['name': name, 'main': main, 'version': version])'

#

ayyy

#

it worked

#

finally

#

first time my plugin jar built

#

fucking gradle

#

fucking kotlin

#

fucking IJ

jovial warren
#

lol

empty flint
#

I swear this was so much faster in Eclipse + Maven xD

#

Then again, I think this will be more robust

#

once it works

hot hull
#

You trynna start a crusade?

jovial warren
#

^

empty flint
#

And what if I was?

jovial warren
#

Gradle + Kotlin + IJ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Maven + Java + Eclipse ew

empty flint
#

Ur in Slovenia, right?

jovial warren
#

oof

#

hey @heady birch, what are the built-in interpolation strategies btw?

#

nvm I think I figured it out

hot hull
#

I'm 30 min away Blocky, better watch out

empty flint
#

bitch I dare you, got some beer in the fridge if you wanna just chill

hot hull
#

lol

jovial warren
#

haha lol

#

man I'd have to book a flight to come and join you two lol

obtuse gale
#

My hotswapping still isnt working :((

hot hull
#

Bardy, you're not old enough fingerguns

obtuse gale
quiet depot
#

show me ur setup aj

#

take a screenshot of ur server run config in ij

#

and make sure hotswapagent is enabled in settings

#

if ur using dcevm

#

also ensure you’re running the server in debug mode

#

@obtuse gale

hot hull
#

Piggy, so I think I might rewritte FJ from scratch again ,-,

quiet depot
#

with java?

hot hull
#

Hell no

quiet depot
#

idc then

hot hull
#

I am gonna need help when it comes to modules tho

quiet depot
#

why tf would fj need modules

obtuse gale
#

I mean I wasnt running the server in debug mode but it didnt seem to change anything when I just tried it then

hot hull
#

Bungee

obtuse gale
#

Also where would I look for the hotswapagent in settings?\

quiet depot
#

wat

#

wym bungee

#

do u mean gradle subprojects?

hot hull
#

gonna make a bungee version, and yes, just the common, spigot, and bungee bs

quiet depot
#

@obtuse gale just search hotswapagent in settings

#

ah ok

obtuse gale
quiet depot
#

pls tell me Z:\MapMinigames is ur project dir

#

o lol

#

u don’t have the plugin

#

did u follow the guide exactly?

obtuse gale
#

mhm

#

I think so at leasrt

quiet depot
#

well obviously not

obtuse gale
#

o

#

i see

quiet depot
#

cuz ur missing the hotswapagent plugin

#

the second paragraph of the guide

obtuse gale
#

too much text smh

quiet depot
#

reading is good for u

obtuse gale
#

OH WAIT

quiet depot
#

it’s even in a little box, it’s impossible to miss

obtuse gale
quiet depot
#

yeah that ploogin

obtuse gale
#

was already installed

quiet depot
#

oh lol

#

u put a space in the search

obtuse gale
#

I think ive done this before

quiet depot
#

I didn’t say do a space boy

#

u have to do it everytine

obtuse gale
#

I didnt...

quiet depot
#

everytime*

obtuse gale
#

Theres literally no spaces there

quiet depot
#

meant the settings

obtuse gale
#

o

#

o

#

guessing thats meant to be on

quiet depot
#

ye click enable

#

and ignore that error, it’s false

obtuse gale
#

alright

hot hull
#

So I want to have a handler which handles motds and formats, but not sure what to name it, any suggestions?

quiet depot
#

formats?

hot hull
#

formats yes..

obtuse gale
#

We've got frozenjoin when are we getting frozenleave?

hot hull
#

What a comedian

quiet depot
#

idk what u mean by that, I’ve never used frozenjoin

hot hull
#

Have u used dchat?

obtuse gale
#

You need to make a frozenThing for each event

quiet depot
#

ye

hot hull
#

Same shit it uses, formats

#

The shit that dictates what join/quit message is used

quiet depot
#

What’s the similarity between formats and motds?

obtuse gale
#

its tsill not working lol

quiet depot
#

and what does the handler do? Is it setting the motd/format on the actual game, or just storing their deserialized forms?

#

how r u running it aj?

#

the server

obtuse gale
#

the run config

quiet depot
#

yeah, how r u starting it

hot hull
#

There is none, just both are gonna be objects, should I have them split up? It's going to be like 20 lines per each so didn't want to split them up

It'll load them from config into objects Piggy, and have a method to call them from the events

obtuse gale
#

the run config?

hot hull
#

handler is probably not the right thing to call it

#

But my mind is blank fingerguns

quiet depot
#

sounds like a util class

#

nah actually

#

idek

hot hull
#

Not really Piggy

quiet depot
#

Yeah I wouldn’t group them

empty flint
#

So I want to have a handler which handles motds and formats, but not sure what to name it, any suggestions?
@hot hull Formatter Messenger TextLord

quiet depot
#

Just have them as objects, and call them manually in the motd & format handlers

hot hull
#

Well yes but I still need something to actually load them, so should I call it a FormatLoader or what?

#

or just FormatManager

quiet depot
#

neither

#

use type adapters

hot hull
#

a what

quiet depot
#

snakeyaml should handle deserializing your yaml into your objects

hot hull
#

That'll be a util class yes, but I still need a storage for them

quiet depot
#

although idk how, I cheat and use gson to do it

#

nah

hot hull
#

Don't wanna call them from config all the time

quiet depot
#

oh yeah storage right

#

idk I use guice for that lol

hot hull
#

Gosh darn cheater

quiet depot
#

maybe just store the objects in ur filemanager

#

that’s probs what I would do

hot hull
#

I don't even need a filemanager so kek

quiet depot
#

well u will if u use snakeyaml/gson

#

If ur interested, I can point u to the relevant code in papi 3

hot hull
#

Yes please

obtuse gale
#

what shokuld i be pushing to run the server lol, neither the debug icon or the play icon works

quiet depot
#

u use the debug icon (shift + f9)

#

if it aint working

#

then Β―_(ツ)_/Β―

#

frosty

#

so like we deserialize the yaml into a map via snakeyaml

#

then we convert that to a gson tree

#

then map that to our object

obtuse gale
#

if i click the reload classes buttons manually it tells me this

quiet depot
#

which sounds complicated but is done in a single line

obtuse gale
quiet depot
#

well then u haven’t changed any classes 4head

empty flint
#

Hey @ocean quartz, what markdown standard does your MSG framework follow?

quiet depot
#

or

obtuse gale
#

I have changed classes tho

quiet depot
#

maybe it’s something todo with output dir

#

u exporting the jar directly to the plugins folder?

obtuse gale
#

jar.destinationDir(file("$rootDir/server/plugins")) mhm

quiet depot
#

dude I’ve got no clue sorry

obtuse gale
#

alright all good ill keep looking, thanks

quiet depot
#

if ur on tomorrow might be able to jump in vc and help

#

out atm tho

hot hull
regal gale
#

In the ExpansionUtils in Javascript-Expansion, I've made 2 utils to convert from Nashorn JSON -> Map & YAML -> Map. No idea if you can use them as reference 🀷

hot hull
#

(This is the general structure, not considering what will be in what module)

regal gale
#

Looks (somewhat) messy on the code, but it's my only choice to make it work

jovial warren
#

@hot hull not a bad structure

#

as long as you don't include any disgusting Java code in the project we should be good πŸ‘

hot hull
#

Well I have to 1 class

jovial warren
#

we can find a way around that

hot hull
#

Hopefully :((

jovial warren
#

thou shalt not publish thy software with a mixed codebase

#

rule ~5 in the Laws of Programming xD

dusky drum
#

my text dissapears

hot hull
#

Is there a way you can specify a latest version for the gradle version?

jovial warren
#

I swear, having to pick apart all of KiteBoard's Java code has given me a new-found respect for what the JetBrains team have pulled off with Kotlin

hot hull
#

So i don't have to change it for every update cause I'm lazy

jovial warren
#

Is there a way you can specify a latest version for the gradle version?
where are you even specifying the Gradle version?

hot hull
#

gradle-wrapper.properties

jovial warren
#

you can't just have it auto-update the wrapper for you lol

hot hull
#

Well I mean

jovial warren
#

it's literally just gradle wrapper --gradle-version GRADLE_VERSION --distribution-type DISTRIBUTION_TYPE

#

and it's not like Gradle updates that often anyway

#

so stop being a lazy shitbag and just do it manually like normal people xD

hot hull
#

;((

ocean quartz
#

@empty flint Discord's

quiet depot
#

o

#

i usually just change the ver in the file lol

#

don’t run no fancy commands

hot hull
#

What would be the equivalent of this in gradle

    <modules>
        <module>bootstrap</module>
        <module>common</module>
        <module>connector</module>
    </modules>
#

I tried pasting in but it doesn't convert it

quiet depot
#

equivalent

#

and erm

#

check papi 3 settings.gradle

hot hull
#

k

onyx loom
#

@quiet depot can we get a multi spinerino pleaserino fingerguns

quiet depot
#
include (
    "bootstrap",
    "common",
    "connector"
)```
empty flint
#

@empty flint Discord's
@ocean quartz Any chance of using your framework in JS for web development?

hot hull
#

Yea papi3 doesn't have that

quiet depot
#

it does

#

in the settings.gradle

hot hull
#

ah settings.gradle

quiet depot
#

@empty flint the commands one?

empty flint
#

yeah

quiet depot
#

iirc mf isn’t abstracted, so short answer no

empty flint
#

hm

quiet depot
#

and even if it was

#

still no

ocean quartz
#

Wait commands one? I thought we were talking about the markdown xD

empty flint
#

no sorry the msg one, yeah

quiet depot
#

because you can’t abstract strings (command args) & web requests into the same object

ocean quartz
#

Also piggy I started the rewrite to make it abstract

quiet depot
#

they’re just nothing alike

#

ah ok markdown

empty flint
#

What does "abstract" mean in this context?

#

Multi-platform?

quiet depot
#

sure

empty flint
#

So when it's abstracted you can use it in JavaScript as well?

quiet depot
#

no

empty flint
#

ah well

quiet depot
#

i mean

empty flint
#

So here's what I wanna do

quiet depot
#

you could use it in kotlin, and compile to js

#

I think

ocean quartz
#

And Blocky it uses CommonMark java, which i modified to be like discord, it actually turns it into HTML, if you search well you'll prolly find CommonMark js too

empty flint
#

Oh really?

quiet depot
#

matt

#

you avoided adventure (kyori text) previously right?
for mf*

empty flint
#

so you interpret the html that gets parsed into color codes?

quiet depot
#

or am I thinking of someone else

empty flint
#

or sorry the markdown gets parsed into html and you convert that to color codes?

ocean quartz
#

Yeah xD
Then bungee gave me headache so i made it with packets
Though i made it in a way that i can add adventure support pretty easily

hot hull
#

Does IJ have an option to hide certain dirs?

quiet depot
#

@onyx loom o shit

#

forgot

#

=multi spin

compact perchBOT
#
New XP Multiplier...
obtuse gale
#

oo

onyx loom
#

u ignored me for a second then angry_fingerguns

#

thank

ocean quartz
#

@empty flint No, it normally parses to HTML i made it parse to MC

quiet depot
#

matt you’re shooting yourself in the foot by not using adventure now

#

it has multi platform abstractions (like for commandsender)

#

you really should use it

#

it doesn’t make sense not to

dusky drum
#

omg

#

we got multiplier?

quiet depot
#

yes

dusky drum
#

great :3

ocean quartz
#

Yeah, like i said i can easily do it now, so i might add tomorrow or something

obtuse gale
ocean quartz
#

I made it pretty abstract this time just for that

empty flint
#

@empty flint No, it normally parses to HTML i made it parse to MC
@ocean quartz Ah got it. I kinda need it the reverse way anyhow. I want to make a website where if I enter a valid MC color coded string (and here I want to support your markdown stuff as well), it gets displayed like it would in Minecraft

#

For customization purposes

#

And so I need to parse the color code with JavaScript and output html that gets formatted accordingly

dusky drum
empty flint
#

but that shouldn't be an issue I don't think

hot hull
#

Gasper

#

LiSkOv