#dev-general

1 messages ยท Page 147 of 1

frail glade
#

Barry isn't Java.

distant sun
#

Yea

analog crater
#

Its nodejs right? Or am I misguided

distant sun
#

Yes

#

You can probably do graphs with only java awt

#

Connect dots and there you go

analog crater
#

It seems to run pretty well for a nodejs program.

#

Ok. Ill try and connect dots using awt

distant sun
#

Doesnt google have an api for graphs / charts?

onyx loom
#

barry uses canvas afaik

#

idk if thats for the graphs tho

analog crater
#

as in awt canvas

#

?

prisma wave
#

js canvas

empty flint
#

Is it possible to let a chunk unload if the server deems it okay to do so, after calling Chunk.load(true)?

#

I don't want to specifically force it to unload, in case a player or something else needs it loaded, but to sort of "let go" of the chunk and let the server handle it as it is needed?

ocean quartz
frigid badge
#

Finally windows updated and I was able to convert my wsl 1 to wsl2

#

took fucking ages

frail glade
#

Hehe

analog crater
#

Does anyone know how to use repl.it for production react builds?

#

Using something like serve

obtuse gale
#

yo have you guys heard of bitbucket before? What is it, and what does it do?

frigid badge
#

you don't use serve in production

#

@obtuse gale github alternative

#

and repl.it is for creating code not for creating production builds

analog crater
#

What do I use. Ive never used this production scriot

frigid badge
#

just run npm run build

#

then your production files are in /build

analog crater
#

On repl? Thats what id normally do but my client is a tight arse wont get a vos

#

vps

frigid badge
#

repl is for coding...?

#

not for creating builds & deploying??

analog crater
#

He wants to use it as a host lol

prisma wave
#

bruh

#

what

frigid badge
#

oh you mean like github pages

analog crater
#

yeha that kinda thing

frigid badge
#

ugly af

#

well just make sure repl.it serves your build directory

errant geyser
#

BM when's that lang competition and are you still doing it after Sx went poof? and am I still invited ๐Ÿ˜ญ

analog crater
#

wait what. Sxtanna left?

errant geyser
#

Think so

#

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

analog crater
#

๐Ÿ˜ฆ he was smart asf

errant geyser
#

That's why we have senpai

analog crater
#

who

errant geyser
#

๐Ÿ˜ฑ

#

BM

#

The true lord and senpai

prisma wave
#

hello

#

c'est moi

analog crater
#

Hallo

prisma wave
#

I think registration started yesterday

#

the actual thing starts on the 10th

#

idk how enthusiastic sx is tbh

#

he's ghosted me for 2 days straight now

errant geyser
#

Rip

prisma wave
#

so I guess you can be in it

#

idk if we're actually gonna end up doing it though

errant geyser
#

You're telling me I have to enter it with my IRL friends who have no idea what the fuck they're doing, to the point they dont even know a single langauge

prisma wave
#

hah

#

maybe

errant geyser
#

Holy shit this is a disaster

prisma wave
#

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

#

I guess anyone who wants to help out with elara is welcome to

errant geyser
#

Is there a max team size

prisma wave
#

i'll check

errant geyser
#

Or can we start Effectively HCCCE 2.0โ„ข๏ธ

prisma wave
#

Could do ๐Ÿ‘€

#

there are lots of clever people here still

onyx loom
#

hccce 2.0 = elara? ๐Ÿ‘€

analog crater
#

Did hccce 1 0 die because clip stopped responding to the and I havent hear dnay news

errant geyser
#

Indeed, I'd imagine Matt's next move is to make an entire langauge in markdown syntax

prisma wave
#

Doesn't say there's a maximum team size

#

although with more than 5 people this could get complicated

errant geyser
#

Loophole exploited

prisma wave
#

also, it wants unique ideas

errant geyser
#

Idk what loophole

#

But its exploited

#

Ok this could be serwious

prisma wave
#

could be

#

welp, here's my proposal that I sent to sx and he ignored

#

it's not very detailed yet

#

but it's got some cool ideas I think

errant geyser
#

Looks pretty interesting

prisma wave
#

merci

#

we can build on syntax once we actually have a basic idea

errant geyser
#

Bear in mind I've never built a lexer/parser, much less a langauge before, is there anything I should know

prisma wave
#

not really

#

I'm not sure we'll have time to do the lexer and parser ourselves, we might need to use an existing library

#

maybe, maybe not

errant geyser
#

Could we not "re use" Frigga/Odin's and change it up to what we want?

prisma wave
#

possibly

#

Frigga is using antlr which generates one for you

#

based on a grammar

#

but speaking from experience, it's a pain in the ass

#

and Odin's is a mess

errant geyser
#

Nice

#

Ok so I guess that's the first thing I'm researching

frigid badge
#

what's the language you want to build it in

prisma wave
#

that's another good question

#

the obvious answer is Kotlin or Java

errant geyser
#

Didn't you want to do it in Kotlin or Clojure?

prisma wave
#

but maybe we could write the lexer and parser in something faster

#

I'm not familiar enough with clojure

errant geyser
#

Go lexer when

frigid badge
#

probably some jni/jna libaries

prisma wave
#

Sx actually made his in Go iirc

#

yeah with jni

errant geyser
#

I've also never used Go, guess that's another starting point

prisma wave
#

Go is fairly simple

frigid badge
#

can also use c/cpp

prisma wave
#

could do

errant geyser
#

Interessant

prisma wave
#

only if we have someone who's familiar though

frigid badge
#

Interessant
bruh why you speak my native language

errant geyser
#

Hey Leemmmooooo

#

You know you know C

frigid badge
#

smh

errant geyser
#

bruh why you speak my native language

I dont, I just learnt it from a class in school and cant shake it

frigid badge
prisma wave
#

your docker addiction is scary

frigid badge
#

inb4 I use kubernetes for ecloud

prisma wave
#

uh oh

errant geyser
#

Cant read that on mobile so no idea what it is, I assume its something to do with the docker you've been messing with for hours, gj

frigid badge
#

I mean I just find it incredibly useful

#

and at work I mostly make all the dockerfiles etc

errant geyser
#

I've only once used Docker, and that's for my Jenkins since it was super easy to set up

