#dev-general

1 messages · Page 497 of 1

quiet depot
#

no

pale shell
#

yes

#

ok ty

#

guys we're collabing with HC piggy said yes

#

44 people on the subreddit ??

onyx loom
#

haskell popular

pale shell
#

it's free to join the subreddit btw guys

hot hull
#

Since when is concrete 1.12 lol?

prisma wave
#

¯_(ツ)_/¯

boreal needle
#

broc in helpchat?

foggy axle
#

hi mate 😀

#

also I’m a guy

boreal needle
#

most ambitious crossover ever

foggy axle
#

I think I was in here a long time ago

jovial warren
#

😳

#

Hello

#

Right, maybe that was a bit too far

#

All I want to know is why you don't seem to like me

foggy axle
#

I don’t dislike you, I dislike yatopia

jovial warren
#

Didn't really seem like that tbh

foggy axle
#

I love everyone

jovial warren
#

You also complain when I share my project, even when I am justified to do so

#

I don't want to be hostile towards people, I like to get along with others, I just didn't get the best of impressions from you, and sometimes it felt like you were out there to get at me

old wyvern
#

Did someone post HelpChat's invite link in the paper discord or something?

jovial warren
#

Yeah I was gonna ask that

old wyvern
#

How did everyone end up joining together?

#

xD

quiet depot
#

glare invited kashike for papi 3

#

ig other people followed

old wyvern
#

ahh

foggy axle
#

No someone told me bardy was talking shit about me for no reason lol

old wyvern
#

lol

boreal needle
#

lmao

jovial warren
#

Lol

#

Sorry

foggy axle
#

just ping me in paper next time xx

#

ok good luck with the placeholders

jovial warren
#

Alright

sweet cipher
#

I agree broccoli is a lie

jovial warren
#

Kinda feel bad now lol

boreal needle
#

i mean

#

you said it

#

what did you expect

jovial warren
#

True

old wyvern
#

lol

jovial warren
#

I didn't expect to be wrong lucy

boreal needle
#

¯\_(ツ)_/¯

#

excuses arent solutions

jovial warren
#

True

prisma wave
#

True 😌

#

true 🤢

old wyvern
boreal needle
#

what are you

#

a python dev?

old wyvern
#

Functions > literals

prisma wave
#

well you see

old wyvern
prisma wave
#

in REAL languages booleans are just algebraic data types

boreal needle
#

is c not a real language then

prisma wave
#

absolutely not

quiet depot
#

c is not real

#

c is imaginary

boreal needle
#

you're not real

quiet depot
#

no they had me tested for that

#

i’m real

boreal needle
#

you said it yourself

old wyvern
#

√(-c)

boreal needle
#

plot twist

#

piggy is an ai

prisma wave
#

incredible

#

why would my loggers be in debug mode even though i dont have it enabled

#

i dont set the log level anywhere by defualt

#

confusing

forest pecan
#

Sorry, that was an oversimplified statement lol. I didn’t actually legitimately meant that. I was too lazy to write down others 😰

jovial warren
#

Lol

#

Pulse be out here destroying people

half harness
#

lmao

#

rip kashike

boreal needle
#

the guy does a load of really cool stuff and you say this ;_;

jovial warren
#

Lol

obtuse gale
#

Tf is half the paper team doing in here 😂 that was surprising

static zealot
#

they're here for me of course ...

#

omg. I just found a log from my server from like 2 years ago when I tried using skript

obtuse gale
#

Ew

static zealot
#

oh I remember

#

I Was looking for anti xray options (not knowing paper has one) and I tried a skript and that skript turned out to just crash servers. I think it had a back door too

#

xD

onyx loom
#

how disappointing

#

can we ban this man for the unforgivable sin

static zealot
#

thonk no you can't.

#

I am actually considering switching every plugin on my server to skripts.

#

way more flexible, way more easy to use, way faster so basically better in any way

obtuse gale
#

Can someone ban this guy already?

onyx loom
#

😱

half harness
#

if only netbeans had skript support 😭 😭 😭

jovial warren
#

Using Skript is not a sin, there are at least two things I can think of that are sinful:

  • Enjoying/endorsing Skript
  • Thinking that being able to use Skript makes you a pro developers
onyx loom
#

no

#

using skript is a sin

hot hull
#

You should be shot

jovial warren
#

I've used Skript before to see just how bad these scripts really are

steel heart
#

Skripting isn’t too bad

#

It gives me joy

half harness
#

making worldedit in skript is bad

sturdy swan
#

Skript is amazing, I mean look at some of the amazing plugins people have made in skript

steel heart
#

Maybe one day I will make Skript in Skript

old wyvern
#

Lmao, I remember that dude

half harness
#

🥶

old wyvern
#

he ended up banning me from his discord

#

xD

static zealot
#

amazing plugins xD

#

didn't we raid this guy's discord server?

#

oh no that was BetterBubble anti cheat i think

old wyvern
#

No, we did

#

Im pretty sure we did

half harness
#

hi piggy

steel heart
#

Piggy be lurkin around the corner

static zealot
#

it was this one Yugi

#

maybe you guys did another one

#

when I wasn't here

