#dev-general

1 messages ยท Page 540 of 1

obtuse gale
#

What the fuck lmao

#

Nighty

frail glade
#

They are literally right here pls.

obtuse gale
#

Watch Glare jump down the insanity pit ๐Ÿฅฒ

frail glade
#

My only guess right now is that the chunk isn't loaded?

obtuse gale
#

But you're loading the chunk aren't you?

frail glade
#

I assume loc.getChunk().getEntites() loads the chunk

#

If not, then no.

obtuse gale
#

Hm

ocean quartz
#

Inb4 "Imma just rewrite the entire plugin" ๐Ÿฅฒ

frail glade
#

I really don't want to have to but I'd say I've done 10% so far adding in this new reflection shit.

obtuse gale
#

Try loading it manually lmao

Chunk chunk = ...
chunk.load()
``` or whatever
frail glade
#

Nah that didn't fix it. It has to be a timing thing because if I login and I run /bb reload it works.

obtuse gale
#

Ugh just changed my phone number because the old line got deactivated for whatever reason
Having to change it on every.single.website uuugh it sucks

prisma wave
#

Popular premium plugin be well written challenge (IMPOSSIBLE)

#

Except glare plugins ofc

frail glade
#

No you can call Guilds out. 2016 code OMEGALUL

#

VP tho

prisma wave
#

VP had the sxtanna code review right?

#

Therefore it's impossible to be bad

ocean quartz
#

Sx ๐Ÿ˜ข

prisma wave
#

I wonder what he's up to

#

Probably working for google, telling them all about how good kotlin is

ocean quartz
#

He'd be so happy with Kotlin possibly adding companion fun syntax

prisma wave
#

he's probably botting the survey as we speak ๐Ÿ˜Œ ๐Ÿฅฐ

frail glade
#

Been away on Overwatch for 22 days.

ocean quartz
#

Damn, that's a long time that's a surprise

frail glade
#

Wowza. I have over 33,000 artifacts in my Nexus repo. I'm working on downloading a HR copy to try out reposlite.

ocean quartz
#

Reposilite is pretty nice, though i love how jfrog artifactory looks

quiet depot
frail glade
#

I was just checking it out

#

I got to 34K and it froze

#

So I had to start it over.

half harness
quiet depot
#

iirc it doesnโ€™t tell you when it stops

#

I think I had to control c because it was โ€œstuckโ€ on one, but in reality it finished

#

oh I think I had to edit the code a bit too to download all xml files

#

iirc it was only downloading jars

obtuse gale
#

man spigot is shit

#

it relocates fastutil under obc

ocean quartz
#

It relocates so many things, doesn't expose useful ones, it's a mess

frail glade
#

@quiet depot Do I really have to separate my snapshots and releases?

quiet depot
#

theyโ€™re separate by default in nexus

#

if you manually changed that in nexus

#

u can manually change it in reposilite too

#

just create a new repository in reposilite and upload both to there

frail glade
#

I didn't really use my release / snapshot

quiet depot
#

u can just make a repo called public or something and upload both

frail glade
#

I have public which contains everything.

#

Yeah

#

kk

quiet depot
#

but again

#

u might have to modify that downlaoder code a bit

#

because iirc it missed out on some xml files

#

like maven metadat

frail glade
#

Ugh

#

I already did the 60K files ๐Ÿ˜ฆ

quiet depot
#

wait no

#

I think that mightโ€™ve been the first convertor i tried

#

can u link me the convertor on gh?

frail glade
quiet depot
#

is that the one I linked in the issue?

frail glade
#

Ya

quiet depot
#

Well just check urself

#

did it download maven metadata?

frail glade
#

Ya

quiet depot
#

u should be fine then

#

just copy everything it generated into ur reposilite public repo folder

frail glade
#

Ty

ocean quartz
#

There's a flight coming in from Nice

hot hull
#

Why are you in an airport

sly sonnet
#

He's fed up with current locacion. Probably in search of a better place ๐Ÿ˜„

ocean quartz
obtuse gale
#

guys

#

i just got a warning from the discord debug server from sayin "dick"

#

imma get a permanent ban if i get another warning

#

that's cool

cinder flare
#

say it again

obtuse gale
#

who else

#

you

obtuse gale
#

why would i talk to myself

obtuse gale
#

snopp dogg like dough

#

soo

#

๐Ÿ‘

#

Elon Musk like mu-

#

stard

#

mutant dick hamsters?

#

oo

#

..

#

oh

#

ok

#

imagie tho

#

a 10 inch dick on hamster

#

ahaha

#

and a 20 inch dick on dwarf ๐Ÿ˜ณ

ocean quartz
obtuse gale
#

๐Ÿฃ but takeaway "hi"

#

bye

#

what u mean

obtuse gale
harsh forum
#

btw how do i mute the 'which is not a depend, softdepend or loadbefore of this plugin.' warning on paperclip?

obtuse gale
obtuse gale
#

๐Ÿ’ฅ

hot hull
sly sonnet
#

what would happen, if java:

boolean true = false

m?

ocean quartz
#

Error, you can't name a variable a keyword

obtuse gale
#

except for contextual keywords

#

restricted identifiers*

potent nest
#

The endboss for regex based syntax highlighting

obtuse gale
#

funnily enough, the JEP about contextual keywords/restricted identifiers talks about how much of a PITA it is for IDE devs lol

potent nest
#

yeah, for IDEs it's hard for incomplete input, but syntax highlighting in e.g. markdown will just not work correctly at all in half of the cases

distant sun
prisma wave
#

Surely there's a better way of doing this

distant sun
#

Lol that image url actually exists

chilly mortar
#

hi i need help my server has many errors starting

distant sun
#

@chilly mortar wrong chat

old wyvern
#

๐Ÿ˜Œ

steel heart
#

Method reference >>>

old wyvern
#

Only one issue atm ๐Ÿฅฒ

#

If I provide a token for a user that doesnt exist or an invalid token, Ill get a 500 instead of a 403

#

im gonna have to use a lambda instead to catch ๐Ÿ˜”

steel heart
#

Too bad we canโ€™t pass throwing functional interfaces

quiet depot
#

why can't you?

old wyvern
#

You can

#

But not here

steel heart
#

Well streams donโ€™t support

quiet depot
#

nothing stopping you from adding support

old wyvern
#

It needs to accept a functional interface that has a throws shown

old wyvern
steel heart
#

Yeah of course could make some sort of stream helper

old wyvern
#

The accepted type just needs to be the type that catches

#
interface CatchingRunnable {
   void run() throws Exception;

   default void silentlyRun() {
      try {
        run();
      } catch (final Exception ex) {

      }
   }
}
steel heart
#

And extend Runnable fingerguns

#

Nvm

#

Oh u did it that way

#

You could have the run method defaulted

old wyvern
#

Cant

#

The one from Runnable doesnt have the throws list

old wyvern
#

The lambda needs to be for a method that throws or it will force you explicitly handle the exception inside the lambda

steel heart
#
@FunctionalInterface interface ThrowingRunnable extends Runnable {
  @Override default void run() {
    try {
      this.runExceptionally();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  void runExceptionally() throws Exception;
}```
#