#

Looks kinda cool though

prisma wave
#

it is cool

frigid badge
#

I've removed use of jenkins for ecloud tho

#

also for self hosted CIs I'd recommend using teamcity

#

but yes docker is very neat

errant geyser
#

Meh

#

Jenkins does its job

frigid badge
#

I don't even have a database server installed on my laptop

errant geyser
#

I just have XAMPP

frigid badge
#

ew

errant geyser
#

I know, I know, but it's really easy for MySQL databases

frigid badge
#

docker is easier

prisma wave
#

can I just express

#

how much I despise antlr

#

I am literally about to punch something

frigid badge
#

github actions is weird, you can upload and download artifacts but not remove them

#

and there's a storage limit which does not reset

#

that makes zero sense

frigid badge
#

I mean @prisma wave It might be an addiction but look at #ecloud smexy

ocean quartz
#

@old wyvern reading over your fork now and trying to understand the grammar, looks pretty nice

keen creek
#

how do i cancel the death event?

obtuse gale
#

Is your server on paper?

#

If so I think you can cancel it

#

If not I think you juts gotta listen for the damage event or smthn

keen creek
#

ok

old wyvern
#

reading over your fork now and trying to understand the grammar, looks pretty nice
@ocean quartz
Yea now need to finish the Parser part to actually find the exact grammer rule to use and build the result from those.

old wyvern
#

I think registration started yesterday
@prisma wave
Where does one register?

foggy pond
#

@distant sun I saw the error you sent for iridescent, what plugin are you trying to use iridescent with? And what line of text are you trying to color?

distant sun
#

I get that right after the plugin is being enabled

#

The only places where I have hex are KiteBoard (default config) and TAB (through luckperms prefix)

hot hull
#

I saw a kiteboard mention in there

heady birch
#

Wheres the error?

distant sun
#

Looks like it's from KB, didnt noticed

hot hull
heady birch
#

haha yes

#

i do set empty to be null instead

distant sun
#

Smh

heady birch
#

๐Ÿ™‚

#

Although this is actually a bug

#

I still need to send when empty

#

@foggy pond Check if prefix/suffix is null

heady birch
#

Anyway I have changed that to not return null any more

hot hull
#

@steel heart You can actually store shit within a block state :OOO

heady birch
#

๐Ÿ˜ณ

#

no way

#

what like

lunar cypress
#

but not persistently, right?

hot hull
#

I'll see, but I'd assume it's persistent

heady birch
#

doubt

hot hull
#

