#dev-general

1 messages ยท Page 413 of 1

old wyvern
#

Java 16 doesnt break urlclassloaders

#

Its just the ways to append to preexisting ones are harder

forest pecan
#

yeah i meant that

old wyvern
#

Module system breaks a lot of the reflection

obtuse gale
old wyvern
#

You can probably still hack stuff up with things like MethodHandles.defineClass to define it in the current class loader

lunar cypress
#

Yeah java 16 does break a lot of stuff

forest pecan
#

what is MethodHandles?

old wyvern
#

d; MethodHandles

ruby craterBOT
#
public class MethodHandles
extends Object```
MethodHandles has 1 extensions, and  38 methods.
Description:

This class consists exclusively of static methods that operate on or return method handles. They fall into several categories:

  • Lookup methods which help create method handles for methods and fields.
  • Combinator methods, which combine or transform pre-existing method handles into new ones.
  • Other factory methods to create method handles that emulate other common JVM operations or control flow patterns.
forest pecan
#

ah

lunar cypress
#

There is a defineClass in there? Tf

old wyvern
#

d; MethodHandles#defineClass

ruby craterBOT
#
public MethodHandle asFixedArity()```
Description:

Makes a fixed arity method handle which is otherwise equivalent to the current method handle.

If the current method handle is not of variable arity, the current method handle is returned. This is true even if the current method handle could not be a valid input to asVarargsCollector.

Otherwise, the resulting fixed-arity method handle has the same type and behavior of the current method handle, except that isVarargsCollector will be false. The fixed-arity method handle may (or may not) be the a previous argument to asVarargsCollector.

Here is an example, of a list-making variable arity method handle:

Returns:

a new method handle which accepts only a fixed number of arguments

old wyvern
#

Yea

#

You need to access it by reflection

#

And it imposes a few more restrictions

lunar cypress
#

And what the hell is that for

old wyvern
#

You must have a lookup instance in the same package as the class being defined

forest pecan
#

๐Ÿฅถ

#

nightmares

old wyvern
#

You could throw in a placeholder class in every package you want to create a class in and use those for the lookup instance ig xD

lunar cypress
#

Ew

old wyvern
#

Works tho

forest pecan
#

yea no

#

if people see that

#

they're gonna fucking kill me

#

lmao

old wyvern
#

That was the replacement after removing Unsafe.defineClass in Java 9

old wyvern
#

You could probably use something to generate it at compile

forest pecan
#

hmm

#

yea

old wyvern
#

But at that point you might as well just use your own classloader

#

xD

forest pecan
#

mhm

lunar cypress
#

But does that actually work, considering your code is still foreign?

old wyvern
#

yes

#

It does

#

I tested it a lot

forest pecan
#

the jarinjar technique luck uses

old wyvern
#

Tried to get diff packages to load

forest pecan
#

is an example

old wyvern
#

But only same ones do

lunar cypress
#

I wonder how many things are pretty much irrevokably broken now

old wyvern
obtuse gale
lunar cypress
#

Sure, warnings and all

old wyvern
#

I mean Im sure people are still going to find workarounds

#

With given time

lunar cypress
#

There isn't even a flag to disable this is there

old wyvern
#

Yea they wanted Java to be a "Secure" language

forest pecan
old wyvern
#

xD

lunar cypress
#

This isn't secure though if you can just make an own class in a package

#

Pepega

forest pecan
#

lol

lunar cypress
#

At least not that part

old wyvern
#

Its still requires a class to already be in that package so ig the point is to not create new packages or something

#

idek

#

xD

#

Also agents still work right?

lunar cypress
forest pecan
#

they do

old wyvern
forest pecan
#

but require like a boostrap class

lunar cypress
#

How are agents going to solve this

forest pecan
#

let me send a link

old wyvern
#

They can load classes into the current classloader right?

lunar cypress
#

What

#

They can intercept classloading

forest pecan
lunar cypress
#

But this is part of the module system, I don't think they can mangle with that

forest pecan
#

wait

#

not that one

old wyvern
#

hmm

forest pecan
old wyvern
#

I mean its not like you cant load things dynamically at all

forest pecan
#

stackoverflow made the wrong link

#

smh

lunar cypress
#

Like agents won't allow you to export a package at runtime

old wyvern
#

The issue is you just need to create your own extended urlclassloader and use that

#

Cant append to the application class loader

lunar cypress
forest pecan
#

hm yeah

old wyvern
#

Wait

obtuse gale
#

in conclusion: java sucks

old wyvern
#

That just seems to append to the system classloader

obtuse gale
#

I'll just wait until C++23 is out and I get compile-time reflection ๐Ÿ™‚

old wyvern
#

Wouldnt the actual classloader not matter in that case as long as you delegate upwards

old wyvern
#

Take on haskell

#

Enjoy

cinder flare
old wyvern
#

Poor C when?

lunar cypress
old wyvern
#

Oh ok

lunar cypress
#

Or class loading in general

cinder flare
#

Hey how big is that int? Could be 4 bytes, maybe 6, maybe 3

lunar cypress
#

sizeof int

#

I guessed it!!!

forest pecan
#

imagine if someone made a dynamic numerical primitive

#

like it only uses the number of bits it needs to use

old wyvern
#

numeiaaroirical

cinder flare
#

BigInteger but primitive??

static zealot
#

what is the keybind to change language in windows?

old wyvern
forest pecan
#

lol

old wyvern
#

Let me introduce you to the haskell Integer type

forest pecan
#