#

but I know for sure we did betterbubble

old wyvern
#

ah, not sure

#

I dont remember the bubble one

static zealot
sturdy swan
#

Im bored so I applied for a rank in #role-request is it supposed to delete my message? does it go off to some seperate channel or smthn?

static zealot
#
on any movement:
    if bruh(player):
        stop```
sturdy swan
#

kk cool

static zealot
#

you'll have to wait as well lmao. Been waiting for weeks now

old wyvern
#

Piggy/Lemmo will review at some point

half harness
#

/Matt

old wyvern
#

matt reviews too?

static zealot
#

# --- ( PREMIUM ) ---

# IF YOU LEAK THE CODE YOU WILL BE BANNED!
# NO REFUNDS!

# DO NOT MESS WITH THE CONFIGS!

# --- ( PREMIUM ) ---```
half harness
#

for kotlin iirc

old wyvern
#

I thought it was just piggy and lemm

#

ah

steel heart
#

Peaches maybe you’ll be lucky gettin piggy to review rn

static zealot
old wyvern
#

oh ok

static zealot
#

no.

#

there is no premiuma

#

as you can see

#

it starts there

half harness
static zealot
#

and it ends there xD

old wyvern
#

Banned from what tho? xD

static zealot
#

idk lmao

old wyvern
#

"If you leak the code"

#

Provides plain text script file

static zealot
#

that's literally the .sk file you download

#

lmao

old wyvern
#

xD

static zealot
#

and its free

obtuse gale
#

Lmao

static zealot
#

but that bruh() method

#

is just amazing

#

xD

#

if bruh

old wyvern
#

What is it?

static zealot
#

stop

old wyvern
#

wha xD

static zealot
#

this is the method

#

if you wanna read it xD

steel heart
#

Can a programming language be both interpreted and compiled

old wyvern
#

Kind of

quiet depot
#

yes

static zealot
#

he is listerally not considering players with elytra's as cheaters

#

if I read this correctly

old wyvern
#

1 case would be a separate interpretter/compiler. Other case would be an interpretter with a JIT

static zealot
#

so no, flying, no riding, no elytra amazing

distant sun
#

skript and anticheat in the same sentence, bruh

static zealot
#

like it literally doesn't do the checks for you if you're flying, riding, or have an elytra

#

on

distant sun
#

I swear imma put a skript check on all my plugins and disable them if skript is installed

static zealot
#

don't even need to be flying lmao

steel heart
#

Hmm Yugi okay nice cuz my web programming teacher told me it wasn’t possible

old wyvern
steel heart
#

Yeah

prisma wave
#

anyone know a good way of doing "dynamic data" in a sql table?

#

let me elaborate a bit

#