Yea no persistency :((

heady birch
#

Hm

#

I may or may not have added spring to kiteboard

errant geyser
#

oh god

#

Road to 1GB jar

heady birch
#

Well I chcked the maven

#

only 1.4mb apparently

#

it better count its dependencies

#

else

#

one unhappy me ๐Ÿ™‚

quiet depot
#

๐Ÿ˜ฎ

#

spring in 1.4mb

#

that's smaller than rpf

errant geyser
#

What does rpf do again? please don't hurt me

quiet depot
#

idek katsumag

#

bit of everything

errant geyser
#

oh ok

heady birch
#

Nice

#

NOOOOOOOOO

#

ITS 4.3 MB

#

time to take matters into my own hands

errant geyser
#

oh god

heady birch
#

not funny

#

I just added annotations to everything

#

Got it down to 3.6

#

beans

#

Down to.... 4kb ๐Ÿ˜

#

Magic- I got spring + kiteboard into 308kb

hot hull
#

PDM*

heady birch
#

no

#

minimizeJar

#

Well it probably wont run

#

I havnt tested it yet

errant geyser
#

if that works

hot hull
#

bruh my IJ is broken

heady birch
#

it didnt work

#

mavens thing is so shit

#

it includes stupid things

#

then excludes stuff I obvisouly use in the code

errant geyser
#

use Gradle kek

#

I have no idea how you'd do it, but you can exclude things from the jar

heady birch
#

same with maven

#

and

#

i dont fancy re-structuring this project

errant geyser
#

F

heady birch
#

Maybe I should just have not added spring

#

Liskov is a pain with spring

#

The context extends about 10 separate other classes

empty flint
#

Is anybody proficient with database design? I kinda need help because I feel like my approach to my problem is wrong

hot hull
#

Niall is fingerguns_reversed

empty flint
#

Niall mind if I annoy you for a bit?

errant geyser
#

Oh god, Niall no Enterprise Logicโ„ข๏ธ names here

heady birch
#

ClassPathXmlApplicationContext
AbstractXmlApplicationContext
AbstractRefreshableConfigApplicationContext
AbstractRefreshableApplicationContext, BeanNameAware, InitializingBean
AbstractApplicationContext
DefaultResourceLoader, ConfigurableApplicationContext
ApplicationContext, Lifecycle, Closable
AutoClosable

quiet depot
#

"AutoClosable"

#

isn't that a part of the jdk?

heady birch
#

idk

#

Yes it is

quiet depot
heady birch
#

so is Closable

quiet depot
#

smh niall

heady birch
#

What

quiet depot
#

use the jdk ver

heady birch
#

?

#

Spring does

quiet depot
#

they have the advantage of automatically closing in try/catches

#

oh

#

then why did u list it before?

heady birch
#

I was just showing all the classes that context extends

quiet depot
#

oh ok

heady birch
#

big

quiet depot
#

I thought those were classes u made or something

heady birch
#

Now I have 4.3mb kiteboard ๐Ÿ˜ฆ

quiet depot
#

was smaller when u just had guice

heady birch
#

I won but at what cost

#

Yeah but guice was annoying

quiet depot
#

only cuz u didn't want to redesign kiteboard around it

heady birch
#

I did

quiet depot
#

which makes no sense cuz u would've had to do the same for spring

heady birch
#

But then it annoyed me too much with guava

#

And its stupid

quiet depot
#

wym?

#

just exclude guava

heady birch
#

Yeah but bukkit had a diff version or something

quiet depot
#

yea u just have to use a lower ver of guice

heady birch
#

I dont wanna deal with anything named after fruit

quiet depot
#

spring onion

heady birch
#

lower versions probably didnt have the multibinding thing I needed

#

no

#

thats different

#

of course

quiet depot
#

barely

#

it's a vegetable

heady birch
#

Well

#

my resource page is gonna have a big "powered by spring"

#

and placeholder api

quiet depot
#

papi 3 looking like ๐Ÿ”ฅ

heady birch
#

is it good

#

add spring to RPF

#

seriosuly

quiet depot
#

that's not the point lol

#

rpf is an alternative for spring

heady birch
#

Also maven minimizeJar is total rubbish

#

๐Ÿ˜ฆ

quiet depot
#

gradle minimizeJar is probs better

#

not that I've ever used it

hot hull
#

Imagine not using PDM fingerguns_reversed

quiet depot
#

I usually manage that shit manually

heady birch
#

Yeah can I do multi module projects with gradle (for nms)

quiet depot
#

bruh

#

rpf has pdm embedded

#

sorta

#

it has my own version of pdm that I made yonks ago

#

yes niall

heady birch
#

is it easy

quiet depot
#

arguably easier than maven

#

if you know what you're doing

heady birch
#

Can I easily convert from maven to gradle in intellij

quiet depot
#

no

#

but

#

you can easily convert from maven to gradle via gradle

#

and then reimport in intellij as a gradle project

heady birch
#

@quiet depot Will itauto gen the modules as well?

quiet depot
#

should do

#

just run gradle init in the root dir of the project

heady birch
#

cant find gradle

#

need to install it ๐Ÿ˜„

#

hold

#

how come it works with ecloud ๐Ÿ˜

quiet depot
#

ecloud uses the gradle wrapper

heady birch
#

loading

heady birch
#

where does gradle put compiled files

quiet depot
#

build/libs

heady birch
#

takes long

quiet depot
#

probs cuz it's downloading dependencies

heady birch
#

261 bytes

quiet depot
#

?

heady birch
#

Jar is a little small

quiet depot
#

then gradle init didn't work

#

you'll have to convert it manually

errant geyser
#

oh god what did you do

quiet depot
#

it's pretty good, but it's not perfect

heady birch
#

wtf

quiet depot
#

not surprised it failed on a spring project tbh

heady birch
#

well

quiet depot
#

especially such an unconventional use of spring

heady birch
#

i dont have time

#

it probably works

#

realeasing anyway

topaz remnant
errant geyser
#

YIKES

topaz remnant
#

new record

heady birch
#

not funny piggy

quiet depot
#

?

obtuse gale
#

lol

heady birch
#

so whats wrong with it

quiet depot
#

well your dependencies aren't there

#

probably because gradle init can't configure the shadowJar plugin

#

you'll have to do it manually

heady birch
#

well

#

kiteboard itself is much larger than 261 bytes

quiet depot
#

erm

#

which build/libs did u look in?

heady birch
#

kiteboard-dist

quiet depot
#

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

heady birch
#

kite-board core jar looks right

#

that was the worst prank ever

#

@quiet depot what shadow jar you use

quiet depot
#

niall, why don't you just stick with maven?

#

what was going wrong with maven anyway?

heady birch
#

you told me gradle

#

dont try pin this on me ๐Ÿ˜ 

#

Well I have another problem:

error


quiet depot
#

I said gradle minimizeJar is probably better

#

and then I said I've never used it

#

how is that "niall, use gradle"

heady birch
#

everyone said gradle better

quiet depot
#

it is

heady birch
#

obviously not

quiet depot
#

then just stick with maven

#

use what you're comfortable with

heady birch
#

is there gradle delete

quiet depot
#

no

heady birch
#

gradle thinks this is funny

#

it added commons gson and guava

#

2 of my most hated libraries

quiet depot
#

D:

#

i like both of those libraries

heady birch
#

project broken

#

Piggy

#

How do I remove the annoying main and test its added as modules

quiet depot
#

file > project structure > modules

#

click on the module

#

press the - button

heady birch
#

this is a joke

#

cant I make it re import all the modules from maven

quiet depot
#

yes

#

just close the project

#

remove it from intellij

#

and import it as a maven project

heady birch
#

How

#

Do I remove it

quiet depot
#

file > close project

#

hover over the project, click the x

heady birch
#

I did that and it didnt work

#

What about invalidate and restarrt

quiet depot
#

oh i forgot a step

#

click the x

#

navigate to the folder

#

delete .idea

#

and *.iml

#

remove any gradle files if you haven't already while you're at it

#

then in ij

#

open/import project

#

select the root pom.xml

heady birch
#

I had already reverted the .idea folder to my backup though

#

this is gradle fault

#

going to open an issue on their github

#

top 10 pranks that went wrong

#

dont do that again

hot hull
prisma wave
#

Apparently you have to write it in repl.it which kinda sucks

#

It's gonna be difficult to do anything big in that

errant geyser
prisma wave
#

It's a repl website

old wyvern
prisma wave
#

lol

old wyvern
#

I was asking to join your team km

quiet depot
#

oo

regal gale
#

Lol

quiet depot
#

can I join team brister as unqualified paradigm and design implementation coordinator?

prisma wave
#

that's a fancy term

#

But yeah I guess you can both join

errant geyser
#

We're all unqualified, except maybe BM

prisma wave
#

Sx probably won't mind

#

I'm not qualified

regal gale
#

I even stored and coded myself an entire flow puzzle game made on js on that lol

prisma wave
#

My school didn't even offer CS lol

errant geyser
#

u what

old wyvern
#

theres a qualification criteria?

quiet depot
#

lol i was joking

old wyvern
#

oh xD

prisma wave
#

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

#

but yeah anyone who wants can join but probably maximum of like 5 people

hot hull
errant geyser
#

noice

prisma wave
#

Very nice

old wyvern
#

How many members atm?

prisma wave
#

Just me and Sx

#

but I'm not sure he's actually going to do anything

errant geyser
#

OUTRAGED

old wyvern
#

ah

#

oh repl it is just an IDE right?

prisma wave
#

pretty much

old wyvern
#

So we can jsut import into that finally from git fingerguns_reversed

quiet depot
#

i thought repl was some fancy hotswap tool that a bunch of languages implemented

old wyvern
#

๐Ÿ˜‚

errant geyser
#

I thought it was something about read-eval-print

old wyvern
#

I thought it was a language or library

prisma wave
#

it is

#

Afaik it's the thing that clash uses

old wyvern
#

ah

heady birch
#

The magic of labels

#

Beautiful

prisma wave
#

I beg to differ

heady birch
#

You never really see labels used in java

prisma wave
#

I wonder why

#

They're ugly

hot hull
#

very

old wyvern
#

Comparitively better than the @ syntax

prisma wave
#

Possibly

old wyvern
#

Personal preference maybe

heady birch
#

@ syntax?

#

annotations

prisma wave
#

Although they're slightly different ofc

pallid gale
#

niall do you ever shutup about them lol?

old wyvern
#

No nial

errant geyser
#

cryingkitty I like Kotlins return@Whatever

old wyvern
#

Kotlin labels

prisma wave
#

no Kotlin's labeled returns

#

but they're not the same

heady birch
#

niall do you ever shutup about them lol?
@pallid gale labels or annotaitons

prisma wave
#

Kotlin's are usually implicit

pallid gale
#

You're literally the only person who triggers that blacklist on a daily biases lol

heady birch
#

oh

#

sorry

old wyvern
#

which blacklist?

heady birch
#

i was suggesting alternative to frosty if he didnt want to make his own

prisma wave
#

songbada?

heady birch
#

epic spawners or something

prisma wave
#

ah yes

old wyvern
#

wha?

#

Why is that banned lmao

heady birch
#

imagine if they banned spring

#

top 10 worst decisions in the world

old wyvern
#

weird

prisma wave
#

It's quite controversial

errant geyser
#

I'm not sure Niall would survive that

prisma wave
#

I think that's why

old wyvern
#

ah

prisma wave
#

Ban Java fingerguns

old wyvern
#

Ban KM

errant geyser
#

Ban Frosty

old wyvern
#

Ban Banning

pallid gale
#

Banish non-boosters

old wyvern
#

ouch

errant geyser
#

phew, I'm actually safe for once

old wyvern
#

that hurt

heady birch
#

Beans.xml

errant geyser
#

inb4 Frosty yells "BAKED Beans HA"

hot hull
#

BAKED BEANS

old wyvern
#

Bake d beans

heady birch
#

ego deaf

#

i love kiteboard

#

like a feat of human engineering

#

one day I will release it

#

OS

onyx loom
#

do it then

heady birch
#

yeah

heady birch
#

then everyone will be buying some " kite board recoded ++ "

prisma wave
#

just pick the license that means you can't commercially redistribute it or something

errant geyser
#

So license it under something that doesn't allow derivatives, if thats even allowed cos of Spigot's GPL thing

heady birch
#

i dont know

#

to be honest

#

to use spring you got to have decent knowledge right?

errant geyser
#

I meeean

#

I copied Bardy's bot and thats how I started with Spring sooo

prisma wave
#

You have to be at least semi comprehend

#

I'd say

errant geyser
#

I love being semi comprehend

heady birch
#

Now

#

I must figure out how to properly register my plugin class and the Server as a bean

prisma wave
#

competent*

#

Dumb autocorrect

heady birch
#

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'net.kitesoftware.board.user.UserManager' available

#

๐Ÿ˜ญ

#

lol wait

#

that should actually exist

#

oh forgot to load the xml file

#

@prisma wave

#

If I put a file in the resources folder its on the classpath right?

#

im looking at this bean definition and alot of people say they moved it to the src folder and it worked

#

src folder doesn't seem appropriate though

ocean quartz
#

Ugh, do i really need to get out of bed and "exist"

hot hull
#

Yes.

prisma wave
#

@heady birch should be

ocean quartz
#

Existence is pain

obtuse gale
#

is there a keybind for gradle reload/

#

like re import

hot hull
#

Damn, you can't cancel entity death event :((

obtuse gale
#

I think you can in paper?

hot hull
#

Not using paper

ocean quartz
#

I think it's ctrl alt o
But I don't remember

errant geyser
#

respawn it kek

hot hull
#

katsu, that's what I'm going to do, but that's innefficient AF

errant geyser
#

If it works tho

#

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

hot hull
#

If it works ain't a solution tho, what do I care if it works, if it causes lag due to thousands of entities being spawned each scond

#

second*

errant geyser
#

ok then

#

Do EntityDamageEvent, check if their health is low (pick your own bound obv) and then set their health to something higher, or full

hot hull
#

Oh yea that might actually be better

onyx loom
#

sm0rt

heady birch
#

ok

#

anyone got any idea why it cant find the file?

#
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exist
heady birch
#

๐Ÿ™

onyx loom
#

whats the easiest way to add gradle to an existing project?

heady birch
#

gradle init

#

back it up first

onyx loom
#

ty

steel heart
#

@errant geyser I wonder if we should make our events Cancellable

errant geyser
#

We could, but I don't reeealy see the point tbh

steel heart
#

I can do that for you though ๐Ÿ˜›

errant geyser
#

Alright fine ๐Ÿ˜‰

#

We're going to have to cancel the actual event though if we do that

steel heart
#

wym?

errant geyser
#

So like the ClickEvent, if someone cancels that, you're going to have to cancel the underlying PlayerInteractEvent otherwise its useless

steel heart
#

not rly

errant geyser
#

I guess it could be useful actually

steel heart
#

also about the persistancy

#

or if its called that

#

isn't that something the end developer should fix

errant geyser
#

They'd essentially have to rewrite a lot of our own code to do that though

steel heart
#

I mean

#

just store the itemstack in a data file?

#

and create a new one upon onEnable?

#

(ActionItem)

errant geyser
#

Sure they could do that, but they'd have to keep track of the actions too

#

Which at that point they'd be rewriting part of our code

hot hull
#

Niallll

heady birch
#

Hi

#

Send the message again

hot hull
#

Currently I have an Enum which dictates what drop each specific mob has (to allow for custom mob support), what would be a clean way of being able to assign/customise these drops through an api, should I load them into a list instead, and make the list accessible through the api?

steel heart
#

Dont

#

make

#

the list accessible

#

why not just have a Multimap<Mob, Drop>

#

or smtng?

heady birch
#

No

#

Mob#getDrops()

#

Mob#setDrops()

#

List of enum

steel heart
#

oh that exists?

heady birch
#

EnumSet probably more appropriate

#

Oh Idk

#

I thought mob is his own class

hot hull
#

The entire joint is my own

steel heart
#

then go with nialls concept

heady birch
#

Enum set is immutable right?

steel heart
#

I can check

#

No I don't think by default

errant geyser
#

Kotsu alternatively we introduce some sort of identification system
Interessant

#

What are you thinking?

hot hull
#

Okay yea I'm going to have a Set of classes, which you can edit the drops off, just so it's fully modifiable I guess? (And if I want to add stuff in the future I can just throw it in the classes)

heady birch
#

What if in the future you want different amounts of drops?

hot hull
#

Will be modifiable through the type class itself

heady birch
#

Oh I see

hot hull
#

ie.

final class ZombieDrops implements EntityDrop {

    private static final List<ItemStack> DROPS = Arrays.asList(
            new ItemStack(Material.APPLE, 3),
            new ItemStack(Material.TNT, 1)
    );

    @Override
    public List<ItemStack> getDrops() {
        return DROPS;
    }
}
#

(Still not final, but an example - missing the edit methods still)

heady birch
#

Yes but then people cannot edit drops

#

Ok

hot hull
#

Another thing I need to consider is chance based drops

steel heart
#

Haven't really got this done in my brain yet but I was thinking there is no real way we can actually make it persistant and still keep track of it. Since even if we store nbt we wouldn't be able to load those items in after reboot.
One version where we create a new ActionItem and then assign an Action to an ActionType. From there the action would only be performed if the ItemStack from the ActionItem isSimilar to the event ItemStack although this would make us not able to have some events such as ShiftEvent ince no itemstack necessarily is involved there.
The other version would be that we check nbt inform of a key on the ItemStack from the ActionItem and compare it to the involved ItemStack from the event. This would allow more presistance.
If we would change it to this it would also mean we would remove the uuid totally and instead go with stringed keys, why? Since it would ease it up for the end developer to re-register items. I've also consider this but the purpose of this lib is that the Actions should only be performed if the ActionItem allows the Action to which would be through checking if the involved ItemStack to the ItemStack from ActionItem. We could also introduce a custom check through using Predicate. @errant geyser sry for the bible

heady birch
#

I am annoyed

#

I forgot an annotation ๐Ÿ˜

obtuse gale
#

gg

heady birch
#

Could you imagine

#

Kotlin + Spring in less than 5mb

#

Suitable for spigot plugins

split talon
#

Can you use kotlin for spigot plugins? o.o

heady birch
#

Yea

errant geyser
#

Ofc

hot hull
#

Conclure, why do you even need to store it, since you can just store it within nbt?

obtuse gale
#

kotlin good

split talon
#

I'm not sure if I want to deal with switching from java

heady birch
#

addDrop(DropType.TYPE).withAmount(2).withChance(0.1)

obtuse gale
#

do it

steel heart
#

Frosty huh?

hot hull
#

No Niall, ew

steel heart
#

That doesnโ€™t make sense?

errant geyser
#

@hot hull because right, if someone adds an action to an item and then the server reboots, as it is now, the action won't be there

hot hull
#

If you're storing the action using nbt it will be

errant geyser
#

I mean, we could do that but

steel heart
#

No but I think we should implement some sort of system where it first checks if the item is similar to the item involved in the event and then perform an action

errant geyser
#

Wouldn't that be an awful idea depending on the size of the action code

steel heart
#

The check would be inform of NBT or isSimilar

hot hull
#

Or have objects which represent your action executions, and just store an identifier on the item

heady birch
#

final Drop drop = new Drop();

drop.setType(drop type);
drop.setAmount(2);
drop.setChance(0.1);

addDrop(drop)

#

Honestly how i would do it

steel heart
#

Frosty not that easy

hot hull
#

I'll think about it Niall

#

How so Conclure?

steel heart
#

Identification is the part?

hot hull
#

How do you define your actions? Are they from a config or hardcoded?

steel heart
#

Weโ€™re pretty much doing what you said

#

Functional

hot hull
#

Sec, let me link you a project where I do something similar

steel heart
#

Like a consumer

errant geyser
steel heart
#

Yeah

#

Fork ial

heady birch
#

good

hot hull
#

Ah I see, so similar to how Matt does it

steel heart
#

Kotsu can I rewrite it to what I wrote before

errant geyser
#

What did you have before?

steel heart
#

To that

split talon
#

Can't you use CustomItemTagContainer to store custom primitive data

steel heart
#

From current

#

Jax shouldnโ€™t be a problem afaik

errant geyser
#

We use NBT already

steel heart
#

YES

#

but with uuid

#

Making it impossible to reregister and obtain after restart

#

Almost

#

If not the end developer tracks it

errant geyser
#

Your rewrite looks like we'd have an easier time with doing this

steel heart
#

I mean you could just pull up a back up if it would be too bad

#

Cuz git is kinda lit

hot hull
#

Any cleaner ways of having this?

    @Override
    public String getIdentifier() {
        return "ZOMBIE";
    }

Would a better way be to have another custom enum which stores all the types, including custom entities (since string is a bit jucky?)

steel heart
#

Wait is the api like that though?

#

Or the existing system?

hot hull
#

Everything I show I'm making myself, meaning it's all changeable (so you know for the future when I ask questions fingerguns_reversed)

steel heart
#

So each enum constant has a getIdentifier?

errant geyser
#

I mean you could just pull up a back up if it would be too bad
nah I trust u

lunar cypress
#

why not Enum#name()

#

@hot hull

hot hull
#

Because it's not an enum?

steel heart
#

Kotsu (::

obtuse gale
#

thoughts?

onyx loom
#

pretty good

#

everything is done correctly i like it

heady birch
#

I really feel like converting kiteboard to kotlin

obtuse gale
#

just get intellij to do it

#

dont check afterwarsd tho

#

just compile and upload

compact perchBOT
#
๐Ÿ“‹ Your paste, Aj3douglas
https://paste.helpch.at/nijowuliqu

A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.

heady birch
#

with kotlin i could make alot of design changes

hot hull
#

:}

heady birch
#

upload it

#

and upload

#

how do you trigger that

onyx loom
#

staff only

heady birch
#

oh u actually posted something

obtuse gale
heady birch
#

poor

#

you know you can use spring

#

literally a couple MB for the context only

#

seriously

ocean quartz
#

What is that font

#

Is that ComicSans?

lunar cypress
#

lmfao

hot hull
#

Aj, that's is beautiful.

split talon
#

oh my

#

please tell me you actually use comic sans

somber tulip
#

Did Mojang add new chat fonts into 1.16? I could have sworn I saw that somewhere but I can't see any usage of it

ocean quartz
#

Yeah, i'm not sure exactly how to do it but you can specify font

rotund egret
#

They use UTF-8 in 1.16
Before they weren't

hot hull
#

Speaking of fonts and chat, you can't detect a player chat size correct?

split talon
#

I don't think that's serverside info so no

hot hull
#

Could atleast let us access shit like that fingerguns_reversed

somber tulip
#

Ah UTF-8, that's very useful actually ๐Ÿ™‚

split talon
#

i mean there's fontrendercontext but I don't think that's helpful lol

heady birch
#

yes

#

theres only a couple fonts i belive

somber tulip
#

Do you know how to access them Niall?

#

Or rather apply them to a string / text

#

or however it's presented

heady birch
#

no

somber tulip
#

Looks to be able to set fonts in basecomponent class however it takes a string thonking

empty flint
#

Is there a way I could automatically and reliably track all worlds on a given server/bungee network?

#

I know I can do something like getServer().getWorlds() but that would only give me the worlds on the current server, not the whole network

rotund egret
#

Loop through the servers :^)

heady birch
#

How do you guys actually do clean DI manually?

#

Like I'd end up giving almost every class a instance of my plugin

#

Which I really dont want

ocean quartz
#

I try to do as minimal as possible, if the class only needs the config, don't pass the plugin

onyx loom
#

dependency injection

rotund egret
#

Directional Input

hot hull
#

Dumb Idiot

rotund egret
#

Smash term :(

prisma wave
#

Damn IDontBelieveImNotUsingClojure

lunar cypress
#

๐Ÿ˜ณ ๐Ÿ‘‰ ๐Ÿ‘ˆ

empty flint
#

Loop through the servers :^)
@rotund egret Yeah but how? I can't access other servers with the plugin, right?

#

Also, does anybody know where/how UUIDs for worlds are stored or generated?

sonic shuttle
#

Hello, question for developers: I'm developing a new plugin, and I would like to get oriented a bit: what service to use as download page ? bukkit or spigot ? I would like to make a little bit of money out of it, if possible, with ads or donations (I want my plugins to be free). I know I won't get very much with donations, so I would like to use ads. So where can I put them ? I thought about not hosting the plugin on spigot but make an external link, that would show ads before the download to start, like ad.fly ? I won't use ad'fly because there are only viruses on it... But maybe another service ? Or just putting lots of ads on the download page ? If I do a download page, is there still a way to store the plugin on spigot's website (or bukkit's, bit it seems like spigot is more likely used)