Or no?

old wyvern
#

Yea that would work, I thought you wanted to use the default run from Runnable

steel heart
#

Ah fair

old wyvern
#

That annotation style is quite cursed

steel heart
#

But yeah wat ya working on

#

Lmao

old wyvern
#

๐Ÿฅถ

old wyvern
#

data processing application for RRCAT

steel heart
#

Oo did u have an interview?

old wyvern
#

Yes, but it was with the 3 of us in the team, not individual

steel heart
#

Ah, data structures and algorithms?๐Ÿฅฒ

old wyvern
#

Nope, not for this one. They just asked for our resume and then it was just mostly them explaining the project to us and explaining the documentation

steel heart
#

Oo nice ๐Ÿ˜Œ

old wyvern
#

Had an interview for the NCSSS one

#

That one had some questions, but this one, not much

steel heart
#

Oo nice, had one interview and I failed totally hehe

old wyvern
#

rip, which company?

steel heart
#

It was a minecraft server, well I did apply when I was a beginner and kinda lied in my application heheheheh

old wyvern
#

oh lol

old wyvern
#

LMAO they actually have that april fools httpstatus on there

prisma wave
old wyvern
#

mhm

prisma wave
#

Seems like this is just java bad

old wyvern
#

๐Ÿ˜Œ

prisma wave
#

๐Ÿคช

old wyvern
#

Haskellers... Good

errant geyser
#

haskell bad

prisma wave
#

Source?

errant geyser
#

my nan

prisma wave
#

She is wrong

errant geyser
#

Do you happen to know how to use Ktor

#

Where's Matt when you need him smh

errant geyser
prisma wave
#

Yes she is

prisma wave
frail glade
#

So a little update on BB. It's apparently not using Netty properly and that might be why it's not fully loading everything.

steel heart
#

๐Ÿฅฒ

jovial warren
potent nest
#

well, only if it's coming from a teapot

jovial warren
quiet depot
#

wow this is cool

#

I was just setting up 2fa for sendgrid on my pc

#

it automatically added the app to authy

#

didn't have to scan anything

#

or input a code

obtuse gale
#

Spooky

quiet depot
#

simply having authy installed on my pc was good enough

#

and it synced to phone too basically instantly

#

also linux!

old wyvern
#

ElaraOS >>>

cinder flare
#

mmmm 2fa

distant sun
#

@quiet depot do you know how to use regex find and replace on sublime?

quiet depot
#

yes

#

what r u looking for kid

#

@distant sun beep boop

ocean quartz
distant sun
quiet depot
#

@distant sun highlights the same stuff for me

#

did u enable regex search?

distant sun
#

oh god

quiet depot
#

oh no

#

i just realised

distant sun
#

I see now, I tried that on yml and oh well, there's spacing and ' '

quiet depot
#

i just ditched my 1.5 years vps uptime

distant sun
#

:))

quiet depot
#

rip

distant sun
#

you dont know what uptime is when using oneprovider tbh

errant geyser
old wyvern
#

WTF!!!

cinder flare
#

Spring be lying to you?

old wyvern
#

Absolutely no idea

quiet depot
#

guice >

#

guice wouldn't have this problem

#

guice is good

#

unlike spring

old wyvern
#

The constructor got called once

#

But

#

now the field is empty

cinder flare
#

maybe Spring just passed in null lmao

old wyvern
quiet depot
#

dagger is bad

old wyvern
cinder flare
#

oh huh

old wyvern
#

Maybe it created another instance for some reason...

#

hmm

quiet depot
#

so star

#

in case you weren't aware

#

@Autowired is pleb @Inject

old wyvern
prisma wave
#

you already know what i'm gonna say

cinder flare
#

ya I know

onyx loom
#

say the line bart

old wyvern
prisma wave
onyx loom
#

i would never

old wyvern
#

The constructor did receive the values

#

yet...

#

Any idea @prisma wave ?

quiet depot
#

can u show me the class declaration

old wyvern
#

of the details service?

quiet depot
#

yes

old wyvern
#

one sec

onyx loom
#

hey if u guys wanna see intellij drunk, then try guess where the issue comes from ๐Ÿ‘€

prisma wave
#

lombok

prisma wave
#

tried rebuilding?

onyx loom
old wyvern
prisma wave
quiet depot
#

ensure this class is getting loaded at the right time

#