so i want to log various events with a discord bot, i currently have 3 types of event ```kt
enum class EventType {
USER_LEAVE,
USER_JOIN,
USER_MESSAGE
}

the event log table has an action (eventtype), timestamp, and data (usually an id) column
#

so for user_leave, the data is the user's id

#

user_message has the channel id

#

this works fine, but it only works if i want to store a single id related to the action

#

i wanna add some more event types that require some more detailed data storage (for example logging when someone modifies a bot setting, i need to log who did it, the setting that was changed, etc)

old wyvern
#

Possibly use a separate table for the events

prisma wave
#

how could i structure that?

#

the table looks like this rn

quiet depot
#

yeah just use different tables

prisma wave
#

like a different table for each event?

quiet depot
#

yes

old wyvern
#

mhm

#

user_msg -> (channel_id, timestamp)
user_join -> (user_id, timestamp)
user_leave -> (user_id, timestamp)

prisma wave
#

huh

#

okay

#

makes sense

old wyvern
#

I think you should be able to join those if you even wanted them together

heady birch
#

event (id, event_type_id,...)
event_type(event_type_id, name) ?

quiet depot
#

what is ... niall

heady birch
#

other fields he wants

#

rather than event type being enum cant it just be another table

quiet depot
#

but different events need different fields

#

what

#

event_type is hard coded

distant sun
#

he's niall

quiet depot
#

it doesn't need to be stored in a database

heady birch
#

true

quiet depot
#

a field for event type is all that's needed to refer to the hard coded bit

distant sun
#

Niall have you deleted your discord server?

heady birch
#

yeah ages ago

distant sun
#

welp

sturdy swan
#

im bored

#

hows everyone doing

quiet depot
#

yes

#

i'm learning new sponge 8 api

old wyvern
#

coc?

heady birch
#

i wanna build a weather station

quiet depot
#

sounds like a gigantic task

sturdy swan
#

why would you build your own weather station tho....

heady birch
#

no idea

#

especially when nowadays we can just go "hey alexa what is the weather"

static zealot
#

Hmm so why does Konsole (kde neon terminal) keep asking me every like 1-2 days for my github name and token (every time I try to clone or something like that of course). Is there no way to store them and just read them from there every time?

quiet depot
#

yes

#

there is a way to store them

#

I've got no idea how to do it though, gitkraken sets git up for me

static zealot
#

hmm I Found another post that looks promising on stack over flow. let's see if this works

#

ah it would save the credentials in plaintext

old wyvern
#

oh wait

#

thats not it

static zealot
#

its same command

#

just store instead of cache

old wyvern
#

ah

static zealot
#

but it will store them in plain text

#

well I Mean they're already saved in plain text

#

so it works for me :)))

old wyvern
#

lol

distant sun
#

on spigot is there any way to use a client side mod to create something like a staff chat?

#

the client sends the message, it gets broadcasted to all staff members and those that have the mod installed will see it different / on a different area of their screen

old wyvern
#

Yes

#

Make a custom packet

#

add some extra handshake to let the server know that the user is using your mod

#

send to staff who are using mod

distant sun
old wyvern
#

Havent used fabric, for spigot, theres a nms packet class for custom packets I think

ocean quartz
#

Fabric is very nice

steel heart
#

Ye pretty sure fabric has some api wrapper for that

distant sun
#

if the packet is done with fabric, how will the server know about its existence?

old wyvern
#

You will have the same packet implemented on the server as well

steel heart
#

Intercept the packet

old wyvern
#

theres a nms packet class for custom packets I think

#

or yea, you can intercept the netty pipeline

obtuse gale
steel heart
#

Thought you always had to inject into netty stuff when intercepting packets 😮

old wyvern
#

Oh plugin messaging uses that?

obtuse gale
#

Oh wait

old wyvern
#

I only saw the actual nms class

obtuse gale
#

No no I read that wrong

old wyvern
#

oh ok

distant sun
#

uhh, nms

obtuse gale
#

But you can use plugin messaging too lol

ocean quartz
#

To communicate with client?

obtuse gale
#

Yeah

ocean quartz
#

Interesting

prisma wave
#

Password authentication bad

old wyvern
#

plugin messaging exists for communication with the client I think

#

using it for bungee is just a side effect

distant sun
#

interesting

static zealot
# prisma wave Password authentication bad

its not password. its the token they generated for me or whatever. I also have no clue how to set ssh keys for that but I'll look into it. also I'll have to see where it saved the token bcz I've already enabled it xD

prisma wave
#

Token Auth bad too

#

Just tell github your public key and you can clone, push etc without needing to configure any other details

onyx loom
#

conclusion: ssh good?

prisma wave
#

Indubitably

onyx loom
#

fancy word

static zealot
#

oh is that in github settings?

#

Ic

obtuse gale
#

Yes

static zealot
#

well now all I Need to do is find where the hell it stored my token and remove it

#

lmao

obtuse gale
#

Okay

static zealot
#

hmm so I've set the ssh key up in github settings but whenever I try to clone using git clone it asks for my password again

oak coyote
#

L

#

Imagine not having it save your details

static zealot
#

I assume I have to do something locally as well?

boreal needle
#

change the remote to ssh from http

static zealot
#

ohhh

#

IC

#

that makes a lot of sense xD

prisma wave
#

Yeah

boreal needle
static zealot
#

worked. ty ty ty

half harness
#

that's not a showcase :p

boreal needle
half harness
#

wdym

#

tacit cave
#

hello

#

i wanna ask something

#

that's simple

#

does line actually impact your performance?

#

like

forest pecan
#

?

quiet depot
#

line count do you mean?

tacit cave
#

like this

forest pecan
#

Uh no

quiet depot
#

no

tacit cave
#

hold up

forest pecan
#

Just no

#

lmao

tacit cave
forest pecan
#

you can type a bunch of comments

boreal needle
#

what the lines do is what impacts performance

#

not whether they exist or not

forest pecan
#

you know, you can crash a server in one line of code

#

like one plugin

#

one line of code

#

it doesnt matter

quiet depot
#

your whole system could be wiped in one line of code

forest pecan
#

Yep

tacit cave
#

my friend told me to cut off lines

forest pecan
#

???/

#

ur friend is stoopid

#

lmao

quiet depot
#

let's be respectful pulse

oak coyote
#

We can’t really say anything without seeing it

forest pecan
boreal needle
#

reducing lines sometimes makes sense

old wyvern
oak coyote
#

He may be right but for unexplained reasons

boreal needle
#

if your code is repeated or inefficient then do it

forest pecan
#

true

ocean quartz
#

Reducing unnecessary lines
But lines in general means nothing

forest pecan
#

well yea ig fixing dry code does trim off lines

oak coyote
#

It is still good

old wyvern
#

Simplifying code is always better, but not for performance, but rather for readability

tacit cave
oak coyote
#

Just might not help performance

tacit cave
#

i mean

#

it just ugly

old wyvern
tacit cave
oak coyote
#

Then that’s likely the reason

old wyvern
#

Send code

#

=paste

compact perchBOT
#
HelpChat Paste

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

tacit cave
#
       if (response.statusCode === 204) return true;
        else return false;```
old wyvern
#

before and after