hot hull
#

ew ads

sonic shuttle
#

?

ocean quartz
#

Fun, installed a plugin on IJ and it no longer opens lmao

hot hull
#

Rippo

split talon
#

f

errant geyser
#

Have I told you yet how DAMN CUTE your pfp is

split talon
#

no u

heady birch
#

If someone can figure this kotlin thing out that would be awesome

old wyvern
#

which?

lost edge
#

I may be blind but does anyone know the link to the PAPI java docs?

old wyvern
#

Why do you need the javadocs?

lost edge
#

Well .register is deprecated when I register my expansion in my plugin

#

and a few things on the wiki are a bit out of date/deprecated

lunar cypress
#

if you use an ide you should be able to view the docs in there

old wyvern
#

It doesnt seem to be deprecated

lost edge
#

Well it must have been in v1.10.7 as 1.10.8 makes it not deprecated anymore...

onyx loom
#

indeed it was

old wyvern
#
@deprecated This is going to be final in the future, startup and shutdown logic will have their own methods soon.```
Ah yes
ocean quartz
#

Hey Yugi, kinda confused about something on the grammar matching stuff, i kinda understand the logic now, like, i think matching *test* wouldn't be that hard, but breaking my head thinking about other possibilities, like for example **~test~** i know discord will parse it well -> test (it uses ~~ instead of ~ though)

prisma wave
#

Recursion?

old wyvern
#

We will pass the inner part as text again

#

its labeled parsable

#
BOLD(
            //       *                ...                   *
            TokenType.ASTERISK, TokenType.PARSABLE, TokenType.ASTERISK
);```
#