i.e. loaded and initialized before it's used

old wyvern
#

Alrighty, one sec

quiet depot
#

my bet is one of those annotations (service/transactional) is tickling the fields

old wyvern
#

hmm, possibly, lemme try replacing it with Component

quiet depot
#

or ur using it before the constructor is called

old wyvern
#

How do I use it before the constructor is called

quiet depot
#

it's spring

#

who knows how it's instantiated

old wyvern
#

xD

quiet depot
#

a more general answer though; unsafe

old wyvern
#

It seemed like its calling the constructor normally tho

quiet depot
#

well it is

#

but there's no guarantee that the instance you're using is the one where the constructor was called

old wyvern
#

And seems Component doesnt change it either

quiet depot
#

what you using spring for anyway?

old wyvern
#

backend for an app

#

ohh wait

#

I think

#

Wait no

#

Something is def wrong elsewhere ๐Ÿ™ƒ

#

Ok wow...

#

Found the issue

#

Apparently it needed a toString function for some reason

#

Adding this fixed it

prisma wave
#

horrendous

#

just derive Show dumbass ๐Ÿ˜Œ

old wyvern
#

๐Ÿ˜”

#

Is it fine if the server token secret is regenerated on every startup or should it be a constant?

prisma wave
#

server token?

old wyvern
#

the secret key used to generate the jwt

#

rn im just letting the api generate it

#

Which means a token is not valid after restart

prisma wave
#

Probably not that big a deal

#

it just means people will have to reauthenticate if you restart

ocean quartz
errant geyser
#

Perfect

#