tacit cave
#
        if (response.statusCode === 204) 
            return true;
        else 
            return false;```
boreal needle
#

js?

tacit cave
#

just a simple code

boreal needle
#

they are equivalent

tacit cave
oak coyote
#

You have to realise he may have lied to make you write better

tacit cave
#

yeah a javascript

boreal needle
#

just USE BRACES REEEEE

old wyvern
#

That else is unnecessary as well

#

Reduce branching

forest pecan
#

the whole conditional is unnecessary

prisma wave
#

return response.statusCode === 204 😌

forest pecan
#

lmao

boreal needle
#

return response.statusCode === 204;

old wyvern
forest pecan
boreal needle
#

shut

tacit cave
#

it's a different function

prisma wave
#

Imagine having a return statement

oak coyote
boreal needle
#

im on mobile

old wyvern
prisma wave
#

Disgusting

tacit cave
#
export default async function(request: Got, internalID: number): Promise<boolean> {
    try {
        const response = await request.post("/servers/" + internalID + "/reinstall");
        if (response.statusCode === 204) 
            return true;
        else 
            return false;
        // IT DOESN'T IMPACT THE PERFORMANCE!!!, MORE BEAUTY!!
    } catch (e) {
        throw new CheckError(e);
    }
}```
old wyvern
#
a :-
  b.

on top

prisma wave
#

😌

forest pecan
#

:--

tacit cave
#

im still learning typescript

#

😭

#

and js

oak coyote
#

@tacit cave he is right to make you reduce it, less for performance, but he likely stated that to make you do it

forest pecan
#

i kinda hate TS

#

lol

#

anyways

boreal needle
#

ts is alright

#

its just better js

oak coyote
#

As if I tell you this will improve performance you are more likely to do it than if I don’t

prisma wave
#

You know what else is Js but better

boreal needle
#

wasm?

forest pecan
#

not haskell

old wyvern
#

Elm

#

!!

prisma wave
#

Elm 😌

forest pecan
#

are you going to convert people to Elm now?

old wyvern
#

Well not completely, Elm is only for the web sadly

#

as in for web pages

#

too pure 😔

tacit cave
#

im learning ts since like 5 days ago

boreal needle
#

it can sometimes make your code more readable

oak coyote
#

Yes so he is trying to help you

tacit cave
#

well he's experienced for 1 year

old wyvern
#

What was your old snippet?

oak coyote
#

He is likely stating for “performance” reasons so you actually do it

old wyvern
#

The one before you applied his suggested changes

quiet depot
#

so now that you know the truth

tacit cave
#

i wanted to split the line to make it more explicit

quiet depot
#

are you still going to do it?

old wyvern
#

split the line?

oak coyote
#

If else

oak coyote
old wyvern
#

Im not sure I understand what hes refferring to still? like inline if-else?

oak coyote
#

Some people like to keep it readable to them

#

As they don’t realise they mean the same thing

tacit cave
old wyvern
#

No Im asking what you meant by that abhi

oak coyote
#

😂

old wyvern
#

What?

oak coyote
old wyvern
#

Ah, so you had that, and your friend asked you to just return response.statusCode === 204, ok

tacit cave
#

i mean a wrapper

#

it's checking if the server is sucessfuly suspended or not

#

that's why the value is boolean

oak coyote
#

He doesn’t get what we are saying 🤦‍♂️

tacit cave
#

sorry for being stupid smh

old wyvern
#

response.statusCode === 204 is the same value as what you're explicitly returning with the if-else

oak coyote
#

You know the result of response.statusCode === 204 is a boolean

#

^ so why are you creating the boolean twice essentially is the point

hot hull
#

just return that eee

tacit cave
#

i forgot about dat

#

gosh dang it

oak coyote
#

Hopefully you get what we are trying to say, trust me I know how annoying devs can be at explaining as they use a lot of assumptions

tacit cave
#

i didn't realize im so sorry xd

oak coyote
#

It’s fine

#

We all make mistakes dw just ask these lot about their first project

#

For 5 days this is more advanced than I expected

#

As API’s can be very odd sometimes

tacit cave
#

i used to be code java, but about 3 months i dont dev anymore

#

and trying to learn typescript

oak coyote
#

Ahh so you already have the most important part that is the problem solving

#

I believe most people hear know java and for a couple years now

#

I’ve coded for about 2 years now in java and others are similar or more

tacit cave
#

im not really good at english too, sometimes im kinda confused from someone who talking to m

tacit cave
oak coyote
#

You seem to be doing fine you understood me so that’s all you need

tacit cave
oak coyote
#

Just remember to know what you are returning with a method as once it becomes a boolean you could do an if else statement or just return that if that’s what you need

#

And gl with your project seems you are being taught by someone good enough to help you

#

So I’d suggest trusting them and come here if you want to get a second opinion / a different explanation

distant sun
#

What would be close to mysql (as in features) or other databases but run on a local file? H2db thing?

tacit cave
#

i just wondered

onyx loom
#

probably gaby, idk

distant sun
#

Smh Kali

onyx loom
#

is h2 flatfile tho?

#

so maybe not if so

quiet depot
#

yes

distant sun
#

Yes to his question or mine?

hot hull
#

Why would you want that in the first place is the real question

quiet depot
#

I think h2 is considered flatfile

distant sun
#

🤷 will probably use mysql

hot hull
#

maria

old wyvern
#

h2 allows both

#

server and flatfile

quiet depot
#

what type of data r u storing

hot hull
#

Thank you gradle.