BigInteger.MAX_VALUE

#

xD

static zealot
#

why do I ask here as well? Whe theres google ...

lunar cypress
#

Let me introduce python's int

old wyvern
#

Lets not

#

๐Ÿฅฒ

forest pecan
#

Someone make a patch for BigInteger.MAX_VALUE

cinder flare
#

Now stop right there at the word python

old wyvern
forest pecan
#

lol

#

Yugi.MAX_COCK_LENGTH

cinder flare
forest pecan
#

= 1 inch

#

Same

forest pecan
#

Yugi are you telling me you are getting a boner now?

old wyvern
#

Uhm no

#

xD

cinder flare
#

I mean with your pfp ๐Ÿ‘€๐Ÿ‘€๐Ÿ‘€

forest pecan
#

Yeah

#

he drools on his own pfp

cinder flare
#

Nah I meant yours

old wyvern
#

lmao

forest pecan
#

Traitor

old wyvern
#

Anime chick pulse

static zealot
old wyvern
#

MeLee

cinder flare
forest pecan
#

its beautiful

old wyvern
#

Clash?

forest pecan
#

i have to do hw and i have a bedwars tournament

#

๐Ÿฅฒ

sweet cipher
cinder flare
#

He just needs a minecraft website

old wyvern
#

bedwars tournament wut

cinder flare
#

What more is there to know

old wyvern
#

Damn

#

Rich boi

#

Rich hickey

sweet cipher
old wyvern
static zealot
#

Guyanese Dollar I'm telling you

old wyvern
#

tf is guyanese dollar?

static zealot
#

also my keyboard keeps switching to fucking romanian. Wtf is this shit

static zealot
old wyvern
#

oh

static zealot
#

lmao

old wyvern
#

lmao

cinder flare
#

Oh guys guess what I got $112 stimulus from my uni

forest pecan
#

omg so cool

cinder flare
#

Right

#

All my debts are resolved

old wyvern
#

xD

static zealot
#

112 that you'll gift to me? Thank you so much

cinder flare
#

Bro I don't even have it

static zealot
#

I'll invest them in stocks and then make you rich

cinder flare
#

They just said they did but I don't have a linked bank account

static zealot
#

nice

cinder flare
#

Also why would I buy Adderall lmao

obtuse gale
#

to keep yourself to the max ๐Ÿ‘€

cinder flare
#

I don't think I want to be to the max

#

Minimum is just fine

obtuse gale
#

yeah that's what you think when you don't play with high sensitivity

cinder flare
#

High sens and Adderall does not seem like a good combination lmao

old wyvern
#

Oh I got mailed an offer for Android dev

obtuse gale
#

:o

old wyvern
#

Altho idk where tf they even see that I even use android

#

None of my android projects are public

cinder flare
#

Kotlin go brrrrr

old wyvern
cinder flare
#

They just knew

obtuse gale
#

lmao

old wyvern
#

xD

#

sus

#

real sus

static zealot
obtuse gale
#

must be someone from google that forgot about the privacy policy

old wyvern
#

My git* has more Java/JS than kotlin afaik

cinder flare
#

Google? Microsoft owns github lmao

obtuse gale
#

I know lol

#

anyway i'mma take a shower

#

wanna join?

cinder flare
#

Yeah actually I'm gonna too

frail glade
#

Sir, this is a Wendy's.

old wyvern
cinder flare
#

I've been laying in bed procrastinating

old wyvern
#

But my phone only has 11% charge

#

Waiting for it to get to like 50

#

So I can atleast watch a movie

cinder flare
#

You don't have a charger that goes to your bed?

old wyvern
#

Nah

#

Its near my laptop

cinder flare
#

10 foot charger gang, cost me like $8

old wyvern
#

lmao

static zealot
#

Yo @ocean quartz one more question before you go to sleep. Is there a way to clear all the items in a PaginatedGui? Since I have that schedule that reads the items so basically the menu updates but what it does instead of just setting them over the old ones, it just makes new pages so I just have duplicates

old wyvern
#

I just realized

distant sun
#

is android dev worth learning?

old wyvern
#

my pins require only 1 more language to be completely 6 different languages

ocean quartz
old wyvern
#

My internship rn is as an android dev

cinder flare
static zealot
old wyvern
#

xD

static zealot
#

this will really suck

old wyvern
#

The framework is a bit scuffed

distant sun
#

that's the thing, when I first wanted to try android dev all tutorials were in kotlin =/

cinder flare
#

For good reason wdym

distant sun
#

didnt said it was a bad thing

old wyvern
#

yea oracle/sun sued google for using their libs initially

#

so they did a major switcharoo

cinder flare
#

Not sun, just oracle

old wyvern
#

I think it was sun

distant sun
#

bruh what

old wyvern
#

Or it was oracle?

static zealot
#

Oh I wonder if I use PaginatedGui#getInventory#removeAll

old wyvern
#

damn

cinder flare
#

Oracle bad company

distant sun
#

sounds stupid lol

cinder flare
#

Sun good

ocean quartz
#

That'll remove them from the inventory but not from the gui

old wyvern
cinder flare
distant sun
#

so google just used java for android and god sued or?

old wyvern
#

yea that

#

The basic libraries

#

stdlib

#

Coz android isnt even a jvm

cinder flare
#

Essentially they got sued for using the api, but the supreme court ruled that apis are free to use for everyone which protects like all programming ever

old wyvern
#

it compiles the jvm bytecode to android runtime bytecode