If we see that grammer, we take the middle tokens and pass it to the initial parser again

ocean quartz
#

Oooh, that's what the parsable is!
should probably have let you finish that part before messing with it

old wyvern
#

xD

lunar cypress
#

Are you implementing a markdown parser?

old wyvern
#

You can check it out a bit, Im studying for my cat exams atm, once I finish algebra and computer arch Ill continue on that

#

should be like 2 days I guess xD

#

exam starts 6th

ocean quartz
#

Similar yeah, it'll be a markdown like implementation for mc, let me show you an example of what i want
This: [<#e74c3c>**Testing Message**](hover: "<#3498db>*Hover message*")
Parsed into this:

#

And sure thing Yugi!

lavish notch
#

Where did Sxtanna go?

heady birch
#

banned

lavish notch
#

Why? What happened?

heady birch
#

Not sure

prisma wave
#

a bit of a dispute about the papi update

lavish notch
#

So... I've created another project - and when I go to build it, I don't get the gradle build option

prisma wave
#

You have to add that manually?

lavish notch
#

nrm lol

#

I fixed it

lavish notch
#

How do I name the caught it in the PlayerFishEvent?

#
Item fishItem = (Item)event.getCaught();
            fishItem.setCustomName(fishFormat);

            ItemStack fishStack = fishItem.getItemStack();

            //fishStack.getItemMeta().setDisplayName(fishFormat);

            ((Item) event.getCaught()).setItemStack(fishStack);
#

That is what I have tried, including the commented out line

somber tulip
#

I believe on those events it's a reference so ```java
ItemStack fishStack = fishItem.getItemStack();
ItemMeta fishMeta = fishStack.getItemMeta();
fishMeta.setDisplayName(fishFormat);
fishStack.setItemMeta(fishMeta);

#

Could be wrong. If that doesn't work, try your method and just set the item meta as I believe that's what was missing

lavish notch
#

Do I still need my last line?

frail glade
#

So what's the diff between kotlin-stdlib and kotlin-stdlib-common? Cause I know we're mainly using kotlin-stdlib-jdk8

lunar cypress
#

I'd guess common are the cross platform libraries?

lavish notch
#

@somber tulip fishFormat includes colour codes, how would I apply them?

frail glade
#

Ooo the RC came out on the 27th

lavish notch
#

Oh, wait - I'm big dumb

somber tulip
#

ChatColor.translateAlternativeColorCodes('&', str)

lavish notch
#

yeah

prisma wave
#

@frail glade afaik common is cross platform stuff, kotlin-stdlib is for the JDK (possibly Java 6)

frail glade
#

Oh so if I'm using 11 or something, I don't need any of them.

prisma wave
#

I mean you probably want jdk8?

frail glade
#

Isn't the whole point of that just to add some extra stuff that wasn't in the jdk8 by default?

#

Maybe I misunderstand the purpose of it.

prisma wave
#

no I'm pretty sure the jdk8 is extension functions on stuff introduced in Java 8

frail glade
#

Ahh that makes a lot more sense.

prisma wave
#

and then that depends on stdlib and stdlib-common

frail glade
#

Just trying to see what difference I get compiling under 8 and compiling under 11

surreal quarry
#

if i want a to have a list of levels for a tier and its anything above 50, can i do like listOf(50, ..., Int.MAX_VALUE) or something to capture all ints above 50 in that list

lunar cypress
#

Interesting that kotlin also works or used to work with java 6

prisma wave
#

Yeah I'm not sure there's anything specific for 11 yet

#

because of android

#

A lot of android phones were still on 6 at the time

frail glade
#

Make sense.

prisma wave
#

@surreal quarry use IntRange?

surreal quarry
#

ok ty

prisma wave
#

50..Int.MAX_VALUE

frail glade
#

What the hell is the kotlin sdk you can use in IJ?

lunar cypress
#

I mean I imagine some of it to be horrible to implement without invokedynamic. Same for clojure

prisma wave
#

There are a ton of workarounds afaik yeah

#

@frail glade I think that's just the kotlin compiler and things

#

possibly the common lib too

frail glade
#

Makes sense

#

Compiled under 11 first try Cool

#

So it looks like 1.4 within the month.

prisma wave
#

Yeah hopefully

#

That should be good

frail glade
#

Hopefully pdm within the month too

lunar cypress
#

Speaking of which, i noticed that pdm downloaded junit for me. Haven't looked any further into it yet, but does it ignore test dependencies?

#

Or generally respect scopes

prisma wave
#

It's supposed to

lunar cypress
#

Of transitive dependencies that is

prisma wave
#

I literally hard code in to ignore the test dependencies

#

So perhaps the transitive dependency didn't flag the scope properly?

#

Odd

lunar cypress
#

Maybe, just wanted to get that clear

prisma wave
#

Yeah that's not supposed to happen

#

If you make an issue I'll investigate a bit more

quiet depot
#

why donโ€™t you just register a configuration for pdm deps?

#

pdmImplementation

#

pdmCompileOnly

heady birch
#

kiteboard with spring is looking FRESH

prisma wave
#

because implementation doesn't really make sense

#

It does have its own configuration

#

That extends compileOnly

#

when it works

#

but I think this is for transitive dependencies which are obtained by parsing the maven-metadata.xml

lunar cypress
#

What would be the point of pdmCompileOnly

#

There really is just one scope that pdm is useful for

ocean quartz
#

I think what would look better imo would be like

implementation "to shade stuff"
compileOnly "to depend stuff"
pdm "to download stuff"
prisma wave
#

uh

#

how is that different to the existing thing?

lunar cypress
#

I mean you can just do that anyway can't you

prisma wave
#

The pdm configuration extends compileOnly and marks that it should be downloaded

ocean quartz
#

I don't know the existing, was just saying what I liked xD

prisma wave
#

Oh fair enough lol

#

What would be the point of pdmCompileOnly
Nothing, but it extends compileOnly because the dependency isn't supposed to be shaded

lunar cypress
#

No i mean in addition to regular pdm

frail glade
#

Big sad. Jar size too big if I take out runtime stuff.

#

I have a big brain idea tho. I make it runtime Kotlin instead.

heady birch
#

listen

prisma wave
heady birch
#

maven minimize jar is useless

#

proguard is way better

prisma wave
#

maven is useless

heady birch
#

i got spring into 1.7 mb

frail glade
#

I'm using gradle, haha.

heady birch
#

HAHA

#

I tried using gradle

#

Didnt work

prisma wave
#

unironically using maven in the year 2020

heady birch
#

Not using it again

prisma wave
#

Damn

frail glade
#

Okay with kotlin shaded in and everything else, I'm at 4,200KB

#

(nice)

heady birch
#

Proguard it

frail glade
#

How to with gradle

heady birch
#

Literally

#

Idk I do it manually

#

Although I think there are plugins for build frameworks

frail glade
#

This ain't it chief.

#

I need it automatic with my shadowJar

prisma wave
#

Idk I do it manually
:/

heady birch
#

makes me sad

#

cant autowire bean cant find it

#

after proguard it dont want to register any beans in my configuration classes

frail glade
#

I'd happily proguard it if I can figure out how the heck to make it work.

heady birch
#

Pain

#

My proguard config is a mess of everything

#

I have specifically -keep every single api class

frail glade
#

Yikes

heady birch
#

But yeah its really good

#

Reduced the jar alot

#

4.4mb -> 1.7mb

lunar cypress
#

Do you happen to know a library to parse proguard obfuscation maps niall

heady birch
#

No

#

Other than retrace

#

For stacktraces

#

Even then that doesn't seem to be so accurate

lucid tangle
#

Hey guys, anyone can help me ? I have some errors with plugins ๐Ÿ˜ฆ

frail glade
#

I don't even care if it's heavy changes, if it can reduce my jar size by like 500Kb, I'm good.

lucid tangle
#

I don't know if i'm on the right channel

frail glade
#

Tho I just tried doing a runtime download of Kotlin and it took it down like 1.2MB

#

Okay, so, we can stick with that, just need to make it work first.

heady birch
#

Now I cant seem to figure out

#

Why spring requires KCallable

regal gale
#

Random question here: call function recursively or using a normal for-loop is the best way to return final values?

lucid tangle
#

nvm solved ty

lunar cypress
#

Wdym by final values

ocean quartz
#

๐Ÿ‘€

regal gale
#
  for {
    a = //random thing
  }
}
return a;``` for example
frail glade
#

Annoys me that libby doesn't do transitive.

#

Okay, I think we're all good.

#

Is PDM ready enough yet to just do kotlin without relocations?

prisma wave
#

@frail glade in all my testing it's worked fine so probably yes

regal gale
#

I think i get why you actually need ";" in javascript-expansion...

heady birch
#

Help

#

Why it trying to look for kotlin

compact perchBOT
#
๐Ÿ“‹ Your paste, Niall
https://paste.helpch.at/uzunadovaf

A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.

quiet depot
#

niall...

#

you've committed a grave sin

#

never ever give obfuscated stack traces

#

they're useless

heady birch
#

re trace aint even working

#

Let me try again

quiet depot
#

anyway I'd recommend checking what jar this is loading

#

org.b.c.a.e.N#b

#

yeah that's why you don't obfuscate

heady birch
#

I'll probably keep obfucating till I go open source

#

And even then I still need shrinking to reduce the jar size

#

=paste

compact perchBOT
#
HelpChat Paste

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

heady birch
#

I havnt looked at it yet btw

#

Oh this thing again

#

Creating some stupid bean because they literally have 2 kotlin classes in the whole project

hot hull
#

@onyx loom How's that gif coming along?

heady birch
#

dont interrupt

#

Who ever fixes this is the best

obtuse gale
#

you tried turning it off and on again?

heady birch
#

Shut up ๐Ÿ˜

#

I dont get it

#

Theres no kotlin at all

#

No kotlin-reflect even before proguard

#

There must be though

#

Hm

#

Ok maybe there was

#

But its in META-INF

#
MANIFEST.MF            spring-context.kotlin_module
kotlin-coroutines.kotlin_module    spring-core.kotlin_module
license.txt            spring.factories
maven                spring.handlers
notice.txt            spring.schemas
services            spring.tooling
spring-beans.kotlin_module
#

๐Ÿ˜

heady birch
#

Bois

#

We may be on to something

#

I am SICK of this

#

Making my own context container

#

Literally

heady birch
#

And thats how the kite-context was born

empty flint
#

@heady birch I was told you were good with databases? May I consult you for a sec?

heady birch
#

Hi

#

Sure

empty flint
#

So imagine the following scenario:

I have 4 classes A, B, C and D, each with its own array of string-boolean pairs. The boolean is just a flag that says whether the string is displayed or not.
If A defines a string in the array, then B has access to that same string. But B can decide to alter the associated flag independently of A. So A can decide to show it, B can decide to not show it.
Basically it is a sort of inheritance propagation?

What A defines in the array applies to B, C and D. Each with their own display toggle for each element in the array.
What B defines in its own array applies to C and D, again both with their own toggle, and so on.

#

Now What I came up with, database wise, is the following:

#

Table STRING_DEF stores all the actual strings since they are re-used between A, B, C and D.
Then each class has a one-to-many relationship with table STRING where the columns are the CLASS_ID (instance of A, B, C or D) and the STRING_DEF_ID. This gives me the propagation functionality since B has a reference to A, C has a reference to A and B etc.

Now to enable the toggle, I am thinking of creating a STRING_TOGGLE table that is like an exclusion table with a reference to the STRING table entry. If the reference is present in the table, then it's excluded from being displayed. If there is no entry then it's displayed

#

But this seems like bad database design to me since I need 3 tables to do that and I'd have to use subqueries to retrieve the data for the simple array of strings that are supposed to be shown.

#

What are your thoughts, @heady birch ?

heady birch
#

One sec while I read and think

#

i might not have understood correctly, but can't you do:

Table: STRING_DEF
ID, NAME

Table: CLASS (a, b, c, d) e.g
ID,

Table: STRING_VAL
STRING_DEF_ID, CLASS_ID, Boolean

empty flint
#

Another option I am considering is having the STRING table contain the ID of the source class of the string and a boolean column that specifies whether it applies to the current class or not.

heady birch
#

what would a b c d typically represent?

empty flint
#

Hm I would have to have 4 entries in the STRING_VAL table at all times.

#

with the exclusion table I only have one entry per string def

#

Right?

#

So if I deleted a string def entry, I'd have to delete 4 string_val entries as well

#

but I guess it makes only a small difference, I can cascade the deletion and do that automatically

#

what would a b c d typically represent?
@heady birch Just 4 classes that have some sort of scope. Imagine it like 4 levels of configuration: global, per_world, per_player, per_player_per_world

#

So if a string is globally defined and the player wants to switch it off, it's turned off for the player only

regal gale
#

The unit is already hard enough to manage tho

prisma wave
#

js bad ?

heady birch
#

So... spring didnt work

#

And I'm stuck with nothing to wire my plugin together

#

I have had to do the unthinkable

#

N.java

jovial warren
#

what?

#

lol

#

also wdym nothing to wire your plugin together?

heady birch
#

i converted it all to spring

#

then realised i cant shrink it properly with proguard

jovial warren
#

why didn't it work? lol

#

F

heady birch
#

else its very close to 5mb

#

so adding anything else like mysql it would just go over

jovial warren
#

also what's proguard?

#

nvm

#

why are you obfuscating it?

heady birch
#

obfuscator/shrinker

#

its premium I've always obfuscated it

frigid badge
#

else its very close to 5mb
so adding anything else like mysql it would just go over

jovial warren
#

why though?

frigid badge
#

else its very close to 5mb

heady birch
#

?

frigid badge
#

making bardy understand