distant sun
quiet depot
#

ah okie

distant sun
#

Is maria installed, pig?

quiet depot
#

yes

#

so is redis if you need it

distant sun
#

:O

#

I heard redis is nice

steel heart
#

Redis is pog

distant sun
static zealot
#

😮

obtuse gale
#

🥳

static zealot
#

is it not just setting the user name and email in git config?

obtuse gale
#

no

obtuse gale
#

you need to sign the commit with a pgp key

static zealot
#

well this is just bullshit

#

when I try to git push

#

smh

jovial warren
#

Imagine not using SSH keys smh

obtuse gale
#

lol blitz did you change the remote uri?

static zealot
#

well I Did set it up

#

...

obtuse gale
#

git remote -v

distant sun
jovial warren
#

Yeah change the remote URI

static zealot
#

no it is still https

obtuse gale
#

...

#

breh

static zealot
#

well how the hell am I supposed to know that?

jovial warren
obtuse gale
#

you were told that

#

earlier

distant sun
#

btw the password is actually a token iirc

static zealot
#

no? that was for when I git clone LINK

#

yes it is

quiet depot
#

blitz

#

why don't you just use gitkraken

#

would make this 100x easier

obtuse gale
#

start from there

static zealot
#

oh well I Missread that then

quiet depot
#

there's a reason a lot of us use gitkraken

#

it's fucking good

static zealot
#

yeah if you have the fucking paid version ...

obtuse gale
#

Can someone help me by telling me what’s wrong with this

#

[Service] Investors

[Request] Looking for people who help me pay for my server. You get the percentage of donations to the server based off of how much you help pay.

[Budget] 30-120$

ocean quartz
#

I have the free version and I have no issues with it

static zealot
static zealot
ocean quartz
#

I don't use private repos

static zealot
#

well I do

obtuse gale
#

Thanks @static zealot

onyx loom
#

just make them public blitz 4Head

static zealot
#

so you can see steal my amazing code? No way

#

xd

ocean quartz
#

1 - Make it public
2 - Commit
3 - Make it private again
4 - ???
5 - Profit

static zealot
#

lmao

#

that's a lot of steps

obtuse gale
#

lol

jovial warren
obtuse gale
#

in.. every list?

#

yeah what's the origin lol

quiet depot
old wyvern
#

South Park Underpants Gnomes' Plan wut xD

quiet depot
#

16th of december, 1998

onyx loom
#

KNOW your PROFIT

quiet depot
#

very old meme

obtuse gale
#

lol

old wyvern
static zealot
#

pretty sure it ain't

gusty glen
#

@obtuse gale how about the benchs?

obtuse gale
#

I’m making a plugin called CasinosPlus with casino games such as Poker, BlackJack, Slots, Roulette, and war?

#

Send me some other game ideas please

#

Also I’m making a plugin called MiniGamesPlus (10$) it has spleef, splegg, custom events, king of the hill, tnt run, build wars, kit pvp, and other minigames any ideas of what kind of features it should have

#

Also I feel like those are basic names I want something original any ideas?

pastel imp
#

JSON vs TOML vs YAML vs SQL(???) Who wins?

winter iron
#

json + sql = jsql

pastel imp
#

Wth is that lul

winter iron
#

idk

#

json and sql win

pastel imp
#

Mind explaining why?

winter iron
#

cause i like them

#

json is easy to work with over web

#

sql is good to store data in tables

#

nice

pastel imp
#

Ok going to be more precise

#

I meant using them as storage in a plugin

#

(Mc)

winter iron
#

i would say sql

#

if you plan on storing alot of data

#

and its relational

pastel imp
#

Lets say a homes plugin?

#

Some use per user yaml files for ex.

winter iron
#

no

#

what data are you storing

pastel imp
#

As said, lets take a homes plugin as an example

obtuse gale
pastel imp
#

I will store name, icon, location (with yaw and pitch) and thats all

winter iron
#

whats icon

pastel imp
#

The item showcasing the home in a gui

winter iron
#

use a database

#

sql

#

potentially having 100's of yaml files is the worst thing ive heard of

#

even tho i once did it and it was aids af

pastel imp
#

Some plugins do it

winter iron
#

ik, its just a bad idea imo

pastel imp
#

And seems like no one ever complained lol

winter iron
#

I mean people that use the plugin probs dont care

#

since they have no real reason to touch the data anyways

#

just from a performance standpoint to i feel like a database would be better

pastel imp
#

I suppose in thoss cases I can give the server owner the choice

static zealot
#

or at least json files

#

instead of yaml

winter iron
#

^

#

json is nice for storing data

winter iron
#

yaml is more for configuration

obtuse gale
#

and with yaml there's a high chance if they touch the files manually they will fuck up the formatting

winter iron
#

same with json

pastel imp
#

By that I mean give server owners the choice in the config of using either yml, json or sql or whatever

obtuse gale
#

not really

static zealot
#

hmm I mean json is easier to udnerstand

#

than yaml

obtuse gale
#

json is more solid IMO

#

so to speak

#

it is not as flexible

#

and it doesn't depend on stupid indentation either

pastel imp
#