distant sun
#

@static zealot ((Map<Integer, GuiItem>)PaginatedGui.class.getDeclaredField("guiItems")).clear()

static zealot
#

I was just about to try PaginatedGui#getGuiItems#clear

cinder flare
#

Would that not just clear your map you just made

distant sun
#

pretty sure that returns an immutable copy of the actual map

old wyvern
#

The issue was then including it in the sdk I think

#

adk contains mostly jdk classes

ocean quartz
#

Nah it's currently not immutable, but it'll

distant sun
#

lol ok matt

old wyvern
#

with a few android alternatives to some of those classes

distant sun
#

is there a list of projects for beginners to do on android?

#

like I want to try it but idk what to do

old wyvern
#

The official website has an intensive guide

cinder flare
#

Yeah what's piggys challenges for Android lol

old wyvern
#

They have enough challenges in those I think

distant sun
#

Certification and degree programs
Nice

old wyvern
#

a few basic apps

#

Check the first 2 ones @distant sun

#

The beginner ones

distant sun
#

yea js

#

pls tell me I dont have to use xml for ui

old wyvern
#

A bit

distant sun
#

๐Ÿ˜ญ

old wyvern
#

The view editor handles most things

old wyvern
#

Its actually really simple to use

distant sun
#

it is horrible yug

old wyvern
#

You have used html right?

#

It only seems horrible at first

distant sun
#

and why do people - esp from india - call me gab ๐Ÿคฃ

old wyvern
#

You also have Jetpack Compose as an alternative

#

but i suggest you use the xml first

old wyvern
distant sun
#

idk I cant get my head around the xml android uses

old wyvern
distant sun
old wyvern
#

Apply the same logic you would use there

#

You have tags and tag properties

#

Having a tag inside another tag makes it a child

#

diff layouts provide diff ways to position children

#

Most used ones being: ConstraintView, RelativeView, RecyclerView...ect...

#

ConstraintView is made to work perfectly with the editor

#

So you wont even need to work with xml directly with that

distant sun
#

ok it doesn't sound that bad

old wyvern
#

mhm

distant sun
#

what do you do in android?

old wyvern
#

Well currently I just dev a few apps for a company

#

I and another dude, its a team of 2

distant sun
#

a few apps ok

old wyvern
#

Im not allowed to say gab

#

agreement

distant sun
#

is not that

#

"Basic shit you know, yesterday I built a rocket"

cinder flare
old wyvern
#

lol

old wyvern
distant sun
#

ignore me it is 3am

old wyvern
#

I just said that because Im not supposed to be too specific

cinder flare
#

I really don't think android development is like rocket science haha

old wyvern
#

mhm

distant sun
#

I mean most apps are like websites made for phones

#

Take as example an app like amazon

static zealot
#

you can actually do that

#

with android

#

host a web page as an ap

#

p

old wyvern
#

A lot of them are actually a web app

#

Like with react native

#

Flutter does the same I think

#

They are cross platform

onyx loom
#

i feel so proud for this sentence but
elara/web-app

#

ez

distant sun
#

said no1 ever

old wyvern
static zealot
onyx loom
distant sun
#

nah

onyx loom
#

๐Ÿ˜ 

static zealot
#

well I guess no updated items for now

sweet cipher
#

@forest pecan I made it work, I am just iterating the recipes right now, want me to show you the messy code I did lol?

old wyvern
#

Oh shit

#

๐Ÿ˜‚

static zealot
#

oh what a plot twist

distant sun
#

How's life noob @onyx loom

onyx loom
#

bad

#

some guy called me a noob ๐Ÿ˜ญ

distant sun
#

He's probably right

oak raft
#

^

onyx loom
#

pain.

sweet cipher
#

Give me a couple minutes

oak raft
static zealot
#

So I have 2 methods:
1 Loads a list from a json file, 1 saves the list to the same json file.
The load method is only ran the plugin is enabling.
The save method is ran when the plugin is disabling and every few minutes.

Now my problem is that when the plugin enables and there's a problem, the list will be empty so if the server gets stopped, it will basically delete everything in the file.

What I do right now is, when there is a problem with the loading, I stop the plugin and I tell it not to save by basically using a boolean that becomes true only when I force stop the server.

I was just wondering if this is ok or maybe there's a better way?

sweet cipher
static zealot
#

that's a big boi

sweet cipher
static zealot
#

does singleton mean just a huge class with everything in it?

sweet cipher
#

No lol

#

That's three classes

static zealot
#

I actually don't know what it means

#

lmao

#

time to google

onyx loom
#

why would u wanna do that

oak raft
#

I can easily beat you now

onyx loom
#

ok sure

oak raft
#

all these hours of valorant will transfer to csgo and boom

#

ez clap

onyx loom
#

if i win u have to buy me a game on steam ๐Ÿ˜Š

oak raft
#

ok nevermind I'll let you know when I'm ready ๐Ÿ˜…

onyx loom
#

๐Ÿฅฒ

oak raft
#

waiyt

#

and if I win

#

u gotta buy me reaver vandal

sweet cipher
obtuse gale
static zealot
#

yeah that's basically what I have

#

but I also stop the plugin when it doesn't load successfully

obtuse gale
#

same principle? the boolean will not be true until the very last stage in onEnable

static zealot
#

I do that because If I'd just leave it like that and no one would notice, everything that was added to the list during that session won't be saved so I just force them to fix it before letting them load the plugin

static zealot
obtuse gale
#

