#dev-general

1 messages · Page 187 of 1

onyx loom
#

strip their limbs

prisma wave
#

What im saying is, people dont want to hear "wouldnt happen if you were using kotlin".
@distant sun what about "wouldnt happen if you were using clojure/haskell/scala/frigga/odin/elara"?

onyx loom
distant sun
#

Smh bm

onyx loom
#

clojure moon

remote goblet
#

I didn't say they would and I wasn't saying that being serious, I said it in a joking manner, which you clearly couldn't understand gaby. If someone genuinely asked for help I would give them an answer mmSitStareMocha

#

now go fuck off somewhere else ASfacepalm

#

don't take jokes too seriously

distant sun
#

Be polite Ori.

ocean quartz
#

Wouldn't happen in the language i made because it doesn't exist

prisma wave
#

🙄

remote goblet
#

Honestly gaby, that's the most polite you're getting

prisma wave
#

your imaginary language is no match for elara

onyx loom
#

use them 1s and 0s instead

ocean quartz
#

I could never make a language, i'd probably end up making Kotlin

remote goblet
#

make kotlin again but in spanish

ocean quartz
remote goblet
#

impresiónlna("Kotlin cool")

prisma wave
#

el kotlino

#

idk i don't speak spanish

#

I could never make a language, i'd probably end up making Kotlin
@ocean quartz just think of everything kotlin does and either do the opposite or rename it

#

works for me

ocean quartz
#

Fair

normal talon
#

lair

#

pair

old wyvern
#

niltok

#

Enforce Nullability

ocean quartz
#

Lmao, code will only run if it throws NPE

old wyvern
#

val a: String? = "a"
println(a ?: "its not null, sad")

prisma wave
#

there was something similar entered into the Repl competition I think

#

It's a language without any valid syntax

old wyvern
#

Which one bm?

prisma wave
#

The only valid program is an empty file

#

Can't remember the name

distant sun
#

o damn

prisma wave
#

But it was dumb

old wyvern
#

a lot were C and something in diff languages

#

xD

ocean quartz
#

A language that can only be written in one line

prisma wave
#

Yea lol

#

Oh god

old wyvern
#

Spanish C

#

Turkish C

#

Russian C

prisma wave
#

As soon as you add \n the program segfaults and causes a bluescreen

old wyvern
#

cyka blyat "blin"

prisma wave
#

lmao

distant sun
#

Imagine having to add accents to words

prisma wave
#

Imaginè

ocean quartz
#

Blyatlin

distant sun
#

privat final Ață nume = "Gaby";

old wyvern
#
общественный vodka пить() {
}```
distant sun
#

Lol

#

"Stop abusing vodka"

ocean quartz
#

privado final Corda nome = "Matt"; lmao

old wyvern
#

😂

distant sun
#

:))

#

or Sfoară, not sure

old wyvern
#

vozvratnyy blok

distant sun
#

Șir tf

ocean quartz
#
公衆 ストリング method() {
  返す "Hello";
}
distant sun
#

god no

ocean quartz
#

God yes

distant sun
#

!(god yes)

#

TrChat's comments are written in some asian language (I think it's Chinese) and it's HORRIBLE to deal with smh

frail glade
#

TrChat does some shady stuff if that's the plugin I'm thinking of.

distant sun
#

=pl trchat

compact perchBOT
#

v1.7 R2 by Arasple
The all in one chat plugin | JSON Formats / Chat Filter / Bungee

Downloads:

2,039

Likes:

0

Reviews:

4

frail glade
#

It also ignores being cancelled and messes up with a bunch of stuff.

distant sun
#

dis

ocean quartz
distant sun
#

ok ..

#

I see you are using rainbow brackets 🙃

old wyvern
prisma wave
#
if (!(!(!(!(!(!(!(!(!(!(!test!!)!!)!!)!!)!!)!!)!!)!!)!!)!!) return```
#

:)

old wyvern
#

classe ClasseFilho herda ClassePai

#

🙃

ocean quartz
#

Lmao the language name means Mare

distant sun
#

Mare?

ocean quartz
#

Female horse

distant sun
#

ah

old wyvern
#

lol

prisma wave
#

odd choice of name

distant sun
#

ok ..

prisma wave
#

Should've named it after an obscure moon

#

All good languages are named after obscure moons

old wyvern
#

^

frail glade
#

Ya that plugin messes with DSRV

distant sun
#

I dont like the lib it uses

#

it does some weird stuff

distant sun
#

damn

prisma wave
#

bruh

#

So they know it exists and yet let the plugin stay?

ocean quartz
#

Oh there is worse

old wyvern
#

Where is that from?

#

yoo

#

really

ocean quartz
prisma wave
#

so downloading stuff is NOT ALLOWED but literally having a force op is fine?

#

wtf

#

pdm discrimination

distant sun
#

damn, spigot also has useful stuff?

#

So they know it exists and yet let the plugin stay?
@prisma wave fr, why not remove all versions that have a force op

#

though, what happened? Did the author said "time to remove the FORCE OP"? :))

prisma wave
#

"oh hey guys you know I severely violated the rules? Yeah I'm not any more so if you can just let me go free without any repercussions that would be great"

#

It's pretty ridiculous

#

Especially considering it's literally a premium plugin

distant sun
#

^

ocean quartz
#

There was a dude who leaked ezrankspro on spigot, it was removed but he didn't get banned lmao

old wyvern
#

lol

static zealot
#

wait he didn't

#

?

distant sun
#

fair enough

prisma wave
#

I don't understand that at all

ocean quartz
#

Don't think so Blitz

prisma wave
#

the rules are so petty but they won't even enforce serious infractions

ocean quartz
#

He posted other resources

distant sun
#

tbh id rather wait 2 weeks for a resource to be approved than have the website filled with shit

#

pretty sure you can check at least 10 resources in 20 minutes since most of them are basic stuff

#