I will just give the owner the option to choose lmao

winter iron
#

default to sql

#

pls

pastel imp
#

I suppose

winter iron
#

giving the option for json and yml is just a waste of time anyways

#

Imo

lunar cypress
#

remember that you can parse json with a yaml parser

pastel imp
#

But I will have to do some research since I already saw some people complaining about sql

obtuse gale
#

yaml is a superset of json

#

any valid json is a valid yaml

pastel imp
#

Good to know

obtuse gale
#

I literally write my plugin.yml's in json first, then rename to .yml lmao

pastel imp
#

I will just give multiple choices and recommend one xd

obtuse gale
#

I seriously cannot stand yaml

#

it makES ME ANGRY

static zealot
winter iron
#

yaml is ez tho

static zealot
#

and yeah yaml can burn. I'm so tired of it

obtuse gale
#

GRRRR

pastel imp
#

I am planning on adding SQL, JSON and MySql (maybe yaml)

obtuse gale
#

GRRRRRR

static zealot
lunar cypress
#

SQL and MySql
doesn't make a whole lot of sense

winter iron
#

I did once

#

and i was baffled

gusty glen
#

@obtuse gale but srsly, what are the results?

pastel imp
lunar cypress
#

well yes

#

but

#

You need some sort of database implementation

winter iron
#

sql is the language, mysql is the engine that runs sql

lunar cypress
#

MySQL runs a flavour of sql, but yeah

pastel imp
#

When I say sql I mean sql flatfiles lul

lunar cypress
#

then you probably mean sqlite?

pastel imp
#

Yes. Mb

#

I suppose the history is different in that case

#

Lol

jovial warren
winter iron
#

and the "manager" is supposed to be "Head of Technology"

#

:/

static zealot
#

ffs. I saw this before and I didn't get it. Now I get it and its so fucking bad

onyx loom
#

hehe

pastel imp
#

so should SQLite still be my first choice?

static zealot
#

if you don't need corss server support then yeah most likely

winter iron
#

yeah sqlite nice

hot hull
#

What are we in 1999 ?

winter iron
#

you can also use H2

pastel imp
hot hull
#

Just use a database normally?

pastel imp
#

database = ?

hot hull
#

Doesn't matter if you don't need cross server support

winter iron
#

support both

#

if you want it to be plug n play then just use sqlite

obtuse gale
#

^

pastel imp
#

I mean if we take a homes plugin as an example, doesn't rlly need cross server support at all

winter iron
#

and if people want to use external databases

#

they can set it up

pastel imp
#

ye

#

so should I even add other options like JSON or YAML of fuck those?

hot hull
#

No

#

You shouldn't even bother with sqlite, it's 2021 for fucks sakes

onyx loom
#

frosty always with the strong opinions

pastel imp
#

telling me to use "a database normally" doesn't rlly help me that much

#

to understand what exactly you actually mean lmao

#

me smoll brain

hot hull
#

Well can't help you with that

winter iron
#

use sqlite

pastel imp
#

^^ done

winter iron
#

for ur application its fine

hot hull
#

No

winter iron
#

or H2

#

if u want

pastel imp
#

H2?

onyx loom
#

yaml 🤡

winter iron
#

just another local database type thing

pastel imp
hot hull
#

hocon

pastel imp
#

MongoDB? 🤡

winter iron
#

could use mongo

pastel imp
#

is mongo even something plug n play?

winter iron
#

idk

#

sqlite/H2

#

gogogo

#

get to work

hot hull
#

doubt you'll ever need mongo for a spigot plugin

pastel imp
#

;-;

pastel imp
obtuse gale
#

for a minecraft server

pastel imp
#

^^ true

hot hull
#

Well yea, "need", not "want"

pastel imp
#

have seen many

hot hull
#

Can't go wrong with overkill

obtuse gale
#

and there's nothing wrong with it either

quiet depot
#

if i implement docdex as a plugin

#

do i need mongo

hot hull
#

doubt

pastel imp
#

technically having many choices is good for the user, it gives them choice.

static zealot
#

sublime really likes messing with me. ffs

hot hull
#

They shouldn't be given a choice

pastel imp
#