So, @ocean quartz I'm trying to serve a HTTP API on api.osable.tech, and serve a website on osable.tech. For that, I'm using https://bin.osable.tech/agoqukavoj.kotlin . I hate the hacky way I've gotten around serving the website, since it means I can't have images, and the way I've done CSS and JS is complete trash. It seems as if static blocks inside host blocks just don't work. If I swap to using

        host("osable.tech") {
            static("/") {
                resource("files/index.html")
            }
            static("privacy") {
                resource("files/privacy.html")
            }
            static("tool") {
                resource("files/tool.html")
            }
        }``` I just get 404s on every single page. Do you know why this is/what I'm doing wrong?
Ping me if you get a chance to reply
sly sonnet
#

Why would anyone want to make an API for PAPI?

prisma wave
#

what

sly sonnet
prisma wave
#

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

cinder flare
#

Presumably to allow websites to parse PAPI placeholders

static zealot
#

ugh

#

didn't fred or someone else

#

make one alreadyT?

ocean quartz
cinder flare
#

PAPIAPI

sly sonnet
#

some bigbrain shit I do not understand yet...

cinder flare
#

Probably so like Dynmap can use custom placeholders

#

Or their own forum or something

#

I can see the use

hallow crane
#

Does anyone know how to use slimjar's isolated classloader thing

forest pecan
#

Like the appending thing

hallow crane
#

There are two more arguments

#

No documentation I can find

ocean quartz
#

Why do you need it to be isolated?

forest pecan
#

You can just use the agents

old wyvern
#

Wtf?

hallow crane
#

Agents? I'm not sure what that means because I don't have the docs

old wyvern
#

Appending works on 16 now

#

Just use the one in the readme, you shoulf be fine

hallow crane
#

wait how does it workk on java 16

old wyvern
#

For isolated the args are: Application name, Isolation config and program arguments

humble silo
old wyvern
humble silo
#

huh, maybe someone else that im thinking of then

old wyvern
#

It uses both the method you suggested and a method with jnsafe @hallow crane

hallow crane
#

Hmm

#

Interesting

#

But cool

humble silo
#

dang, im sure it will be fine /s

forest pecan
#

Btw Yugi I fixed the issue

old wyvern
#

The one you suggested had some issues on specific hosts, so I have that as a fallback and use another version as the main one

old wyvern
forest pecan
#

Yeah

#

I just manually concatenated with a string

#

Lol

old wyvern
#

Oh lol

forest pecan
#

Itโ€™s only a Windows issue

old wyvern
#

Ahh

forest pecan
#

Itโ€™s the path names not being compatible because they arenโ€™t converted

#

Hard to explain

old wyvern
#

I see

cinder flare
obtuse gale
#

no

#

that's why Linux exists ๐Ÿ˜Œ

cinder flare
#

ya but you get the best of both worlds right now

obtuse gale
#

what is this? hannah montana?

cinder flare
#

not having to choose a DE/WM and everything good about linux in terms of dev environment

obtuse gale
#

yeah true

hallow crane
obtuse gale
#

CraftBukkit already includes sqlite though thonking

hallow crane
#

I have my reasons

#

It's an old version

#

I need a newer one for specific reasons

obtuse gale
#

๐Ÿคก

#

oh yeah

hallow crane
#

LuckPerms does exactly that too

obtuse gale
#

i remember

hallow crane
#

That version is trash

#

It doesn't work at all with Bukkit 1.7

cinder flare
#

1.7

#

dear god

#

also I didn't know there even were many changes in SQLite

hallow crane
#

It's huge

#

the entire library is fucked

obtuse gale
#

lol

hallow crane
#

You can't use it with hikari

cinder flare
#

you don't really need to tho

hallow crane
#

I need to

#

The way my system is setup it uses hikari

obtuse gale
#

i mean if you're gonna go isolated you don't

cinder flare
#

you could use like not hikari tho

hallow crane
#

I didn't write this code.... someone else did and I need to keep it that way

obtuse gale
#

mm

cinder flare
#

thanks to the glory of object oriented programming

hallow crane
#

Point is, how do I isolate and load that way

cinder flare
#

we can abstract away implementation details

hallow crane
#

actually it's very abstract

cinder flare
#

not abstract enough to not use Hikari?

obtuse gale
hallow crane
#

yeah that's kind of handled

obtuse gale
#

"kind of"?

hallow crane
#

it doesn't need to be

#
        IsolatedClassLoader classLoader = plugin.getDependencyInstantiation().getDependencyManagement().getIsolatedClassLoader();
        try {
            Class<?> connectionClass = classLoader.loadClass("org.sqlite.jdbc4.JDBC4Connection");
            this.connectionConstructor = connectionClass.getConstructor(String.class, String.class, Properties.class);
        } catch (ReflectiveOperationException e) {
            throw new RuntimeException(e);
        }
#

then later

            return (Connection) this.connectionConstructor.newInstance("jdbc:sqlite:" + file.toString(), file.toString(), new Properties());

obtuse gale
#

yes? that has nothing to do with hikari

#

LP doesn't use hikari for sqlite or h2

#

it uses a non-closeable connection

hallow crane
#

that's what I meant actually

obtuse gale
#

literally not hikari

hallow crane
#

its a flatfile connection pool I made

#

not hikari

#

my bad

obtuse gale
#

๐Ÿ™ƒ

hallow crane
#

not the point at all....I just want to know how to isolate and load

#

with slimjar

obtuse gale
#

@yugi I guess? Idk if that is an available option on SJ, not a clue

hallow crane
#

@old wyvern

obtuse gale
#

like only a single jar instead of the whole application

hallow crane
#

I wanted to implement a jarinjar w/ multi platform support

#

but that would take like a week to refactor my entire app

#

I'd probably have to remake it from scratch

obtuse gale
#

i mean you can also make an exclusion in SJ for sqlite and just load it yourself with an isolated class loader, that is like another 3 classes at most, but if SJ has something for that that's cool ig

hallow crane
#

well I did that but the method I use doesn't work with java 16

#

cant separate

obtuse gale
#

why not?

hallow crane
#

it just...doesn't

#
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @60f604b0

obtuse gale
#

you don't even need to do that?

hallow crane
#

using pulsebeat's downloader

obtuse gale
#

well the downloader itself has nothing to do with how you load the jar

cinder flare
#

pulsebeat what a guy

obtuse gale
#

that is trying to append it, not load it in an isolated class loader

hallow crane
#

his downloader and appender are in the same project

#

they are intertwined

obtuse gale
#

but they are two separate concepts

#

fetching and downloading the jar is step 1
how you load the jar has nothing to do with how or where you got it from

#

take a look at luckperms seriously

#

it's that, 3 classes

hallow crane
#

I understand how the entire process works

obtuse gale
#

then what's the issue

hallow crane
#

I have looked at luckperms very closely

#

I understand how that works too

obtuse gale
#

then you can surely make it work

#

pretty much copy paste besides package names lol

hallow crane
#

It's not that simple

obtuse gale
#

how is it not?

hallow crane
#

I looked at LP

#

it's intertwined with itself

#

It's not even close to as simple as copy pasting

obtuse gale
#

it very much is

hallow crane
#

It's not at all

#

I need a fully custom jar in jar loader

#

Create a jar of my implementation, and load that with a bootstrapper

#

It's totally fundamentally different

#

I need to build a whole new application for that

obtuse gale
#

that is literally what luckperms does

hallow crane
#

I am trying to keep this project in one single root module

#

listen to what I ssaid

obtuse gale
#

you don't even need a separate module for an isolated loader for this

hallow crane
#

above

#

that's what LP does

#

I am not saying I want to do that

#

I am saying in order to do it like LP does it

#

I need to do that

obtuse gale
#

you don't even need to get LP's full setup to load sqlite on an isolated loader

#

hell you can even pull that off with a standalone application

#

no slimjar or anything

hallow crane
#

but you do though. In order to use that method you need another jar

obtuse gale
#

????

hallow crane
#

not the isolated part but the actual appending part

obtuse gale
#

isolated is the opposite of appending

#

you don't append the sqlite jar

hallow crane
#

no I mean if you want to do both in the same project

obtuse gale
#

yeah you can without any hassle

hallow crane
#

I understand that appending is loading into your current group and isolating is loading into a whole new group

obtuse gale
#

the isolated jar loading is just 3 classes and it has absolutely nothing to do with modules or sj or appending or anything like that

#

you can do that anywhere

hallow crane
#

but I need to make a downloader too

#

that's my whole problem

#

if im using slimjar then I am not going to write my own version of it

#

just to download and load sqlite

obtuse gale
#

you already have the downloader...

hallow crane
obtuse gale
hallow crane
#

the way pulse's project works is that they are intertwined

obtuse gale
#

is it really that hard to put two brain cells together and figure out how to download a file by itself?

hallow crane
#

there is one master class that manages downloading relocating and loading

#

It's a waste of brain power

obtuse gale
#

you already have it

hallow crane
#

dude I understand how it works

obtuse gale
#

extract that from said master class

#

then do it holy fuck

hallow crane
#

It's not easy

obtuse gale
#

it fucking is

hallow crane
#

then you do it

#

I have actual code to write

obtuse gale
#

already did

hallow crane
#

Pulse's system downloads ASM and ASM_COMMONS for jar related stuff. If I want to use sqlite isolated, I still need to download it. In order to download and package into a jar to load isolated, I need ASM and ASM_COMMONS which are both required to be appended to the current loader. The issue occurs when pulse's program appends them to the loader, and that error is thrown

old wyvern
hallow crane
#

Can you isolate and load a specific dependency with slimjar

old wyvern
#

Yes

hallow crane
#

Can you explain? I can't seem to find any docs

hallow crane
#

Okay nevermind thanks

old wyvern
#

You know the rest?

hallow crane
#

I am trying to avoid modules altogether

#

I think i'll just write my own :p

old wyvern
#

Alright

#

Why not just use appending?

hallow crane
#

It's sqlite

#

Bukkit loads it

#

Wrong version

#

And they're totally different

old wyvern
#

You can still append it

#

relocation is suppourted

hallow crane
#

I can't relocate it

#

Sqlite references itself

#

With class names as strings

old wyvern
#

Do you want to inject it into a separate classloader?

hallow crane
#

I guess yeah

#

But I also want access to it somehow

obtuse gale
#

And you're not appending, it's a completely different loader for a jar

hallow crane
#

I'm not talking about appending sqlite

#

the method in this loader uses the addUrl method to append a class to the loader

#

if its in an isolated loader it still appends it

#

it just happens to be isolated

obtuse gale
#

lmao

#

okay

#

how special

vast canopy
#

Any good tutorials for making GUIs? Like I watched Kody Simpson's Armor Stand plugin tutorial which told me how to make a GUI and flip through menus and item meta in inventories. However:

I am trying to make an Elections plugin where it'll only let people with certain configured permissions run and vote in set elections. I want declarations where people can nominate themselves and then a 24 hour voting period where it'll then tabulate votes and give the winner a new perm group and remove the former incumbent's role.

I need good tutorials for:
1) Adding player heads to inventories with skins representing the candidates
2) How to display only election options for people with the perms (If statement, I just don't know the attribute to call for it)
3) Ensure each person only votes once, but can cancel their votes (Thinking of using hashmaps, but idk)
4) The method to count votes and give the vote winner the role, while removing the previous one (I could use luckperms commands for the last two but not sure if there is a better method for this)
5) Persistence through restarts and stops (Good database tutorial?)

#

Also I am completely new to plugin development so forgive me. I used to make mods but been a minute since I've programmed anything.

distant sun
prisma wave
#

๐Ÿ™„

distant sun
#

why does iij wants me to add throws IllegalAccessException to one class constructor but not to another lol

cinder flare
#

maybe one of them throws an illegalaccessexception and the other doesn't

vast canopy
#

What the heck is a maven or gradle dependency? I don't use either of those I just made a raw Java project and hooked it to the spigot jar...

cinder flare
#

oh boy

#

Maven and Gradle are build tools

#

Essentially, people had a problem when working with other people

#

How do you ensure that each person has the exact same dependencies, the same versions, and everything

#

What if someone accidentally has a newer version of something that breaks something

#

So they invented build tools to standardize the process

#

Now, it's as easy as a few lines in your build.gradle and it will download the correct dependency for you and anyone who wants to build your project

#

One of the most important skills as a developer is using build tools correctly, so I would definitely look up how to use Gradle for a spigot plugin

ionic talon
#

Hey guys

#

Why is string a class and not a primitive?

cinder flare
#

because it's an array of characters

#

with lots of methods to help you deal with it

prisma wave
#

actually

#

can you clarify what exactly you're asking

#

why was it designed as a class?

cinder flare
#

presumably, they think a string should be a primitive cause it's so widely used

prisma wave
#

or why is it a class

ocean quartz
vast canopy
#

Do I have to use gradle? I am making a private plugin for my server so idc about other people downloading my thing

cinder flare
cinder flare
#

Lets just say, I have taken over a few of clip's plugins and he only used Eclipse

#

It was hell trying to reconstruct his build and making sure everything worked correctly

#

Any IDE will do a build tool 99% for you

vast canopy
#

I used gradle for modding

#

But idk how to use it for plugins

#

I started plugin dev yesterday

cinder flare
#

The same

#

Just list repositories and dependencies

vast canopy
#

I never had to do that in modding tho

#

I used gradle to build forge and that was it

cinder flare
#

oh boy

distant sun
prisma wave
cinder flare
#

i would very much recommend it

#

it's a single line of code to get spigot

#

or any other dependency you'd like

vast canopy
#

Sigh any good tutorials for that?

#

I just want to make a simple voting GUI plugin ๐Ÿ˜ญ

cinder flare
#

IJ will autogenerate it for you

#

Minecraft Development plugin

ocean quartz
cinder flare
#

MF-GUI ๐Ÿ‘€

vast canopy
cinder flare
#

well there's another mistake to fix

vast canopy
#

I hate IJ. Too many features and too complicated UI

cinder flare
#

get a load of this guy @prisma wave

#

eclipse' UI is 100x more crowded and ugly looking

vast canopy
#

...

cinder flare
#

and how is too many features a bad thing

vast canopy
#

Cuz then idk wtf I am doing or clicking

#

I am not a software dev. I only know how to make mods for MC. That's it

#

And basic ones too

obtuse gale
vast canopy
#

I do

#

And then devs give me cheeky answers

#

And treat me like a dumb ass

obtuse gale
#

let me rephrase

#

you can ask here

#

"what is this shit for?" "will i ever use this crap if I do this and that?"

#

we try to be a beginner welcoming community, so long as you are actually willing to learn

#

the only stupid people here are those that are not willing to learn

cinder flare
#

also you're asking in the wrong channel which is like 30% of why I'm being so mean

vast canopy
cinder flare
#

doesn't seem like it

trim topaz
#

ohhh drama

vast canopy
#

Bruh I just want to know how to make a GUI with heads in it that counts votes. I don't want to switch IDE's to do that

#

I've used Eclipse for many years

cinder flare
#

I don't know of a single person here that I respect that uses Eclipse

#

and for good reason

#

If you want support, you're gonna have to use the thing everyone else uses

vast canopy
#

The support I am asking for is not IDE dependent

old wyvern
#

Ah yes, good ol' IDE wars

obtuse gale
#

Also eclipse lets you do the most disastrous thing ever which is build the jar file even with literal compilation errors

old wyvern
#

IntelliJ best as always

cinder flare
prisma wave
#

tfw you start the conversation in #dev-general so the "No Favorite IDE Arguments" rule in #development doesn't hold ๐Ÿ˜Ž

old wyvern
#

Imagine not having MethodNotImplementedError at runtime!

vast canopy
#

What do I need a build.gradle for

cinder flare
#

oh boy

#

now this guy is funny

old wyvern
vast canopy
#

what's that

old wyvern
#

It lets you properly define how you want to build your jar, resource processing, dependencies, relocation...ect...

vast canopy
#

wuh?

#

Isn't making a jar file enough?

#

I just need the thing to work lol

old wyvern
#

For anything thats not just some hello world assignment, no, its not

vast canopy
#

I don't understand anything except my bit of Java I know

old wyvern
#

Thats fine, just start learning of the required tooling

vast canopy
#

I only want to make a plugin though

old wyvern
#

Dive in and just google through whatever puzzles you, and if you still dont find it, you can always ask here

vast canopy
#

I don't wanna become a full dev

old wyvern
#

There is no full dev

obtuse gale
#

making plugins demands quite a bit of a lot of knowledge beforehand

old wyvern
#

If you want to make plugins, you still need to know what you're doing

obtuse gale
#

that's something a lot of people dismiss and don't get

vast canopy
#

Why can't I just use Java lol

#

I just need an elections plugin. That's literally it. I don't need some weird build gradle when I know it is possible to do what I need with Java

old wyvern
#

All this is part of the java toolset

#

The language itself isnt what makes it great. Its the wide-spread tooling and library suppourt that makes it useful.

old wyvern
vast canopy
#

No cuz I want help on one thing and you're telling me I have to switch IDE's

#

That's called being unhelpful

#

But look, I do IB at my school. I study law. I do IRL things

ocean quartz
#

If a person doesn't use an old IDE they don't know how to help you use said old IDE

vast canopy
#

I don't have time to learn fancy dev things when all I want is to be pointed toward the methods that allow me to change head textures lol

vast canopy
hallow crane
#

What's your problem @vast canopy

cinder flare
#

I do IB at my school

#

what a guy

ocean quartz
#

Firstly this isn't the channel for that, that'd be #development

old wyvern
#

Exactly

#

Haskell good

#

Java bad

#

All you need is Stack, Cabal and GHC in your life

dense dew
#

papi in haskell when

old wyvern
#

๐Ÿ”œ

hallow crane
#
  1. Add player head items with skin attribute โœ…
  2. Upon open, only add item if permission is met โœ…
  3. Ensure each person only votes once, but can cancel their votes (Thinking of using hashmaps, but idk) hashmaps โœ…
  4. The method to count votes and give the vote winner the role, while removing the previous one luckperms + meta โœ…
  5. Persistence through restarts and stops (Good database tutorial?) h2, json, yaml, or mysql โœ…
prisma wave
old wyvern
cinder flare
hallow crane
#

In order to access these apis, you need maven or gradle

#

It's a requirement

cinder flare
#

ayy even yako is on board

hallow crane
#

It's not optional

vast canopy
#

Why is it required

hallow crane
#

Unless you want to fuck yourself over and add it to classpath

obtuse gale
cinder flare
#

it's literally how you get external libraries

vast canopy
#

I added spigot to class path

hallow crane
#

you're missing this entire point

cinder flare
#

adding to the class path comes with a myriad of problems

ocean quartz
#

Because it's a build tool and a dependency manager, unless you want to create the libs by yourself you'll need to to add the libs you'll need

cinder flare
#

it will be much easier if you stop resisting and learn a single build tool

humble silo
#

ugh

hallow crane
#

if you want to use these libraries you NEED TO USE GRADLE OR MAVEN. It's how all of those libraries ALLOW YOU TO ACCESS THEM

vast canopy
#

Ok

#

So where do I learn how to use that shiz

old wyvern
#

Documentation

hallow crane
obtuse gale
#

it is part of the learning process, that's what you are not seeing either

vast canopy
#

No. The basics

old wyvern
vast canopy
#

How do I get gradle

hallow crane
#

it's free

old wyvern
#

install gradle, use gradle init

vast canopy
#

use where? what?

old wyvern
#

Or just use IJ to generate your project with it

old wyvern
cinder flare
prisma wave
#

We do a little trolling

vast canopy
#

Ok I'd be willing to switch to IJ except every time I do the stupid "run" button always errors

cinder flare
#

You're not supposed to use the run button

prisma wave
#

You problem

cinder flare
#

you're supposed to click shadowJar ๐Ÿ˜Œ

obtuse gale
#

it's literally right there you fucking twat

hallow crane
#

emilyy, please

vast canopy
#

shadowJar? huh?

obtuse gale
#

wdym "unable to resolve"

cinder flare
obtuse gale
#

fendgsjofnajsdfds

cinder flare
#

probably the wrong one or something

hallow crane
#

disable data source warnings

#

it's bullshit

cinder flare
#

or your db user doesn't have access

#

though yeah I agree

hallow crane
#

also those errors are importatnt

#

they tell you what's....wrong

cinder flare
#

someone should really write a whole paragraph about what a build tool is

hallow crane
#

and why its not compilable

old wyvern
# vast canopy shadowJar? huh?

Gradle allows plugins that simplify your build, one example is Shadow which provides a task called shadowJar, this copies the classes in your libraries into your jar

obtuse gale
hallow crane
hallow crane
vast canopy
hallow crane
#

๐Ÿ‘

cinder flare
#

ah he's a video learner

obtuse gale
#

reading official docs: unhelpful

#

got it

cinder flare
#

hopefully his lawyer classes are videos and not reading-related

old wyvern
#

Gradle has a official tutorial series

vast canopy
#

docs is just a wall of text written in a way that only devs understand

hallow crane
#

I hate docs too

vast canopy
hallow crane
#

but sometimes I gotta take a shot and read them

humble silo
cinder flare
vast canopy
#

Yes but I study law

#

I don't study comp sci

cinder flare
#

yes but you're trying to program

vast canopy
#

I want to program a simple thing

cinder flare
#

and reading about how things work is part of programming

#

a gui with heads is actually quite complicated

humble silo
vast canopy
old wyvern
#

Whether you use a mono-repository or multi-repository approach for your sources, managing dependencies is central to productivity by reusing artifacts and ensuring a quality build. A single incorrect dependency can break existing code, introduce a vulnerability or simply prevent your project from building.

This class will introduce dependency m...

โ–ถ Play video
cinder flare
hallow crane
#

"Part 1: fundamentals" makes me think it's 20 minutes long

vast canopy
humble silo
#

smh

old wyvern
#

xD

cinder flare
hallow crane
#

its an hour and a half wet

#

fwtf

#

wtf

humble silo
#

NOW

vast canopy
humble silo
#

sorry

hallow crane
#

Lol

old wyvern
hallow crane
#

aint nobody got time for htatklsafsd

cinder flare
#

You come here and refuse to learn or change anything until we batter you for half an hour

obtuse gale
#

what is going on anymore

old wyvern
#

A dev-lawyer war

hallow crane
#

I called someone fat at school and they told they're friends and now I lost my date for prom

old wyvern
#

Nice

hallow crane
#

the second part is made up tho

cinder flare
#

This guy's like 15 and he refuses to learn the basics of programming to... get this... program something

cinder flare
hallow crane
#

prom was cancelled

old wyvern
#

"Hi, I want to own Amazon. No, No, I dont want to work, I will lay in that bed, bring me wealth peasents!"

hallow crane
#

I never lost my date

cinder flare
hallow crane
#

Aywe

#

aue

#

aye

cinder flare
humble silo
old wyvern
#

What if star already owns a 40% share at google!!!

cinder flare
#

all without ever even touching gradle

#

a true genius

obtuse gale
#

lol

cinder flare
#

just the power of pure java

#

no libraries

old wyvern
#

Absolutely, a gradle-less billionaire

#

Suppourted by the true super-power of Java, Boilerplate

hallow crane
#

I am prepared to give a tutorial in a discord call for gradle

static zealot
static zealot
#

xD

cinder flare
#

i wanted to witness the downfall of this guy

old wyvern
#

As the name suggests, Star is high ๐Ÿ˜„

static zealot
#

what guy?

cinder flare
#

the IB guy

#

scroll up

old wyvern
#

Did he leave?

flint cipher
#

who's the IB guy

cinder flare
#

not yet

old wyvern
#

oh nope

old wyvern
#

The judge of the UN

flint cipher
#

oof

old wyvern
#

Our high priest

cinder flare
#

just search this channel for eclipse and it's the green name guy

static zealot
#

607059550373281792 ?

old wyvern
#

Sir Gargoye

#

or whatever that was

cinder flare
#

607059550373281792

#

yes

static zealot
#

alr

#

good night

hallow crane
#

what is IB

cinder flare
#

international baccalauerate or something

#

it's like AP but fancier and just as lame

hallow crane
#

oh

#

i took ap cs a

cinder flare
#

gives people a superiority complex tho

flint cipher
#

I took IB. Was hell

#

thank god it's over

hallow crane
#

it was a waste of time for m

#

me

cinder flare
#

yeah

old wyvern
#

Whats AP?

hallow crane
#

because at that point i was already writing java shit for stuff

flint cipher
cinder flare
hallow crane
#

"Advanced Placement"

cinder flare
#

basically college classes

#

in high school

old wyvern
#

Ah

hallow crane
#

its pretty dumb shit

cinder flare
#

yeah it's pretty bad

flint cipher
#

It helped in Uni

#

buttttt wasn't worth it

cinder flare
#

I got more help in uni from my ACT score than I got from AP classes lmao

hallow crane
#

It costs $95.00 to take the test

#

what was your act

cinder flare
#

33

hallow crane
#

if you dont mind me

#

Ah

#

damn

cinder flare
#

36 reading/english, 30 science, 31 math

hallow crane
#

I got a 34 english

flint cipher
#

What u studying @cinder flare

cinder flare
#

Computer Science

hallow crane
#

composite 29

cinder flare
hallow crane
#

but its not good enough

#

considering im a white male

cinder flare
#

oh? where did you want to go

hallow crane
#

MIT

#

not even close

cinder flare
#

oh well yeah

flint cipher
hallow crane
#

I should lie on my college apps saying I am a black, hispanic, asian, transgender born woman

cinder flare
old wyvern
#

xD

flint cipher
#

I see

hallow crane
#

it's not illegal

flint cipher
#

Same as me ๐Ÿ‘€

cinder flare
#

I definitely shot (ironically) very moderately with my college

hallow crane
#

I am going to try and get a job at google without a degree and if it doens't work im going to get a bachelors

cinder flare
#

went for a nice school in my state with a pretty okay CS program

old wyvern
#

You from utah as well star?

hallow crane
#

they dont require them anymore

cinder flare
old wyvern
#

I thought you were just studying there

#

ah

cinder flare
#

nope

hallow crane
#

Ah utah

#

the land of i've never been there

cinder flare
#

trust me, being not mormon in utah is pretty rough

hallow crane
#

Lmao

cinder flare
#

the mountains are very nice tho

old wyvern
#

Mormon?

cinder flare
#

I wish I liked nature more

cinder flare
old wyvern
#

oh

cinder flare
#

pretty hard to find not-mormon girls lmao

#

but whatevs

#

i'll take the full-ride scholarship

#

and just be lonely ๐Ÿฅฒ

old wyvern
#

Is that just another branch of Christianity or completely separate?

cinder flare
#

kinda yeah

#

christianity but everyone hated them so they fled west and made their own state

old wyvern
#

ahh

cinder flare
#

now they're just like ultra christians

old wyvern
#

lol

#

in-bred?

cinder flare
#

nah not really

#

they were polygamists for a bit tho

old wyvern
#

ah, theres a branch that does only that right?

cinder flare
#

uh, not that I'm aware of?

old wyvern
#

I forgot what it was called

cinder flare
#

maybe you're thinking of alabama?

old wyvern
#

No no, I dont mean family members

#

I mean the same community

cinder flare
#

oh I mean kinda

#

it's not like enforced

#

just not very easy

old wyvern
#

They dont accept anyone from another community, if you marry someone from an external community they kick you out

cinder flare
#

ya it's not really like that

#

I mean I've lived in utah nearly my whole life so I kinda act like a mormon

old wyvern
#

i swear theres one that does that

cinder flare
#

the amish?

old wyvern
#

Starts with a b I think

ocean quartz
#

Dude mormons are fucking crazy

old wyvern
#

anyway, gn ๐Ÿ‘‹

ocean quartz
#

In my city there were 2 momon dudes around 16/17yo, that would go around and try converting people
They were americans, in Portugal, with 0 Portuguese, alone in the country with just money from their parents

cinder flare
#

yes those are called missionaries

#

it's kind of a thing

old wyvern
#

Missionaries of Haskell ๐Ÿ˜Œ

cinder flare
#

they take advantage of poor people and convert them

ocean quartz
#

I mean other branches have missionaries too, but they are too young

cinder flare
#

ya usually missions are from like 18-20

#

like after you graduate high school

#

kinda sucks to lose all your friends for two years ๐Ÿ˜ฆ

ocean quartz
#

The Christianity branch i was "born into" and grew out of (evangelics, like a branch of protestants, a branch of a branch, it's like spigot at this point), they tend to send missionaries to middle eastern countries, which is very ๐Ÿ˜ฌ

cinder flare
#

oh yeah mormons send them to mexico and africa a lot

#

one of my friends went to bulgaria?

#

something like that

ocean quartz
#

I praise them for their courage tbh

cinder flare
#

yeahhhh

#

kinda rough

#

i do wish their views on modern issues were a little more... progressive

#

let's just say, there's a reason why Utah has the highest rate of teenage pregnancies in the united states

ocean quartz
#

Yikes

#

But hey "abstinence is the best contraceptive" ๐Ÿฅฒ

tranquil crane
obtuse gale
#

those are some really large comments

#

really large comments

tranquil crane
#

apparently 1.17 loads entities async which has effectively destroyed my plugin that relies on getting entities on chunk loads

cinder flare
#

i mean it sounds good for server performance tho

ocean quartz
#

๐Ÿ˜ข

obtuse gale
#

oh yeah i've heard of a lot of people "complaining" about that

obtuse gale
tranquil crane
#

there's currently no way to get entities as they load

#

which is uh, terrible

obtuse gale
#

they are saved in a separate file and loaded in another thread

cinder flare
#

just wait until they remove that .then from chunkloading

#

oh baby

obtuse gale
#

lmao

tranquil crane
#

I'm kind of curious what the solution was to the issue in that PR

#

it's a bit annoying you can't even view the contents without signing that CLA

frail glade
#

It's because the perms are all the same.

obtuse gale
#

ideally we would've gotten a new event though, idk EntityLoadEvent, WorldLoadEntityEvent, whatever

#

It was kinda needed ever since we needed to get entities from the chunkloadevent for new entities from world gen

#

because that was a stupid workaround

#

that now does not work ๐Ÿคก

tranquil crane
#

an event like that would be wonderful

obtuse gale
#

the diff for the bukkit PR though ๐Ÿ™

#

oh and it adds some pretty nice methods for Chunk and World regarding all this

#

since now they are loaded async, you can call a loadEntitiesAsync method with a callback and all that

tranquil crane
#

oh bless

#

now why hasn't it been merged thonking

obtuse gale
#

:md5:

obtuse gale
#

does anyone know a pvpstats plugin with custom level rewards

half harness
#

wrong channel

steel heart
#

People must think
"I need plugin help then I am dev thus dev-general"

tranquil crane
#

well they also posted it in a couple other channels

obtuse gale
#

Good thing my line got cut and I had to get a new one like literally yesterday :^)

tranquil crane
#

did you get called or something

obtuse gale
#

Nah

half harness
#

improvements

vast canopy
#

Should I use Maven or Gradle?

#

Also what's the difference between GroupID and ArtifactID?

half harness
#

gradle

#

gradle plz

vast canopy
#

Good to know

obtuse gale
#

Lmao

half harness
obtuse gale
#

io*.github, com.github is deprecated and sonatype does not accept it anymore

#

But ye :>

humble silo
half harness
#

๐Ÿ˜ณ

#

just a simple game

humble silo
#

In unity or smth?

#

unity*

#

lol

half harness
#

kotlin

#

& tornadofx

humble silo
#

oh wow havent heard of that at all lol

half harness
#

didn't mean to be anything like that, so i didn't use a game engine or anything

#

oh

#

lol

#

its just a circle running away from another circle

#

with some coins to collect to get new skins

#

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

humble silo
#

lol that sounds pretty cool, so you are doing all the hit detection and stuff on your own?

half harness
#

mhm, I'm looking to make it multiplayer but since there are diff monitor sizes and stuff I'll have to make a map.. but I haven't figured out how to detect the walls and stuff yet

#

and for hit detection i just measure the distance

humble silo
#

Huh cool, I was also looking for a library like tornadofx so i might try it out!