eh I guess I see it as a "true if the plugin was loaded and enabled successfully" instead of "true if something's fucked up"

obtuse gale
#

Matt

ocean quartz
#

So what do you guys think about this for the future mf-gui update:
triumph-gui and triumph-gui-legacy

val gui = GuiBuilder.paginated().title(Component.text("Hey")).rows(6).build()
val legacy = LegacyGuiBuilder.paginated().title("Old hey").rows(6).build()

Same thing would apply to ItemBuilder, where components would be primary and there'd be a legacy version for it
This is the only way i could think so far to support both ways
@frail glade your opinion is important in this one ;p

forest pecan
#

wow

#

you actually used a builder

#

so cool

ocean quartz
#

Will do on the update, currently it doesn't

frail glade
#

That seems fine.

obtuse gale
#

GuiBuilder and GuiBuilder.Legacy fingerguns

forest pecan
#

Yeah fuck legacy users

obtuse gale
#

you get with GuiBuilder#legacy()

forest pecan
#

force them to add an extra import

ocean quartz
#

Well the legacy would need to be separate from the main one though

obtuse gale
#

Isn't a nested class separate enough?

ocean quartz
#

The issue is that if I add a nested class people that want to use on let's say 1.12, they would need to have adventure so they could use the legacy one since it'd be in the same class where components are present

obtuse gale
#

ah

#

right

ocean quartz
#

Yeah big headache because of legacy

forest pecan
#

fuck them dont support it

tacit aurora
forest pecan
#

its literally been 3 minutes

#

you haven't sent any possible info

#

or any configs or anything

#

how are we supposed to know lmfao

#

and also, don't ask in other channels for help.

#

be patient

obtuse gale
#

no, I'm the doctor

forest pecan
#

lol

tacit aurora
#

i guess you have around 50 people a day like me that are probably that stupid that there is just a one button to turn it on and its common

forest pecan
#

im sorry, but I have no idea

#

about placeholder api

#

and its not usually one button lmfao

obtuse gale
#

This is a community-based community support community program where the community (and sometimes others) help out freely on behalf of the community

forest pecan
#

Most of us devs can't even help you cause we code yes

#

but that doesnt mean

#

we know every other plugin in the world

#

lol

obtuse gale
#

Just wait patiently

#

Someone, in their free time, will eventually ask for details

ocean quartz
#

Unexpected exception, build successful

obtuse gale
#

oh gradle

forest pecan
#

switch to ant bois

half harness
#

โ“

#

@dusky nimbus ?

obtuse gale
#

lol?

half harness
#

that's.. really all what helpchat is

ocean quartz
#

Kinda sus thonking

half harness
#

lol

golden quest
ocean quartz
#

Why is abstraction such a headache to do well? ๐Ÿ˜ฉ

obtuse gale
#

it isn't

#

you suck

ocean quartz
#

True ๐Ÿ˜ซ

tranquil crane
#

just make every class abstract

ocean quartz
#

Thinking about stopping using InventoryHolder, that'd make much easier to abstract since the gui wouldn't need to worry about title or anything only about the Inventory
Though only solution i can think of is a private static map that'll be passed to the event thonking

ocean quartz
tranquil crane
#

md_5 yells at people who use a custom inventoryholder and wants them to just use a map or something instead

ocean quartz
#

Yeah

#

I don't mind using it, but it's making it too complicated since I'd always need to create the inventory inside of the class itself
If I use a map I can make sure that the inventory is created by the builder, so components can be used there

sweet cipher
#

@forest pecan
I'm not sure what I did...

tranquil crane
#

that is a whole lot of dirt

sweet cipher
#

I agree

#

I don't even set any items inside of the crafting inventory, only the result

tranquil crane
#

you clearly have over 100 million dirt in the crafting inventory smh

sweet cipher
#

Every time I clicked the result of the recipe it multiplied lol

stuck kiln
#

is guilds plugin not apart of this server?

pallid gale
#

Yeah it is

#

If you bought it recently the db might need an update

#

cc: @frail glade

hot hull
#

Why so I have a feeling that request paid is cap

stuck kiln
#

Lol

obtuse gale
#

The 9k one? Lmao yeah very sus

frail glade
#

Updated. Off to bed. Night.

stuck kiln
#

โค๏ธ

cinder flare
#

@prisma wave genderswapped bm???

prisma wave
#

yes

#

Too many monads have done strange things to me

cinder flare
#

oooh~

#

thoughts on using java for csv downloading then uploading

#

cause i hate python

prisma wave
#

What's the downside of using java

cinder flare
#

i mean i dunno

#

just wondering if anyone has any suggestions or anything

prisma wave
#

I mean

#

Python is fine

#

But if there's no downsides to using java then use that ig

cinder flare
#

oh sick okay

#

glad to know I have official approval

prisma wave
#

lol

#

well if you can't answer the question "why not?" then it's probably fine

cinder flare
#

that's a good point, I was just wondering if it was like really hard to do this kind of stuff with java or anything

#

cause python is like, the lang for easy file stuff

prisma wave
#

python would definitely be easier

#

But http stuff in java isn't too tricky

#

Especially if you use java 10+ with the new http library

cinder flare
#

ah okay

#

I don't really know python that well so it would probably honestly be harder

steel heart
prisma wave
#

new java isn't that bad

steel heart
#

Which version are we talking?

cinder flare
#

latest

prisma wave
#

like 15 or 16

old wyvern
#

Java: Haskell

steel heart
#

Yeah it got better significantly