(welp besides giving them the option to choose yaml, that's a scrap)

hot hull
#

Fuck the user, they're stupid anyways

winter iron
#

^

#

i can agree

hot hull
#

The more choice you give them, the more they're able to fuck up

winter iron
#

fuck em

pastel imp
winter iron
#

no

half harness
hot hull
#

No

winter iron
#

listen

hot hull
#

Customer is always stupid

#

Especially when it comes to plugin users

winter iron
#

if they dont need to touch the data then you dont need 14 different implementatons

half harness
#

server owners can't read 🥲

winter iron
#

just use sqlite or H2 and move on

pastel imp
#

ok bye.

winter iron
#

bye

pastel imp
#

actually no

winter iron
#

👋

pastel imp
#

I am not leaving

#

:-:

winter iron
#

ok i am

pastel imp
#

oof then bye

winter iron
#

got a forensics report to write

#

Lol

half harness
#

console: Required dependency: ProtocolLib
first line of plugin page in bold and red: Requires ProtocolLib
server owner: hEllPPppPP tHe pLuGin dOEsN'T wOrK aNd IdK wHy

ocean quartz
#

The average server owner has peanut brain

static zealot
#

Someone that uses SublimeText please help. I've went to
Preferences -> Settings and have set tab_size option to 2 as you can see here:

#

yet it still puts 4 spaces

#

and it actually doesn't translate to spaces

#

is just a tab

pastel imp
#

how does an SQLite file even look?

static zealot
#

tried restarting sublime, same thing

pastel imp
#

now I am curious

static zealot
#

the option is saved there tho

pastel imp
#

time to search

prisma wave
quiet depot
#

blitz

#

bottom right

pastel imp
#

wait fr?

quiet depot
#

tab size

#

click 2

pale shell
prisma wave
#

wat

pale shell
#

?

static zealot
quiet depot
#

lol

pale shell
#

a verif bot

pastel imp
#

?

#

verification bot?

pale shell
#

yes

slow quiver
half harness
pastel imp
pale shell
#

discord

#

i'm bored of asking people "are you using the free version or the premium version"

pastel imp
#

oh lmao

#

I saw some stuff about that

slow quiver
pastel imp
#

I think spigot even has an api for such things

pale shell
#

barry doesn't do the check right

old wyvern
#

I dont think spigot has an api for that, you'll still need to manually verify with a bot I think

pale shell
#

oh wait it does

old wyvern
#

Why not just use a role in that case?

pastel imp
#

welp I mean, an api to use with the bot

old wyvern
onyx loom
#

spiget

pastel imp
#

only thing I saw was you linking your spigot account with the bot

#

and it syncs the plugins you bought

pale shell
#

what can spiget get me

old wyvern
#

id assume not

onyx loom
#

its what barry uses

old wyvern
#

Barry doesnt auto check anymore right?

static zealot
#

yeah it doesn't have anything for buyer list then

#

it does auto check but the database is updated manually

pastel imp
#

wait since when do you exist @ruby crater?

static zealot
#

so you can check who they are on spigot but can't check their purchased resources

old wyvern
#

ah

#

Wait

#

but then how is that auto-check tho?

static zealot
#

well it checks if its your spigot account

#

that's what it auto checks

quiet depot
pastel imp
static zealot
#

there used to be the mvdw spigot buyercheck resource but I think its broken bcz of clodufare or something like that

pastel imp
lunar cypress
#

no this is bad

pastel imp
#

oof

#

suggestions?

lunar cypress
#

do you know any other relational database?

#

and by that I mean, know how to use them properly

pastel imp
#

uh

#

only yaml?

#

my knowledge isn't the best

lunar cypress
#

ok, so yaml isn't a relational database

pastel imp
#

ye welp

#

makes sense

lunar cypress
#

start here

#

this is for MySQL/MariaDB but it's almost the exact same for SQLite

#

because you use the JDBC API for both

pastel imp
#

being almost exact does help thx

#

is the mysql driver the same as the sqlite one?

lunar cypress
#

no, for sqlite you need the sqlite driver

pastel imp
#

ok so wherever they speak about mysql

#

I gotta replace it with sqlite

pastel imp
#

any way to implement it in gradle btw?

lunar cypress
#

yes

pastel imp
#

cant find anything in the github

lunar cypress
#

maven and gradle use the same repositories

pastel imp
#

oh so

#

org.xerial:sqlite-jdbc:3.34.0 from maven central?

#

correct?

old wyvern
#

yes

lunar cypress
#

right

pastel imp
#

and I suppose we are implementing it into our code

#

or not?

#

uh

#

wait

#

ok it is

#

You always want to use async requests on a production system what does it mean with "production system"?

lunar cypress
#

in the real world

#

another way to put it is you only want to use synchronous requests when testing your code/before releasing

#

This is not always 100% true, but for Spigot plugins it's a good rule

pastel imp
#

hmm okok

#

also... cringe, it was working before, not it's not? lmao

#

confusion

hot hull
#

clear cache

#

latest IJ cucked

pastel imp
#

where tf do I clear the cache .-.

#

never actually needed to clear it

#

like. ever.

lunar cypress
#

invalidate caches and restart

pastel imp
#

ty

#

ok uh..

#

still giving me the same error

#

after I cleared the cache

obtuse gale
#

IntelliJ bad

hot hull
#

Indeed

pastel imp
#

for godsake

#

I will legit delete it

#

.-.

#

1.16.5-R0.1-SNAPSHOT:20210515.064541-78) why is it even adding those numbers at the back wtf?

#

bruh ok using 1.16.4 seems to have worked lmao

ocean quartz
#

On the gradle panel right click the project and do this

pastel imp
#

ty worked out

old wyvern
stuck harbor
#

stonks

#

google be googling

obtuse gale
#

:o

pastel imp
#

uh me trying to figure out how exactly I will use SQLite to store homes be like: uhm... so.. I do this but then this is a duplicate? Maybe create a table for each user? uhm...

stuck harbor
#

why SQLite tho

#

im personally a mariadb pleb

#

i use firebase when im going full google tho

obtuse gale
#

Added new annotation: @UnknownNullability.

#