and by check i mean use a decompiler to check the code and such

static zealot
#

well not if they are messy I guess.

#

like my resources xD

prisma wave
#

Just develop a machine learning algorithm that can instantly tell if a plugin is evil or not

old wyvern
#

Wasnt someone here staff on spigot or something?

prisma wave
#

Simple

distant sun
#

I would apply for staff but I know I wont get accepted since Im not active on the website

old wyvern
#

ah welp

#

I mean not like theres much to do on there

distant sun
#

Wasnt someone here staff on spigot or something?
@old wyvern Gian

old wyvern
#

Ah

distant sun
#

I mean not like theres much to do on there
@old wyvern check resources

old wyvern
#

eh

#

Almost everything is the same thing

remote goblet
#

okay mmSitStareMocha

#

discord jda nerds

#

am i being stupid

#

event.guild.members.forEach { member -> print(member.user.asTag) }

#

that's mostly correct right

#

yes

#

but it's literally only printing the bot and the command executor

#

as if it like

#

can't find anyone else

ocean quartz
#

Do you have the guild members intent turned on? On the bot dashboard and on the jda

remote goblet
#

mmSitStareMocha maybe

ocean quartz
#

And is it in the dashboard as well?

remote goblet
#

where

ocean quartz
remote goblet
#

well fuck

ocean quartz
#

Oh, idk then xD

distant sun
#

So I want to create some kind of "CouponBuilder" for this POST request https://docs.tebex.io/plugin/endpoints/coupons, is there any way to display a warning when a required value is missing? Something similar to the warning displayed when a null value is passed to something annotated with @NotNull

prisma wave
#

I don't think so

#

Not at "compile" time anyway

distant sun
#

I can just add a check on build() for each required method, just wanted to know if I can display some kind of warnings to the end user when they create the coupon

distant sun
#

is this ^\d{4}-[01]\d-[0-3]\d$ pattern ok to check a date string with the format yyyy-mm-dd?

astral quiver
#

Hey folks

#

What about Elara fingerguns

distant sun
ocean quartz
obtuse gale
#

If ive got a string like this,
Test string test how would I remove the spaces before and after the first and last word?

distant sun
#

trim

obtuse gale
#

welp

#

time to go through and replace like 60 uses of .complete with .queue

#
fun MessageChannel.embed(title: String, desc: String, footer: String = ""): CompletableFuture<Message> {
    val eb = EmbedBuilder()
    eb.setTitle(title)
    eb.setDescription(desc)
    eb.setFooter(footer)
    eb.setColor(Color.BLUE)
    val future = CompletableFuture<Message>()
    this.sendMessage(eb.build()).queue{
        future.complete(it)
    }
    return future
}
``` Is this like the basic usage of completable futures?
#

Also what should I use to run stuff after? Like .thenApply or .thenAcceot ir?

quiet depot
#

erm no

#

don’t do that

obtuse gale
#

what do i do then lol

quiet depot
#

queue returns a rest action right?

obtuse gale
#

idk how this works

#

yeah

#

o

#

should i just return that

quiet depot
#

just return what queue returns

obtuse gale
#

alright

#

yeah that makes sense lol

quiet depot
#

rest actions & completable futures are basically same thing

obtuse gale
#

off this is gonna make quite a thicc arrow

hot hull
#

Aj, smh

obtuse gale
#

I cant do anything about it cryingblob

quiet depot
#

I mean you can

#

just don’t be a 4head

#

ez

obtuse gale
#

Got 12 more to go

#

bruh I have absolutely 0 memory of writing this code

hot hull
obtuse gale
#

The fuck

#

nice

#

spring good :))

hot hull
#

Exactly

#

Created a new database worked fine, seems to just shit itself randomly

regal gale
#

Why did you even make a table name with dot anyway

hot hull
#

the first is the database name

dusky drum
#

you sure you do stuff like that

#

you create database

#

then select it

#

then make table

hot hull
#

More steps, ew

dusky drum
#

but it works

#

and if doing it why use `?

#

just do

#

CREATE TABLE IF NOT EXISTS supporter_codes.creators :??

hot hull
#

It doesn't matter lol, it's the exact same

dusky drum
#

how doesnt it work then?

#

and i belive you gotta add .dbo.

#

so dbname.dbo.table

hot hull
#

Nah

regal gale
#

What if you drop the first table then create `supporter_codes`.`creators` ?

hot hull
#