prisma wave
#

records are great, the new switches are cool, var and List.of and stuff are useful

steel heart
#

Wait List.of ?

old wyvern
#

Yes

steel heart
#

d;jdk List#of

ruby craterBOT
#
static <E> List<E> of()```
Description:

Returns an unmodifiable list containing zero elements. See Unmodifiable Lists for details.

Returns:

an empty List

old wyvern
#

Java 11 addition

cinder flare
#

I should probably look at all the new java stuff

steel heart
#

Well we have Collections#emptyList?

prisma wave
#

List.of is vararg

#

Or it should be

steel heart
#

Ah explains it

cinder flare
#

that's probably just jdk 8 or domsething

steel heart
#

So basically ImmutableList.of but now in jdk

prisma wave
#

yeah

#

and good

quiet depot
#

list.of becomes a vararg after like 10 elements

hot hull
#

Why not sooner tho

steel heart
#

Optimizations probably

hot hull
#

Fair enough

#

I see mobile discord broke reactions somewhat

cinder flare
#

damn the switch expression in java 14 is kinda cute

prisma wave
#

once they add proper pattern matching it will be even better

cinder flare
#

i really wanna learn haskell but i get bored too quickly ugh

#

is ZGC good for minecraft servers?

steel heart
#

think aikar said its somewhat unstable but not certain

cinder flare
#

huh cause it sounds pretty good on the changelog pages lol

steel heart
#

hmm I think he mentioned how it could eat lots of memory if it needed without any concerns but I can't really recall since it was some months ago since he spoke of it in the spigot discord

cinder flare
#

ah okay. just excited for the future of java!

steel heart
#

yeah same lol

hot hull
cinder flare
#

im happy I got a cameo in Frosty's screenshot :)

distant sun
prisma wave
#

Haskell is not boring

pale shell
#

github down for anyone else? edit: It's back that was odd.

pale shell
#

there's no github licenses to stop things being used in private? thonking

old wyvern
#

Whats the point of that

pale shell
#

A certain user has used the pmines plugin me and bm made and took full credit for it so I want to stop people doing that.

old wyvern
#

A lot of licenses deny redistribution

#

That might be what you want

cinder flare
#

he doesn't have a license on it yet lmao

old wyvern
#
cinder flare
#

ugh I hate GPL 3

pale shell
old wyvern
#

Who did?

cinder flare
#

apparently he doesn't know lol

#

a mystery man

old wyvern
#

oh

#

lol

pale shell
#

Gabileti

#

I was told by the manager of the server who was doing it.

old wyvern
#

Ah

#

Is he being paid for the whole project?

#

Or just for modifications

pale shell
#

It was all done behind my back you see.

#

I think just modifications.

old wyvern
#

Then whats the issue

cinder flare
#

oh he's modifying it?

#

you said it was flat out reselling

pale shell
#

?

old wyvern
#

^

pale shell
#

I didn't, did i?

old wyvern
#

If you open sourced something you do expect other people to use modified versions

old wyvern
#

yes privately?

#

A lot of people do that

cinder flare
#

yeah what?

#

that's impossible to enforce

old wyvern
#

Very common

#

As long as he isnt selling the whole thing as his own work, he aint doing anything bad

cinder flare
#

yeah there are people who get paid to add hex support to deluxechat before it's officially added lmao

old wyvern
#

mhm

static zealot
cinder flare
#

i mean that's just the FOSS experience

static zealot
#

I mean Glare is smart and just makes the changes for those people for money lmao

old wyvern
#

xD

cinder flare
#

if anything, it's good. maybe you'll get wind of the changes and implement them yourself yeah

static zealot
#

Yo java is backwards compatible right? So If I move my dedi to java 11 all my java 8 plugins should still work? Or at least most of them? xD

cinder flare
#

JDK's are backwards compatible, JRE's are forwards compatible

#

so if you have like java 15 installed on your dedi, any plugin compiled for versions before and including java 15 should work

spring canyon
#

Including Java 15 obviously

old wyvern
cinder flare
#

nope

old wyvern
#

huh

cinder flare
#

JDK 15 installed on my machine can run anything below it

old wyvern
#

yes

#

But

#

JRE runs it

#

JRE is backwards compatible

cinder flare
#

something complied for JRE 8 can run on my JDK 15

old wyvern
#

JDK is forwards compatible as things compiled for older versions can run on newer versions

cinder flare
#

well I guess it's not really JRE vs JDK, more version you have vs compile target

old wyvern
cinder flare
#

the compile target just has to be less than or equal to the version you have installed

#

now we're getting into pedantry lmao

static zealot
#

so basically the answer is yes, they will work?

old wyvern
#

Yes

static zealot
#

kk. ty

old wyvern
#

Some things might break due to the module changes, not really sure

static zealot
#

well now to find how to update

old wyvern
#

Depends on what the plugins do ig

hot hull
onyx loom
#

indian guy on youtube lmao

hot hull
#

Well yes, don't tell me you don't watch indian dudes code on yt

onyx loom
#

im sorry sir, but i excel in my coding abilities, thus i do not have to rely on "indian dudes code on yt", nor "luck"

hot hull
#

Heh, and then you wake up

onyx loom
#

๐Ÿ˜ญ

hot hull
#

Ngl, I've actually made a fair few plugins recently, in a way that I've made the entire plugin without testing just structuring it in my head and then making it, and most actually worked properly, some needed some fixes tho cause I'm dumb

old wyvern
hot hull
#

Only person I watch code is Sebastian

old wyvern
#

I try to prefer some short courses instead of such yt videos

hot hull
#

Only tutorial I've watched was from Tim Buchalka or whatever the dudes surname is

forest pecan
#

From a scale of 1-10 how cursed is this:

#

builder within builder

#

๐Ÿฅฒ

static zealot
#

discord embeds are not loading for me.

#

is it just for me?

obtuse gale
#

ew don't make us use new on builders

#

Whatever.builder()

prime crest
#

guys can someone pls help me with send me a manhunt script and a script too do so if i break leaf in minecraft I get random item

forest pecan
#

static builders are better

#

lol

obtuse gale
#

make the method static then?

#

but new on builders ๐Ÿคฎ

forest pecan
#

It's a class lmfao

obtuse gale
#

make it... return... a new.. builder?

prime crest
#

Yes*

forest pecan
#

ah

#

empty builder

#

ic

obtuse gale
#

what?

prime crest
#

I need a script so i can make a manhunt with a twist u see

forest pecan
#

builder() will return an instance of the builder class

#

in the main class

#

but it is empty

obtuse gale
#

this is what I'm saying

class Whatever {
  public static Builder builder() {
    return new Builder();
  }

  public static class Builder {
    private Builder() { }
  }
}
forest pecan
#

builder() will return an instance of the builder class

obtuse gale
#

yah but make the ctor private ;p

forest pecan
#

k

prime crest
#

Pulse

forest pecan
#

?

prime crest
#

can u help me with a plugin i am currently making

forest pecan
#

?help

compact perchBOT
#
FAQ Answer:
ยป Give the helpers some details
ยป Ask suitable questions
ยป Be polite
ยป Wait

Source

prime crest
#

Ok

static zealot
#

or if you actually need help

prime crest
#

k

forest pecan
hot hull
#

I can't find a will to live either yet here I am

#

@vagrant token How are plugin configurations plugin dev? I confusion

half harness
#

oof

#

lol

onyx loom
hot hull
#

for?

obtuse gale
#

lol dude used the format for request-paid in offer-services

onyx loom
obtuse gale
#

even put a budget in

hot hull
#

Who wants to link me some useful Rust stuff

#

efe, you're an idot

obtuse gale
#

lol use maven noob

onyx loom
hot hull
#

Just alt f4 IJ

#

and reopen

onyx loom
#

No need to shout.

hot hull
#

Are you stupid or just dumb

static zealot
hot hull
#

Stop being an idiot when someone offers a solution

#

Yes lmao, kill the program, and let it run again

onyx loom
#

it is a good solution lmao

hot hull
#

You say it's been stuck for 30min so why wouldn't you do that lol

#

close the projects, clear .idea folder

#

bruh

#

closing the program is usually a completely optimal solution

onyx loom
#

maybe its the bad connotations of alt f4

#

if u said close program, maybe thats helpful instead ๐ŸŒš

hot hull
#

open program manager, and kill the program

onyx loom
#

delete the project

forest pecan
#

are you sure your code isn't just wrong?

#

lol

onyx loom
#

๐ŸŒš

static zealot
prisma wave
#

gpl or mit

onyx loom
#

what for?

prisma wave
#

plugin

#

ima just do mit

onyx loom
#

privatemines?

#

yeah mit in this case

prisma wave
#

๐Ÿ‘Œ

#

and yea

forest pecan
#

mit superior

#

for some damn reason

#

when i code in kotlin

#

i keep typing def

#

for methods

#

python flashbacks

onyx loom
#

๐Ÿฅถ

half harness
#

๐Ÿ˜ฌ

old wyvern
forest pecan
#

lmfao

hot hull
#

I can use IJ for rust right?

onyx loom
#

iirc there is a plugin yeah

hot hull
#

ยธIndeed there is

old wyvern
#

CLion is more apt I think

hot hull
#

I see, time to download

prisma wave
#

CLion for haskell

hot hull
#

I will slap you

prisma wave
#

Ok

#

Go on

obtuse gale
#

Go on

forest pecan
#

that penguin just destroyed him

old wyvern
#

xD

forest pecan
#

absolutely destroyed

static zealot
#

does kotlin have tenary operator or whatever its called?

hot hull
#

return if else

#

:kek:

static zealot
#

yeah that's what I use xD

hot hull
#

7 more times

#

ooh, ngl I kinda like CLion's opening screen

forest pecan
#

lmao jetbrains just chooses a different opening theme for each update

#

its intruiging

hot hull
#

Can I import IJ's theme to clion?

forest pecan
#

I think?

#

Not sure though

obtuse gale
#

it's ew though

#

just like the others

old wyvern
hot hull
#

That's even worse than IJ Fefo

static zealot
#

that's what he said

old wyvern
onyx loom
#

fefo that is digusting wtf

#

jetbrains needs to fix up

obtuse gale
#

yeah i'mma sue them

onyx loom
#

please do

#

for everyones sake

old wyvern
#

What..

onyx loom
#

๐ŸŒš

static zealot
#

yeah Frosty questioned him too but didn't receive an answer

#

well at least I didn't see one

old wyvern
#

lol

forest pecan
#

people saying they are developers by knowing about configuration files

#

smh

onyx loom
#

?

#

yaml takes a lot of skill wdym

forest pecan
#

lmao

hot hull
#

@old wyvern gimme link to download Cargo

old wyvern
hot hull
#

ty

jovial warren
#

๐Ÿ™‚

obtuse gale
#

yeah k bye bardy

jovial warren
#

the new splash screen is actually awesome

#

I love the patterns

#

they're really cool

prisma wave
#

HaskStorm splash screen is the best

jovial warren
#

lol

#

that just doesn't go

#

I think HaskLion would be a better name

old wyvern
#

actually

#

what if

#

Time to fork ij ?

prisma wave
#

๐Ÿ˜ฎ

jovial warren
#

I knew you were gonna say that

prisma wave
#

Side project number 35?

old wyvern
#

Yes!

#

Holy shit

#

xD

#

So many projects queued up

#

none being done

#

god dammit

pale shell
hot hull
#

it burns

pale shell
#

BRIGHTTTTT

obtuse gale
#

lmao

#

restart it

hot hull
#

gotta import my IJ theme

pale shell
obtuse gale
#

you are using ints

#

meaning no decimals

#

use doubles

pale shell
#

I mean it does the decimals thonking

tranquil crane
#

you what

obtuse gale
#

it's in both the format and the sendMessage

lunar cypress
pale shell
#

i did? thonking

obtuse gale
#

yes

pale shell
#

oh ye.

#

smh

tranquil crane
#

Remove the % sign from the decimal format, change the type of percent to double, and change the 100 to 100.0

#

that should do it

obtuse gale
#

aah yes

#

windows wants to restart while I'm on zoom

#

amazing

static zealot
#

just disable all that shit

#

like I did

tranquil crane
#

you must feed microsoft with restarts

static zealot
#

most windows processes are disabled xD

pale shell
#

atleast i get to blame bm for these errors

tranquil crane
#

It's always bm's fault anyway

pale shell
#

he coded it at the start so

#

zoom must be raking it in just thinking about it

hot hull
#

Help, I stuck

old wyvern
hot hull
#

ยธHelp Yugi

old wyvern
#

?

#

What did you try running?

hot hull
onyx loom
#

poggers?

ocean quartz
#

Now time to spend hours on the docs trying to understand it Frosty

old wyvern
#

Have you installed c++ build tools?

tranquil crane
#

Why is the println function so excited

ocean quartz
#

Rust is very excited

old wyvern
#

macro

tranquil crane
#

I've read all the feature summary docs for rust but haven't ever used it and probably don't remember too much of it :L

#

off to find out what macros do again

lunar cypress
#

They do what macros do in all languages

ocean quartz
#

I tried it once, suffered for hours trying to do something simple ๐Ÿฅฒ

lunar cypress
#

Yeah thats rust

tranquil crane
#

alright so the syntax for defining macros is disgusting

#

using them looks neat though

lunar cypress
#

macros_do_not_rule!

distant sun
#

What is a macro?

old wyvern
#

Does stuff at compile time

tranquil crane
#

code that writes more code

hot hull
lunar cypress
#

Functions that return code that replaces your code at compile time

old wyvern
#

You're probably better off asking matt for help with this

#

I've never used rust

lunar cypress
#

The error should tell you when no compiler can be found

#

No error when running rustup?

hot hull
#

The installer said I needed c++ build tools, but as bright I am I didn't read shit and just entered everything so fingerguns

lunar cypress
#

Yeah there's your problem

#

Get the visual studio installer and install those

hot hull
#

Yeye already on it

#

I can add rust to my resume now right?

static zealot
#

Is there no way to set the amount of decimals for a Double in kotlin?

static zealot
hot hull
#

DecimalFormat

onyx loom
#

so many ways

hot hull
#

Now to figure out how to make a display etc in rust

#

I presume there's some nice libs which will make my life easier

distant sun
#

Why rust

hot hull
#

Because

ocean quartz
#

Oxidation

hot hull
#

Don't you dare say java

distant sun
#

Not rust

hot hull
#

Why not rust

#

it compiles to everything so that's perfect for this application

onyx loom
#

compiles to elara yes

distant sun
#

Meh

prisma wave
prisma wave
tranquil crane
hot hull
#

idk why gaby doesn't like rust

#

It's fast correct?

prisma wave
#

Delightfully fast

#

Pretty much as fast as C

lunar cypress
#

rust is perfect for every application when you're on adderall

prisma wave
#

๐Ÿ˜ณ

static zealot
#

does anyone know where I can find a full tutorial on github markdown?

hot hull
#

I mean syntax doesn't look so different

old wyvern
#

Does windows terminal have a in-terminal text editor like vim?

lunar cypress
#

I mean syntax doesn't look so different
My man is in for a ride

prisma wave
hot hull
#

It's got a css vibe

old wyvern
#

๐Ÿฅฒ

prisma wave
hot hull
#

gtk::{

old wyvern
lunar cypress
#

There's no built in terminal editor, no

old wyvern
#

rip

lunar cypress
#

There used to be

#

And now there's barely any that runs on windows

old wyvern
#

Isnt it very new already?

#

Why did they remove it so soon?

hot hull
#

Lmao that's fucking bs kek, you need to start a trial in order to see the entire code

lunar cypress
#

Windows Terminal doesn't have to do anything with it

prisma wave
#

just WSL bro

lunar cypress
#

I mean windows used to ship with a 16 bit editor

lunar cypress
#

bash -c "vim filename" is your best option

prisma wave
#

Alternatively don't use Windows

old wyvern
#

Not much of an option

#

btw, does unreal not work properly on linux?

#

Some guy said so in his game presentation

#

like in my class day before yesterday

oak raft
#

Probably not tbh

old wyvern
#

rip

oak raft
#

ur working with unreal now? thonking

old wyvern
#

No

#

One of my classmates was using it for his game

oak raft
#

ah

#

how was it

old wyvern
#

Pretty good, not complete tho

#

Was only review 1

oak raft
#

I see, are you also making a game for the class?

old wyvern
#

Yes

#

Everyone has to

oak raft
#

What's the game about ๐Ÿ‘€

old wyvern
#

A parkour - escape the room type of game

oak raft
#

๐Ÿ˜ฎ

ocean quartz
#

Anyone want to bully me on some changes I am doing to mf-gui?

lunar cypress
#

What type of game efe?

hot hull
#

I want to be able to know what the menu looks like before it's even built, thanks

oak raft
#

use unity fingerguns

onyx loom
#

unity in mobile ๐Ÿค”

oak raft
#

yeah

lunar cypress
#

Yes

#

Many engines can target mobile

onyx loom
#

lol

oak raft
#

(including unity fingerguns)

onyx loom
#

idle game for unity tho ๐Ÿค”

lunar cypress
#

Question is whether it's worth

ocean quartz
#

So I am trying to change away from implementing InventoryHolder, since it'll make my life easier to add components support
My current solution is the following: (don't really like it that much)
So on the BaseGui I'll do:

    @NotNull
    private static final Plugin PLUGIN = JavaPlugin.getProvidingPlugin(BaseGui.class);

    /**
     * Holds all the instances of BaseGui that are currently opened
     * This is to avoid implementing {@link InventoryHolder}
     */
    @NotNull
    private static final Map<Inventory, BaseGui> GUI_HOLDER = new HashMap<>();

    // Registering the listener class
    static {
        Bukkit.getPluginManager().registerEvents(new GuiListener(GUI_HOLDER), PLUGIN);
    }

Then on the GuiListener:

    @NotNull
    private final Map<Inventory, BaseGui> guiHolder;

    public GuiListener(@NotNull final Map<Inventory, BaseGui> guiHolder) {
        this.guiHolder = guiHolder;
    }

This part bothers me a bit ๐Ÿ˜ฌ
But basically it'd make it simple to check the gui, on open I do GUI_HOLDER.put(inventory, this) then to get on the events guiHolder.get(event.getInventory()) then remove it from the map on close

lunar cypress
#

Idk what an idle game is so

onyx loom
#

cookie clicker type shit i think

lunar cypress
#

Yeah probably don't need an entire engine for that

ocean quartz
hot hull
#

Seems really easily prone to breaking/funkiness since bukkit a whore

#

As in detecting when to remove the menu

old wyvern
ocean quartz
#

Yeah it really is which is why i don't like it
For example I'll need to check if the viewers of the inventory is just 1 or else don't remove it

ocean quartz
hot hull
#

Otherwise that'd actually be a decent way for handling it ngl

old wyvern
ocean quartz
#

Do you think there is any better way of doing this?

old wyvern
#

You could keep track of the viewers maybe?

hot hull
#

Would still be practically same way as this

old wyvern
#

hmm

ocean quartz
#

I could also store stuff on a WeakHashMap iirc it gets removed from the map by the gc when the reference to the instance is gone, but idk ๐Ÿ˜ฉ
Might just go with what I have

forest pecan
#

i never really liked dealing with guis

#

they were always ugly

ocean quartz
#

Yeah

hot hull
#

Mine are beautiful

#

smexy

ocean quartz
#

Very smexy

old wyvern
#

Imma PR a kotlin dsl

ocean quartz
#

Oooh nice

half harness
#

how do u make a static factory/builder in kotlin

#

companion object?

old wyvern
#

builder pattern is obsolete in kotlin

#

use named args with defaults instead

#

for static factory

#

Just an object

half harness
#

uh

#

can u give small example?

old wyvern
#

of usage of object?

half harness
#

uhhh

old wyvern
#

What do you want an example of?

half harness
#

use named args with defaults instead
this

old wyvern
#
class Human(
   val name: String = "dkim",
   val age: Int = 15,
   val height: Int = 150
)

fun main() {
  val olderDkim = Human(age = 20, height = 170)
}
half harness
#

ic

ocean quartz
#

Older taller

old wyvern
#

xD

half harness
#

lol

#

why not a data class?

old wyvern
#

just an example

half harness
#

when do i make something a data class and when do i not?
like would bukkit Player be a data class? since its holding data? or just classes that hold data that don't have any methods?

old wyvern
#

just classes that hold data that don't have any methodsUssually yea

#

Where you would use POJOs

ocean quartz
#

"What is POJOs"

old wyvern
#

data classes generate a normal hashcode and tostring implementation with their fields

old wyvern
ocean quartz
#

There dkim you didn't need to ask this time xD

half harness
old wyvern
#

xD

old wyvern
half harness
#

so a Player shouldn't be a data class?

#

(ignoring the fact that it's an interface)

ocean quartz
#

A player should

half harness
#

oh

#

oh and like managers shoudn't

#

okay

ocean quartz
#

Player, world, inventory, things that hold data

half harness
#

thx

#

BM

prisma wave
#

i mean separating data and logic is objectively better

#

But sure

#

Hello

old wyvern
#

Bridget

prisma wave
#

Bridget here

old wyvern
#

what is a bridget anyway

#

Brigid is a Gaelic/Irish female namewut

#

An alternate meaning of the name is "exalted one"

onyx loom
#

Mrs. Bridget Monad

old wyvern
#

Exalted Mitten