:o

half harness
#

🥶

old wyvern
#

new annotation for jb-annotations?

#

with kotlin support?

#

for like platform types ig?

obtuse gale
#

they released 21.0.0

#

Added new annotation: @UnknownNullability.
Proper JPMS module.
that's literally all the release notes say lol

old wyvern
#

ah

#

I wonder what the point of that annotation even is

#

Shouldnt something of UnknownNullability be Nullable instead?

#

as in, it could be null

obtuse gale
#

An element annotated with Nullable claims null value is perfectly valid to return (for methods), pass to (parameters) or hold in (local variables and fields)

By convention, this annotation applied only when the value should always be checked against null because the developer could do nothing to prevent null from happening

old wyvern
#

Ok so 1 says null is fine, and other that null may happen but isnt fine if it does

old wyvern
#

oh both of those quotes are from Nullable?

obtuse gale
#

yeah different paragraphs lol

#

For @UnknownNullability:

It's mainly useful at method return types to mark methods that may occasionally return null but in many cases, user knows that in this particular code path null is not possible, so producing a warning would be annoying.

old wyvern
#

hmm

#

Im not sure if I like that

#

feels like a hidden npe

obtuse gale
#

I mean it's as if you didn't annotate it at all

old wyvern
#

yea

obtuse gale
#

Something like Map#get can return null but it's not annotated as nullable either

old wyvern
#

thatd be just because Map is from the jdk, nullable is from jb-annotation which isnt used in it

#

Kotlin's map get provides nullable return values I think?

gusty glen
old wyvern
#

oh ok

obtuse gale
#

For something like Map#get, being annotated as nullable your IDE would be 50% yellow lol

old wyvern
#

lol

obtuse gale
#

It gets to the point it's annoying even if you are certain it isn't null

old wyvern
#

Unless you use the getOrPut or similar methods

gusty glen
#

I still don't know if MH are fasten than normal reflection @emilyy, just saying

old wyvern
#

They are secretx

obtuse gale
#

Well... I ran some (super rudimentary, 100% unreliable lol) JMH benchmarks

#

I say unreliable because it was on one OS, on one hardware, on one JRE version, made by one JVM vendor etc

old wyvern
#

What were the results?

obtuse gale
#

so literally the worst conditions for proper benchmarking

#

🤡

forest pecan
#

specify a percent

#

chance that it will be null

#

based on average cases

old wyvern
forest pecan
#

🤡

old wyvern
#

@midnight steppecentNullability(99.999)

obtuse gale
#

lmao

forest pecan
#

LMAO

old wyvern
#

oh

#

xD

gusty glen
#

that's just @Nullable on disguise

old wyvern
#

sad day for mr per

#

My apologies

forest pecan
#

lol

gusty glen
#

hence why kt is better, all the native methods / extension functions let you choose between getOrNull or get(OrThrow)

old wyvern
#

Wanna know whats even better?

#

Not having nullability

prisma wave
#

YEAH

obtuse gale
# old wyvern What were the results?

I'm not home rn but the results were something like reflection lookup was about x5~x7 faster ("lookup", with known method names and signatures ofc) than MH, invocation was about the same ops/s, both for private and public methods

#

Unless I'm not understanding the ops/s measurement, reflection lookups were much faster

#

but again this is faaaaaaaaar from a proper benchmark

half harness
#

afaik

old wyvern
#

lookups shouldnt show improvements with method handles, I think, not sure if its worse tho. but its supposed to be faster at invoking

gusty glen
#

with reflections lookup you mean "class.getMethod"?

obtuse gale
#

getDeclaredMethod yes

half harness
# old wyvern What?

many ppl bc have been ponged from annotations, and no one was like, why did i get pinged thonking

#

im surprised

old wyvern
#

ok?

half harness
#

ok

old wyvern
obtuse gale
#

Bukkit was a pioneer 😌

old wyvern
#

oh god

obtuse gale
#

Also the annotation is specifically in the java8 module?

jovial warren
#

to clarify some places where strict nullability annotations can't really be applied

#

or perhaps shouldn't be applied

obtuse gale
#

hm idk, paper puts new classes under io.papermc or com.destroystokyo tho

#

I couldn't care less about Bukkit itself lmao

#

actually no, I take that back

#

Spigot adds so little API

#

Bukkit is where everything that's relevant is at

pastel imp
static zealot
#

am I a monster for installing steam and cs:go on kde neon?

obtuse gale
#

fabric smh

static zealot
#

? Looks alr to me

obtuse gale
#

yes, that's how you call a constructor lol

dawn hinge
#

Smh blitz

static zealot
#

ffs I'll just put /s in every message now bcz no one gets sarcasm around here

half harness
#

lol

static zealot
#

beautiful

obtuse gale
#

ayy groovy

static zealot
#

seems fine to me /s

#

get it now?

#

its sarcasm. haha

#

funny

#

haha

#

ha

#

ha

#

ha

#

😭

ocean quartz
steel heart
#

Just cast it PES3_OMG

obtuse gale
#

to Object :^)

static zealot
#

I get around 5 fps on cs:go... well this sucks

#

2-5 fps

#

and that's consistent