kotlin would be so much better for statements :((

empty flint
#

I have a quick question regarding kotlin coding best practises

#

I've read that it's better to define top-level functions instead of packaging them in a top-level object to declare a namespace for them. But I don't quite get why that is. What's the reason for the de-coupling of functions from classes and objects and why does it matter?

lunar cypress
#

because objects shouldn't be used as namespaces

#

when functions have no connection to a class why would you put them in one

prisma wave
#

^

empty flint
#

Well most of my top-level functions could be part of a class, or could be used as general lib methods. It's not always clear cut...

prisma wave
#

but why should they be part of a class?

#

Unless they are part of an object, there's no reason to have them in a class

empty flint
#

Are objects regarded the same as classes in that regard?

prisma wave
#

yes

empty flint
#

Why?

prisma wave
#

Because they are still effectively classes

#

You're binding the function to some sort of state for no reason

empty flint
#

Well the reason would be to have a common namespace. Be that Util or Utils or Maths or something else

prisma wave
#

a common namespace would be a package

empty flint
#

Hm yeah that makes sense actually...

prisma wave
#

look at functional languages: there's no such thing as a class

#

Clojure has namespaces, not sure about languages like Haskell

#

But if something doesn't need to be part of a class there's no reason to even consider classes

empty flint
#

So because it's unnecessary one shouldn't do it. I mean it makes sense, I just wanted to get an insight into why it is unnecessary

prisma wave
#

Indeed

#

It doesn't provide anymore insight into what the function does (or it shouldn't)

jovial warren
#

@hot hull is that MySQL?

#

just curious since all SQL seems to be different lol

hot hull
#

yessir

jovial warren
#

just MySQL or the far superior MariaDB?

hot hull
#

Maria

jovial warren
#

noice

#

I used to use MariaDB, but switched to PostgreSQL after hearing it scales better, and tbh, I find it to be better than MySQL not just because of how well it scales

#

PostgreSQL conforms much more strictly to the SQL standard than MySQL does, meaning thingys make more sense

hot hull
#

I've honestly no idea how any of it works, I just know ish what to do to store data fingerguns

obtuse gale
#

imagine knowing how shit works

hot hull
#

I rarelly work with it which is :((

hot heron
#

@prisma wave So not knowing oop wouldn't matter for clojure?

jovial warren
#

it might be worth learning SQL just so you can debug better and figure out how thingys go wrong

#

@hot heron probably not, though knowing OOP is really handy, and it's not a hard thing to pick up either

hot heron
#

I just ask cause someone I know is lead dev at their work and they use clojure but they haven't learned oop

jovial warren
#

in OOP, there are four key principles: Abstraction, Encapsulation, Inheritance and Polymorphism

#

literally those four are all you ever need to know

hot heron
#

I was surprised to hear they became lead dev without oop knowledge

#

But I guess if it's not useful for the work then it wouldn't change anything

prisma wave
#

@hot heron clojure has very few object oriented concepts

#

So yeah

obtuse gale
#

those are some big words

prisma wave
#

It's effectively unnecessary

#

functional programming is a completely different paradigm

jovial warren
#

abstraction is easy, it's just extracting things that are commonly shared between thingys and putting them in another place
encapsulation is just hiding thingys inside of your thingy to deny access from the outside (I think)
inheritance is where one thingy has children and those children get attributes from their parent
polymorphism is basically method overloading, where you have multiple methods with the same name that take different thingys, return different thingys, and so do different thingys (afaik)

hot heron
#

yeah I've never touched it

jovial warren
#

functional programming is a completely different paradigm
that is true

prisma wave
#

The problem with FP imo is that it's hugely different to OOP

#

Which makes it a lot more difficult to learn

jovial warren
#

I had to look up what encapsulation and polymorphism were because I forgot lol

prisma wave
#

And also, there's no functional languages I know of which isn't ugly and / or difficult to learn

hot heron
#

So what are the benefits of FP?

jovial warren
#

the latter includes Elara

prisma wave
#

Clojure is a lisp which is an instant turn off for many people, Haskell is pure functional so it's full of complicated CS concepts

#

@hot heron consistency and arguably lower complexity. Everything is immutable so you don't have to worry about your data randomly changing, there's no complicated states to try and decipher

#

You don't have to jump through OOP hoops, you can just write what you want to do

#

Object oriented code tends to be much more overengineered too

#

I saw some video where a guy took about 4 classes of object oriented code and turned it into about 3 short functions

#

All because OOP encourages heavy use of abstraction

jovial warren
#

OOP is still a really, really useful thingy to learn though

hot heron
#

Yeah everything has its ups and downs

prisma wave
#

also I'm only 100xp away from overtaking frosty so thanks for the paragraph opportunity

hot heron
#

hahaha

#

Explain away 😛

prisma wave
#

Anyway to conclude elara is the best functional language

dusky drum
#

howly

#

yes

#

go destroy the forsty

#

frosty*

prisma wave
#

It's not pure FP so it's easy to learn, and doesn't have any syntax gimmicks

#

But it also has a cool type system

#

60xp fingerguns

jovial warren
#

oof

prisma wave
#

oh no chat is dead now

obtuse gale
#

I need help

compact perchBOT
#

There is no time to wait! Ask your question @obtuse gale!

obtuse gale
#

Could not initialize class org.codehaus.groovy.classgen.Verifier pls help

#

gradle give error

#

me sad :((

hot heron
#

What context is functional programming preferred?

prisma wave
#

wdym?

#

@obtuse gale that's not much information but could be a JDK problem

hot heron
#

Like each kind of programming has it's pros and cons depending on the situation

obtuse gale
#

im using openjdk 14

#

this project works fine on my main pc, but its being dodgy on my mac

prisma wave
#

You need 6.5.1 for jdk 14

obtuse gale
#

ah

#

thatd be it

prisma wave
#

@hot heron yeah, I guess trying to use FP for say a plugin is a bad idea since spigot is based around object oriented structure. If you're starting from scratch it doesn't make much difference.

As far as I know clojure is widely used in backend design since it scales well with concurrency. Haskell is more of an academic language so I don't really know what you'd use it for

#

Kotlin can be functional too though, and you can mix the two

#

I usually use mostly object oriented design in plugins while taking advantage of Kotlin's functional features too

#

Best of both worlds

#

ffs 10xp to go

#

Barry is really screwing me over here so I'm just gonna write this in hope that he'll give me enough XP thanks

#

YES

#

At last

obtuse gale
#

oh

prisma wave
#

lol

#

Discord strikes again

jovial warren
#

oof

#

wow I'm still 19th

#

how is cube still 1st even though I barely see him chat that often

#

unless he's always on when I'm asleep lol

#

@pallid gale how has one maintained this black magic

prisma wave
#

He whomst controls the database can have infinite XP

pallid gale
#

o

jovial warren
#

He whomst controls the database can have infinite XP
lol

#

seems legit

hot hull
#

smh BM

prisma wave
#

😏

#

It was inevitable

dusky drum
#

dont

onyx loom
#

i am also inevitable @hot hull

#

👀

hot hull
#

And I am about to loose my marbles

onyx loom
#

ok

hot hull
#

I legit get it so close to working, everything works, but cause it's java boom random ass NPE

obtuse gale
#

java bad

onyx loom
#

why java

#

cmon frostypoopy

hot hull
#

I was forced

onyx loom
#

these scummy java users 🤮

#

ok but like have u shown code and whatnot

obtuse gale
#

Is it worth deleting things from databases?

onyx loom
#

so we can help u 😭

hot hull
#

Only help I need is mental help

onyx loom
#

i feel u 😭

obtuse gale
#

Should I remove shit from my db once im done with it

hot hull
#

Well what are you doing?

obtuse gale
#

Support ticket details, the details are moreso used for functionality, not logging purposes, but I cant decide if i should keep them once the tickets closed

hot hull
#

Probably keep them, and give the users the ability to view closed tickets

obtuse gale
#

hm alright, atm it doesnt even store the content of the ticket

hot hull
#

Or ya know just make everything customisable fingerguns

obtuse gale
#

How would one store like a massive ass text chat log to a db as well?

old wyvern
#

as JSON or TEXT type I guess

hot hull
#

JSON probs cleaner I guess?

obtuse gale
#

like a json file?

#

Then have it store the path?

old wyvern
#

No

#

JSON format

obtuse gale
#

Can I just chuck it in the database? Ive never put like a massive long bit of data in a db before

old wyvern
#

some sql variants suppourt JSON as a datatype itself

#

so yes

obtuse gale
#

mysql?

#

ooh

#

alright

#

also itd be nice if spring stopped telling me it cant find something with ID 3 when I never asked it to find something wit ID 3

remote goblet
prisma wave
#

ok but where is the .clj / .el / .hs / .go

old wyvern
#

km

#

Does stacking items make items lose the PersistantDataContainer data by any chance?

#

@prisma wave

prisma wave
#

No idea

#

Never used them

#

But maybe?

old wyvern
#

hmm

#

I remember that happening once

#

Dammit

#

rip

prisma wave
#

the well designed server strikes again

old wyvern
#

😂

hot hull
#

@remote goblet angry_fingerguns

onyx loom
#

does java make u very angry frosty? angry_fingerguns

hot hull
#

very angery

remote goblet
empty flint
#

Can you guys recommend a good gradle release plugin for github?

lunar cypress
#

what is a gradle release plugin

empty flint
#

hm maybe I dove too deep

#

so I want to push a kotlin lib to github

#

and import it using gradle in my other projects

lunar cypress
#

You want to publish it?

empty flint
#

I guess

lunar cypress
#

Look at bintray then

#

Or jitpack if you're lazy

empty flint
#

what's this then?

prisma wave
#

that's for distributing binaries

#

I think packages can support maven repostories but you need to authenticate

quiet depot
#

packages does indeed support maven repos

#

but the auth requirement is a deal breaker

prisma wave
#

Very dumb

empty flint
#

I am a bit too overwhelmed by all this

#

this is what I found

prisma wave
#

?

#

just publish to a maven repo

empty flint
#

on how to use github source repo in another project

#

just publish to a maven repo
@prisma wave sure but how? which repo?

prisma wave
#

Bintray, maven central, personal one, jitpack

quiet depot
#

pls not the last

#

for your own sake

prisma wave
#

Yeah jitpack kinda sucks

#

If you don't want hassle you're welcome to use mine

empty flint
quiet depot
#

central probably isn't what you're looking for

empty flint
#

what am I looking for and why not central? ^^

prisma wave
#

Yeah central is a lot of hassle

#

I'd only publish something that was going to be very widely used to central

empty flint
#

Do I need to create an artifact if I want to publish to bintray?

prisma wave
#

uh

regal gale
#

Simple, but obvious question here 👀

prisma wave
#

That's kind of ambiguous

regal gale
#

Should I make a new plugin with Java or Kotlin

prisma wave
#

Artifact usually refers to something that gets published

#

@regal gale personal preference?

regal gale
#

¯_(ツ)_/¯

prisma wave
#

If you want to use Java use java, if you want to use kotlin use Kotlin

#

You can also make plugins in Clojure which I would highly recommend

regal gale
#

ew

prisma wave
#

🙄

#

It's still less verbose than Java lol

regal gale
#

Anyway, I've had no idea why kt evaluation in this 1.4.0 is giving me errors on Heroku (script engine not exist)

#

But it looks really fine on ide

prisma wave
#

That's not much to go on

#

Caching perhaps?

regal gale
#

It also works fine on 1.3.72 before

onyx loom
#

You can also make plugins in Clojure which I would highly recommend
@prisma wave 🤡

prisma wave
#

🙄

#

Just look at that

#

Hot

onyx loom
#

🤡

prisma wave
#

😕

dusky drum
#

howly wtf

#

whats that syntax

prisma wave
#

clojure

dusky drum
#

eww

prisma wave
#

everyone's a critic

#

It's just backwards

#

println("Hello") becomes (println "Hello")

#

simple

quiet depot
#

fun fact lisp dialects are diabolically ugly

#

clojure continues the tradition well

prisma wave
#

fun fact no

#

no AbstractFactoryFactory in clojure

#

Rich Hickey wins again

quiet depot
#

excuse me

#

where's a jython plugin

prisma wave
#

jython isn't a standalone language so it doesn't count

quiet depot
#

then remove your kotlin plugin lol

prisma wave
#

kotlin is a standalone language?

#

Lol

#

What I mean is

quiet depot
#

oh i misread

prisma wave
#

Jython is just python

#

All the others are their own languages

quiet depot
#

I thought you said it is a standalone language

prisma wave
#

ah right

quiet depot
#

jython is a python impl on the jvm, I don't see why that'd disqualify it

#

in that case it's the exact same as kotlin

#

the only difference is jython isn't official

old wyvern
#

welp

prisma wave
#

but kotlin is a separate language, jython is just python

#

I'd argue it's therefore not a JVM language

old wyvern
#

kotlin/JVM being jvm version of Kotlin is similar to Jython being JVM version of Python

#

Thats what pig meant (I think?)

empty flint
#

Cool, I got it working without publishing to maven

#

just pushed to github and imported and built using sourceControl

lunar cypress
#

there is a difference between being a port and being a primary target

#

jython is a port, it does not embrace the jvm in any way

#

it has its own systems

old wyvern
#

Wdym it does not embrace the jvm in any way?

#

Isnt Jython supposed to allow Java interop as well or something?

quiet depot
#

when you make a jvm language, you're meant to follow the principles the jvm outlines

#

jython does not

old wyvern
#

hmm

quiet depot
#

I assume that's what he meant

#

not 100% sure

old wyvern
#

What are the exact principles?

quiet depot
#

no clue

old wyvern
#

ah welp

quiet depot
#

ig "oop paradigm pls, no manual memory"

heady birch
#

Can you do:
(setExecutor (new ClojureCommand))
becomes
(setExecutor new ClojureCommand)

Or is new basically a method/function and requires ()

prisma wave
#

new is a function

old wyvern
#

python has oop as well right?

prisma wave
#

yea

quiet depot
#

python's impl of oop is widely criticized

old wyvern
#

ah

prisma wave
#

Python seems to be best with a procedural kinda style

#

In my experience anyway

heady birch
#

Rust kind of does everything in the best way

prisma wave
#

Does it though

old wyvern
#

Elara does tho fingerguns

prisma wave
#

^

#

Rust has like 300 symbols

#

Annoying

heady birch
#

Yeah in my opinion it does except for when

prisma wave
#

when?

old wyvern
#

int8 int 16 int 32 int64 int128 int2^n

heady birch
#

when you use it with

#

i8 i16 i32

old wyvern
#

xD

#

is there a long to replace int64?

heady birch
#

unsigned long long -> u128

prisma wave
#

<'T: M<&UInt8>>

old wyvern
#

ew

prisma wave
#

not an exaggeration

old wyvern
#

😂

prisma wave
#

Have you ever heard of Go

#

It's like Rust but not ugly

heady birch
#

Is it performance

prisma wave
#

Pretty fast

heady birch
#

Does go have a spring alternative

prisma wave
#

Probably

old wyvern
heady birch
#

MVC

old wyvern
heady birch
old wyvern
prisma wave
#

Using rust in 2020

#

How embarrassing

onyx loom
#

💀

hot hull
#

Does anyone else make a plugin to just think shit through, then remake it from scratch properly so everything makes sense, or is that just me?

ocean quartz
#

I normally think of an idea make it happen then rewrite it to be good yeah

heady birch
#

Gather requirements -> Technical design -> Implementation -> Testing -> Release

#

Or as the Agiler's like to go Program -> Test -> Program -> Test

hot hull
#

Ah yes the good old

  1. Make the plugin
  2. Test the plugin
  3. Make it nice
  4. Fix the broken shit
  5. ???
  6. Profit
dusky drum
#

profit = 0.

jovial warren
#

@prisma wave hey any ideas on how we should handle statistics?

#

(MineKraft)

#

because according to the standard, it needs to be sent as an array of varints

#

the values in that array being category ID, statistic ID and then the value

prisma wave
#

uh

#

for now I would just have a Table<Int, Int, Value> in whatever the class is for player data

#

we can worry about api design later

jovial warren
#

okay

#

wait is Table built-in to Kotlin?

prisma wave
#

no

#

it's from Guava

#

but I think I've bundled that

#

maybe

#

if not add it

jovial warren
#

yeah it's already bundled

prisma wave
#

thought so

#

cool

jovial warren
#

how do I get the first row value in a table?

#

or do I want to send them all

prisma wave
#

i presume you send them all

jovial warren
#

I got no idea how this works lol

prisma wave
#

but maybe not

#

lemme look at the spec

jovial warren
#

alright

prisma wave
#

yeah I presume you send all of them

#

with multiple arrays

jovial warren
#

how do I send them all?

prisma wave
#

just call writeArray multiple times?

#

or whatever it is

jovial warren
#

there is no writeArray lol

#

I was more asking how do I access the data from the table

prisma wave
#

oh

#

there might be entries/entrySet?

jovial warren
#

okay

#

also should I have been using writeVarInt rather than writeInt to write data where the type on the spec is VarInt?

#

because if so I gotta go and change it all lol

prisma wave
#

yes

#

varints are not ints

#

well they are

#

but they're encoded in a different way

#

presumably it's more efficient

jovial warren
#

ah okay

#

what do I do about Unsigned Byte types?

#

can I just use writeByte?

prisma wave
#

I believe so

#

as long as they're effectively unsigned it should be fine

jovial warren
#

also, the Position data type can just be sent with writeLong right?

#

since it's just a long

prisma wave
#

probably not

#

well

#

yes

#

but you have to pack x y and z into the single long

jovial warren
#

I used the algorithm on there

heady birch
#

Can't netty bytebuf do writeUnsignedByte

prisma wave
#

possibly

#

doesn't look like it

jovial warren
#

yeah I tried writing writeUnsignedByte and it doesn't exist

prisma wave
#

there's always the UByte type in kotlin but it's experimental

jovial warren
#

yeah I guess

#

how do unsigned types even work in Kotlin?

prisma wave
#

mostly compile time assertions I think

#

yeah they're inline classes

#

so they compile to Byte

heady birch
#

Let me open one of my ancient projects

#

Nvm I didn't write any unsigned data. But theres readUnsignedByte

jovial warren
#

yeah

#

I wonder how readUnsignedByte works in Java

#

since Java doesn't have unsigned types

prisma wave
#

just returns a byte

#

except it will always be positive

heady birch
#

its like data & 0xFF

#

or something

jovial warren
#

okay

prisma wave
#

kotlin barely has unsigned types

heady birch
#

Rust 🙂

prisma wave
#

🙄

onyx loom
#

disgusting

heady birch
#

😄

prisma wave
old wyvern
#

proper unsigned byte would be kinda out of the byte range of Java

prisma wave
#

yea

heady birch
#

Animated emoji doesn't exist

#

Animated emoji: 🌚

prisma wave
#

lmao

onyx loom
#

animated emojis do exist if u have nitro 😉

old wyvern
#

self bot?

prisma wave
#

he's still going

#

lol

#

or not

#

welp

old wyvern
#

#BanNiallSelfBotter

onyx loom
#

😂

old wyvern
#

😂

prisma wave
#

@compact perch

#

deal with him

heady birch
#

I need a self bot that tracks every emoji

#

I write

#

And then proceed to change it

prisma wave
#

get that guy to make it for $1.5

hot hull
#

Quick question, so far I was storing a VARCHAR(36) as it was a UUID of another user (which the main user (user X) follows - This being user Y), however I need to make it nullable, but since a UUID can't be null, I'd have to keep converting from a string, should I switch it up so instead of UUIDs I use numbered IDs, (each being corresponded to a Y user) and then just identify them with that?

Let me know if I make any sense fingerguns

prisma wave
#

doesn't make any sense

old wyvern
#

Im not reading that paragraph

#

k tnx bye

prisma wave
#

is the uuid the primary key?

#

if not why can't it be nullable

hot hull
#

the Y UUID no

prisma wave
#

why not

hot hull
#

Why not what?

prisma wave
#

oh

#

so basically

#

why can't it be nullable

hot hull
#

If I store a UUID type NPE's, cause java bad

#

Short explanation fingerguns

prisma wave
#
| UserId | FollowingId (Nullable VarChar) |
#

ez

hot hull
#

Yea but I have to store it within data as a string and then keep converting to a uuid

#

Since a UUID can't be null

heady birch
#

Yeah use a id coloumn

hot hull
#

Which get's tedious

heady birch
#

No one wanna use a UUID as PK

prisma wave
#

true

#

now seems like a good time to suggest Hibernate

#

I am a man of standards therefore this will be written in Java
@heady birch

Rust kind of does everything in the best way
@heady birch

the double standards of rust users, the media doesn't want you to see this

heady birch
#

😮

prisma wave
#

exposed

hot hull
#

ngl BM, Hibernate looks nice

prisma wave
#

indeed

#

until you realise that it's 10mb

#

:)

hot hull
#

Worth it probably

prisma wave
#

pdm + hibernate best software stack

hot hull
#

Otherwise PDM fingerguns

heady birch
#

Double standard frosty Spring is trash until he actually needs an ORM

prisma wave
#

what a work of art

heady birch
#

Hibernate companies in Ukraine

ocean quartz
#

What a rollercoaster of emotions in the reactions

prisma wave
heady birch
#

I havn't clicked the link yet

prisma wave
#

please visit

hot hull
#

You boutta get hacked fingerguns

#

BM, ngl this is such an overkill..

prisma wave
#

they said please

#

no it's not

#

Hibernate good

hot hull
#

I'm storing 6 things, it's overkill..

prisma wave
#

Suggest something better

#

That's right there's nothing

#

Hibernate is literally the best option in any possible situation

hot hull
#

OvErKiLl

prisma wave
#

🙄

#

It's only overkill if it doesn't work

hot hull
#

I'll try it out when I have to store more shit, deal?

prisma wave
#

😕

dusky drum
#

ok

prisma wave
#

that's not a good deal

hot hull
#

Very good deal

prisma wave
#

not really 😕

#

Btw have you ever heard of Elara

#

I would recommend

old wyvern
#

ActiveJDBC works if you want to still kind of want to control the models I guess

hot hull
#

Elaborate Yugi

prisma wave
#

or ORMLite

old wyvern
#

As in if you just want to write SQL requests but in a more idiomatic way in Java/Kotlin or whatever

heady birch
#

how do I make gui better

old wyvern
#

It doesnt serialize for you

#

You handle what to set to what

#

It just handles table creation, the actual insertion.. ect

ocean quartz
old wyvern
#

xD

#

Or you could wait till if I ever continue working on PersistanceFramework

heady birch
prisma wave
#

Too soon 😔

hot hull
#

smh Matt

gray elk
#

Please how can i make mobs follow a player

old wyvern
#

PathfinderGoal

gray elk
#

But how can i import nms by maven

#

i use maven

hot hull
#

build tools

old wyvern
#

Run buildtools and specify the non "api" repo

ocean quartz
#

Run build tools and remove the api from the repository
Or use paper (exclusively paper)

gray elk
#

In intellij ?

old wyvern
#

org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT

gray elk
#

i have it but intellij dont let me include external classes except by maven

lunar cypress
#

And what is the problem

#

You run BuildTools

#

You include it via maven

gray elk
#

how ?

lunar cypress
#

What step are you struggling with

ocean quartz
#

You just run build tools and on your maven remove the api from spigot that's all

gray elk
#

Now im in pom.xml

#

maven

prisma wave
#

project.clj >

#

:)

hot hull
#

BM

#

shut

prisma wave
#

I'm not wrong

ocean quartz
#

Is this lib something for android only?
Sounds like a pretty cool way to handle databases

hot hull
#

Some indian dude explaining it I'm guessing fingerguns

heady birch
#

Literally hibernate

prisma wave
#

literally not

heady birch
#

Worse

ocean quartz
#

Not really Frosty, just a coroutines video

hot hull
#

ah, it's got that vibe

heady birch
#

Okay thats a mess

hot hull
#

What's with all those a's sheesh

heady birch
#

Variable

#

Jpa query

#

Ecloud

prisma wave
#

That's spring not hibernate

#

Misinformation

heady birch
#

This point is true

hot hull
#

Whatever weeb keeps setting those emojis smh

heady birch
#

There banned!

prisma wave
#

Finally 😁

#

Or not!

heady birch
#

Anyway creating a nice table based web gui

#

Semantic ui looks quite nice

hot hull
#

Would it make sense if I have statements stored within objects, so I can just invoke Object#store() or some shit and it would store it?

heady birch
#

no

#

more like

#

Storer.store

#

then

#

StoreQueryResolver

#

StoreQueryProvider<T extends Storable>

prisma wave
#

🙃

heady birch
#

MyCoolObjectQueryProvider<MyCoolObject>

store {
return "INSERT INTO e.g e.g
}

#

CRUDable would be nice

prisma wave
#

Looks like Kotlin syntax

#

wow

heady birch
#

Pseudocode

hot hull
#

Would get messy imo Niall

heady birch
#

Is it a public plugin?

prisma wave
#

sure

hot hull
#

No Niall

heady birch
#

Is it limited to download size

#

I see absolutely no reason not to use Spring boot

hot hull
#

limited to 500kb, otherwise someone gonna be mad fingerguns

heady birch
#

Oh okay

foggy pond
#

Generally a GitHub wiki > spigot wiki right

#

I had horrible experiences making a spigot wiki

prisma wave
#

Yes

jovial warren
#

@ocean quartz what DSL is that?

foggy pond
#

It being buggy as hell

ocean quartz
#

Gitbook > all

prisma wave
#

GitHub good spigot ugly

ocean quartz
#

@jovial warren Idk

hot hull
#

Github darktheme even nicer fingerguns

foggy pond
#

Owoat how do i dark theme github

ocean quartz
#

Extension

jovial warren
#

@ocean quartz look at the imports if there are any

foggy pond
#

It does look sexy

jovial warren
#

but looking from that screenshot, it looks like that's not your code, since afaik you don't use default light theme lol

prisma wave
#

Not really Frosty, just a coroutines video
@ocean quartz

jovial warren
#

because who uses default light theme am I right

ocean quartz
#

There is none, I just know it's Dao for android

prisma wave
#

@ niall

jovial warren
#

cough @heady birch cough xD

#

okay yeah it's an Android DSL

#

if you want ORM though, Exposed good

prisma wave
#

wouldn't be that hard to make

#

It's just retrofit for SQL

ocean quartz
#

I might make something like that for for myself using hikari

prisma wave
#

it's probably pretty simple

ocean quartz
#

Yeah i think so too

jovial warren
#

yeah just a bit of classpath scanning, instantiating, and implementing

#

and other thingys

prisma wave
#

Wouldn't even need classpath scanning

#

Also dynamic proxies fingerguns

#

One of the best hidden JVM features

jovial warren
#

dynamic proxies?

prisma wave
#

Yup

jovial warren
#

and yeah, you're right, you wouldn't

prisma wave
#

Implementing an interface dynamically

#

It's like classgen but cheap

foggy pond
#

How would you guys decide the price tag to put on your premium plugin

jovial warren
#

price tags are easy for me: £0

#

lol

prisma wave
#

$5-10 based on how useful you think it is

#

Any more is probably gonna be a turn off for many people

jovial warren
#

yeah

foggy pond
#

Yeah

prisma wave
#

And any less PayPal will tax too much

foggy pond
#

I wasn't planning on going over 10$ in any way shape or form

jovial warren
#

just think about what you would pay for it if you were a customer

#

that's probably the best idea

foggy pond
#

I think that's not good, a customer might really need it while another one hearing about it would think that it's useless

jovial warren
#

I got a better idea

hot hull
#

Random number generator fingerguns

jovial warren
#

there's plenty of people in here who could act as potential customers

foggy pond
#

At the time when I was making a server of my own I really really wanted a plugin like this (Hence I made it now), so I would say I'd pay 10$ for it

But a minigame server developer would not pay a cent as it's not for minigame servers

jovial warren
#

but they wouldn't need it, would they?

hot hull
#

What kind of plugin is it?, ie. what does it do?

jovial warren
#

^

prisma wave
#

Honestly I'd just start at $10 and if nobody buys it just lower the price

#

Ez

foggy pond
#

I already have a free version on spigot, so I can link that here and I can say what additional features the premium version has?

#

Oh you can change the price

prisma wave
#

I think so

foggy pond
#

Yeah I mean fair enough you can

#

Don't see why you wouldn't be able to

old wyvern
#

10$ and OS it meh

prisma wave
#

idk I've only ever published one thing on spigot

old wyvern
#

People who want to buy will buy

prisma wave
#

Which is a shit API I made 3 years ago

old wyvern
#

Others would help grow potential buyers

jovial warren
#

10$ and OS it meh
this is a good idea

hot hull
#

OS or be gone

foggy pond
#

I already have a discord server with a bunch of people that like the free version of the plugin and some are impatiently waiting for an update or something, so I already have some potential customers

#

Yeah it's OS

ocean quartz
#

Yeah always OS

foggy pond
#

I have it on github but it is private rn (Until the plugin is released)

old wyvern
#

What does the plugin do btw?

hot hull
#

To continue my DB topic from earlier, anyone got any smart ways of determing whether I should use INSERT or UPDATE depending on if the data is already present in the db

old wyvern
#

Karma?

foggy pond
#

Can I send the link to the free version of the plugin and say what the premium version does?

#

yea

hot hull
#

I was thinking of just storing a boolean in the object, but that could be messy

old wyvern
#

You might need to work on the thread design btw

foggy pond
#

Yeah I'm aware

hot hull
#

Yes Klyser

jovial warren
#

To continue my DB topic from earlier, anyone got any smart ways of determing whether I should use INSERT or UPDATE depending on if the data is already present in the db
something I wish every ORM framework had is createOrUpdate (it's in ORMLite, but others lack it)

old wyvern
#

Its better if the initial sections briefs the plugin in a simple sentence

jovial warren
#

you wanna try and retrieve the info and update it if it's present, or insert it if it isn't

hot hull
#

Would that not be inneficient?

jovial warren
#

that's about the only way I can think of doing it lol

hot hull
#

As opposed to just storing a boolean within the object

old wyvern
#

Anyway, if you think if anyone would consider buying it at 10, you can safely OS it and post at 10

jovial warren
#

don't you still have to get it in that case @hot hull ?

old wyvern
#

In case people complain, reduce the price

jovial warren
#

or you mean caching it, which is a better way than asking the database for thingys

#

you check if it's in the cache, and if it isn't, you INSERT it, if it is, you UPDATE it

hot hull
#

Well Bardy, when the object is first created I need to determine if the db info should be created, or inserted, (since insert will throw an error if the info doesn't exist, vice versa)

old wyvern
#

What are you using Frost?

jovial warren
#

^

hot hull
#

As in?

jovial warren
#

ORM

hot hull
#

Hikari

jovial warren
#

that's a connection pool

hot hull
#

smh MySQL

jovial warren
#

that's a database engine

hot hull
#

leave

jovial warren
#

you using raw queries then?

hot hull
#

Yes

jovial warren
#

oof

old wyvern
#

Frosty, look into ActiveJDBC if you want to use something close to raw queries

jovial warren
#

or look in to something like Exposed for ORM, because ORM > raw queries 😎

old wyvern
#

And why is that bard?

jovial warren
#

I find mapping an object to an entry in a database allows you to access it more easily, it avoids mistakes in raw query strings, and a lot of things are handled internally, making your life easier

old wyvern
#

Easier != Better in all cases

jovial warren
#

true

hot hull
#

Efficiency is key in this case fingerguns

jovial warren
#

why are raw queries better then?

#

Efficiency is key in this case fingerguns
Exposed is efficient, and so is ORMLite, and so is Hibernate, and so is JPA

old wyvern
#

You handle how the object is saved and loaded back completely

jovial warren
#

true

#

but don't raw queries mean more effort for you if you want to support multiple databases?

#

e.g. Exposed has a DAO API, which is non-DSL, meaning you can just use that and have it work for all JDBC drivers

old wyvern
#

as I said

#

Im not talking about "easy"

#

Ofc, the point of ORMs is to make it easier

heady birch
#

😠 Light theme

jovial warren
#

you think light theme = good?

heady birch
#

During day yes

jovial warren
#

wat

#

what kind of light do you have in your room?

heady birch
#

Just not at night or whilst driving

#

Programming at the wheel

jovial warren
#

please tell me you're joking

#

(about the latter)

heady birch
#

About the programming while driving: yes of course I am joking 🤦‍♂️
About using light IDE theme during day: No I am serious

jovial warren
#

fair enough

heady birch
#

I tried to find an image for programming while driving

jovial warren
#

lol

old wyvern
jovial warren
#

nobody programs on their phone ffs

heady birch
#

Oh you found one

#

It showed people programming sat-navs for me

old wyvern
#

I actually found that on a yt video earlier today

#

Just searched that up by title from the video

heady birch
#

How would you properly handle a wide table on a mobile device. The content just doesn't fit (bootstrap 3)

onyx loom
#

tell them to get a pc fingerguns

heady birch
#

Lol found it table-responsive

foggy pond
#

What should I write in there? Should it be a link to my paypal? Or what

hot hull
#

yes

#

Would be so much cleaner if it were kotlin, cause now I still need setters and getters :((

steel heart
#

Lombokwesmart

heady birch
#

:nausea :

#
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") final int id) {
   final User user = userService.getUser(id);
}

vs

@GetMapping("/user/{id}")
public String getUser(final User user) { (map it by id or something)

}```
#

How can I acheive the bottom

prisma wave
#

Where is the try with resources @hot hull

heady birch
#

Lol it worked

foggy pond
#

Wait wha

#

I uploaded the premium resource

#

And I can see it on the resource list??

#

Shouldn't it not show up until it is approved?

hot hull
#

@prisma wave Oh yea that exists

#

Klyser, it shows up for you

#

Not for others

foggy pond
#

h okay thank god

hot hull
#

There's a shield next to the resource info

crystal summit
#

Hi, when you will do AutoSell 1.16?

prisma wave
steel heart
#

is rotationYaw = prevRotationYaw += 180f; same as rotationYaw += 180f, prevRotationYaw += 180f; ?

pastel imp
#

light theme = eca

old wyvern
#

@ocean quartz Does latest mf-cmds have any issues?

#

This command doesnt seem to be able to run? It keeps saying that its the wrong usage

static zealot
#

ugh I use it and had no problems

#

so far

old wyvern
static zealot
#

Matt's in a game of WarZone I think

old wyvern
#

ah

static zealot
#

wait which is the latest version? xD

#

I'm using 1.4

old wyvern
#

1.4

static zealot
#

yep no problems with it so far

#

oh wait

#

actually

#

Integer is the problem

#

I remember

old wyvern
#

oh?

#

Isnt the issue only if its the primitive

#

Im using the wrapper Integer

static zealot
#

ugh maybe I could be wrong xD

#

we better wait for matt. I'm just trying to look smart

old wyvern
#

Im still trying to debug this, but ive been up for way too long and have no idea what im doing anymore

ocean quartz
#

It should be fine ;o

old wyvern
#

Doesnt seem to work Matt

#

trying something out, gimme a sec

#

This may or may not be a bug

hot hull
#

Don't use Player

#

For the arg

surreal quarry
#

^^

#

use a string

#

and convert to a player

#

with the proper checks and stuff ofc

old wyvern
#

Ok can confirm, Anything with over 1 args does not work

ocean quartz
#

What's wrong with using a player?

old wyvern
#

Its not just player

#

Anything with a single argument seems to work fine

#

Anything with more than that fails

hot hull
#

Then you must be doing something funky

surreal quarry
#

id assume player would be looking for a player object

#

but maybe im wrong

old wyvern
#

Not doing anything out of the ordinary

static zealot
#

I use player and it works for me

#

well actually Player? if that makes a difference

old wyvern
#

Its not the Player blitz

#

Its the number of args

static zealot
#

yeah saw the message was just saying