#dev-general

1 messages · Page 456 of 1

cinder flare
#

my return home?

#

though that's tomorrow I guess

ocean quartz
#

"Build successful"

half harness
#

lol

cinder flare
#

it just said fuck your slimjar, im building anyways lol

ocean quartz
#

Beautiful

obtuse gale
#

no u

ocean quartz
#

Wow rude

obtuse gale
#

what's the task name

#

so I can just like

#
tasks {
  slimJar {
    relocate(...)
  }
}
ocean quartz
#

Yeah that's it

sweet cipher
#

Can slimjar add PDM as a dependency?

ocean quartz
#

Technically yes

half harness
#

lmao

ocean quartz
#

@old wyvern Ah great shadow 7.0 breaks it 🥲
at least if I add 7.0 as dependency

sweet cipher
#

I’ll be unstoppable

cinder flare
#

then you can use PDM to add Slimjar as a dependency!

sweet cipher
#

Oh yeah!

#

Using Skript!

wind bolt
#

Sure

sweet cipher
#

Me too

cinder flare
#

man you know what gets me

half harness
#

yes

cinder flare
#

is that typing in into windows search does not somehow turn up intellij, it turns up Internet Options

#

like wtf

half harness
obtuse gale
#

wtf 🥲

#

haven't touched that shit in ages lol

ocean quartz
half harness
#

btw matt

cinder flare
#

that might be Extreme Tuning Utility too

half harness
#

lol

obtuse gale
#

(:

half harness
#

wha

obtuse gale
#

nothing

half harness
#

what was that

obtuse gale
#

none of your business

half harness
#

ok

cinder flare
#

nyay

obtuse gale
#

lmao

ocean quartz
#

Nyay lmao

cinder flare
#

oh wtf the spelling of it includes itself

#

(in Spanish: eñe)

obtuse gale
#

well yeah

cinder flare
#

well a lot of english letters don't include themselves

obtuse gale
#

I don't think there's a single letter in the spanish alphabet that doesn't include itself

#

it's a very explicit language

ocean quartz
#

M, english pronounciation ɛm

cinder flare
#

C -> see

ocean quartz
obtuse gale
#

cees lol

cinder flare
#

well

#

okay maybe

obtuse gale
#

well in that case

cinder flare
#

double u

#

W

#

okay that's the only one lmao

ocean quartz
#

Always thought it was weird that it's double u but looks like double v

obtuse gale
#

Well in spanish it is actually named "double v"

ocean quartz
#

Portuguese we say double u as well

cinder flare
#

it was originally double u but people got lazy and started writing it sharply

#

i fucking hate dropbox

#

why does it do stuff to my files

#

damnit I gotta setup owncloud to sync my shit

cinder flare
#

oh damn rust has tuples

#

very cool

#

rust is a lot like C++ too I'm seeing

obtuse gale
#

👀

cinder flare
#

it's got vectors, it's got C-like types like i32, f64

#

i also have a sneaking suspicion that strings are pointers to arrays

#

cause IJ tells me it's an &str

#

and it uses ::

#

awe shit it doesn't use camel case

#

that's very sad

ocean quartz
#

Oh boy, rust

#

Let me find my only rust code ever that took hours and was a nightmare

cinder flare
#

There's a lot of cool stuff and a lot of not cool stuff

#

Good thing I'm making my own lang phew

ocean quartz
#

Should I contribute to your language? I'll make it more like Kotlin

obtuse gale
#

just fork rust 4head and make the not cool stuff cool stuff

cinder flare
#

I mean I certainly like a lot of Kotlin

#

but like, why does println! have an exclamation point?

#

why do you have to do string subtitution

#

why do for loops not have parens

#

why did the mutable thing have to be mut

#

const is a much better way

#

val and var are even better

#

why are some methods overloaded and others aren't?

obtuse gale
#

lol in c++ you have the three, const, mutable and, well, nothing

cinder flare
#

why do they use underscores

#

why do they use :: i really hate that

#
fn main() {
    let owned_string: String = "hello ".to_owned();
    let borrowed_string: &str = "world";
    
    let together = owned_string.clone() + borrowed_string;
    println!("{}", together);
}```
#

wtf is that

#

why can't you do expressions inside of the {} like in kotlin

#

ughhhh

obtuse gale
ocean quartz
#
fn main() {
    use std::char;

    let string = vec![
        vec![false, true, false, false, true, false, false, false], // H
        vec![false, true, true, false, false, true, false, true], // E
        vec![false, true, true, false, true, true, false, false], // L
        vec![false, true, true, false, true, true, false, false], // L
        vec![false, true, true, false, true, true, true, true], // O
        vec![false, false, true, false, false, false, false, false], // ' '
        vec![false, true, false, true, false, true, true, true], // W
        vec![false, true, true, false, true, true, true, true], // O
        vec![false, true, true, true, false, false, true, false], // R
        vec![false, true, true, false, true, true, false, false], // L
        vec![false, true, true, false, false, true, false, false], // D
    ];

    let mut final_vec: Vec<char> = vec![];
    for byte in &string {
        let mut byte_vec = vec![];
        for b in byte {
            if *b { byte_vec.push("1") } else { byte_vec.push("0") }
        }
        let byte_string = byte_vec.join("");
        let test = isize::from_str_radix(&byte_string, 2).unwrap();
        let char = char::from_u32(test as u32).unwrap();
        final_vec.push(char);
    }

    let final_string = String::from_iter(final_vec);

    println!("{}", final_string);

}
#

Beautiful

obtuse gale
#

Oh shit rust has mobile highlighting

cinder flare
#

what in the fuck

#

i mean you purposefully made that way more complicated that it needed to be lmao

ocean quartz
#

That was the point of it xD

cinder flare
#

ah okay I see

#

I thought you were dissing on Rust lol

ocean quartz
#

Basically someone (probably Emily) was talking about doing hello world with booleans, so I did it in Kotlin in like 1 minute, then someone told to try something else, so I did rust and I regretted it

cinder flare
#

wtf why do tuples have a max limit of 12

#

dude everyone praises Rust but like

#

so many weird decisions

#

makes me want to go to python ngl

obtuse gale
cinder flare
#

yup

#

let's put tuples in Kotlin

#

then I don't need Rust

#

actually maybe I should just go back to C++

ocean quartz
#

Rust is really good for speed

#

Specially web

cinder flare
#

yeah I plan on writing my Aello compiler in it

obtuse gale
#

Tuples in C++ are actually very smartly designed, recursive inheritance lmao

cinder flare
#

I just wish like a small few things were different

ocean quartz
#

Oh boy good luck poor you

cinder flare
#

well I'd rather write it in Rust than C/C++

ocean quartz
#

Do it in GO and i'll help

#

I need an excuse to use GO

cinder flare
#

oooh is Go good?

ocean quartz
#

Yeah

#

Go is also very speedy

cinder flare
#

I've heard Rust is really good for systems stuff and is a replacement for C/C++

#

I've heard virtually nothing about Go besides that Discord stopped using it lol

#

are you kidding me the . syntax is for tuples only

#

i dislike rust

obtuse gale
#

Lmao

cinder flare
#

can someone make a Rust without the shitty syntax that compiles to rust then compiles to speedy code

#

Oxygen, maybe?

#

does rust even have objects

#

cause i stg if it has getters and setters like java it's going in the trash

#

dude how are linters made

#

that seems so hard

#

but like Java and Rust have very good linters

ocean quartz
#

I think rust can oop yeah

#

Linter?

cinder flare
#

yeah like the thing that tells you your code is messed up

#

syntax highlighting and all taht

#

suggestions for autocompletion

ocean quartz
#

Ah once you have a lexer it's pretty easy to make
I was actually working on a IJ plugin to highlight my msgs lib syntax but got bored

cinder flare
#

a... lexer?

#

oh boy I've got a long way to go don't I

ocean quartz
#

It's very complicated in the beginning yeah
You'll need to search about lexers, grammar, parsing, etc
Lexing is basically reading the code and creating tokens that represent them, then you'll have a grammar tree to find what they mean and if syntax is correct and things like that, then you parse it to get the values you need

cinder flare
#

bro where do I learn this stuff

#

cause this is super cool to me

#

and I don't want to wait 2 semesters to take my uni's Foundation of Computation Theory class

ocean quartz
#

I searched a lot on google and yw, there aren't many good guides and stuff out there
Some people use a software to create the lexing, like antlr (minimessgae uses it i think) I think elara used to use it as well

cinder flare
#

have you made your own lang?

ocean quartz
#

Not exactly but my messages lib is pretty much a new lang just uses the same syntax as markdown

cinder flare
#

oh dang I see

ocean quartz
#

if you do Go i can try helping
Not rust though, I'd like to keep my sanity xD

cinder flare
#

dude I thought Rust was gonna be way cool

#

people hype it similarly to Kotlin

#

but I'd honestly rather use C++ at this point

#

it doesn't do enough to justify as far as I can tell

obtuse gale
ocean quartz
#

I think people coming from C++ really like Rust, but people coming from like Java or Kotlin dread it

cinder flare
#

yeah it's probably really nice for C++ bois

#

but there are so many opportunities where it could fix shit and I'd really like it

#

like it's just a few key pieces off

ocean quartz
#

My issue with it was the importing and stuff like that from the std lib
I felt like no matter what i tried jt never made sense

cinder flare
#

yeah man Java packages are really nice

#

I'll make sure Aello uses Gradle haha

ocean quartz
#

Is it going to be a JVM language or Native?

cinder flare
#

i dunno

#

I think Native'd be cool

#

but JVM would allow it to actually be used maybe

ocean quartz
#

Just interop that would be scary

obtuse gale
#

If you make it compile to JVM you have the advantage you can write shitty bytecode the jvm optimizes later on :^)

cinder flare
#

well maybe no interop, just it compiles to JVM?

obtuse gale
#

If you make it native you have to do that yourself

cinder flare
#

hmm yeah but learning to write a compiler would be super fucking cool I feel

ocean quartz
#

Convert your code to Kotlin and use Kotlin's compiler 🥲

#

But yeah creating a compiler sounds nice, and bytecode is actually fairly easy

cinder flare
#

well let's hope

#

also can you even write a compiler in Go?

#

like has it ever been done?

ocean quartz
#

Yeah pretty sure you can write a compiler in language

obtuse gale
#

Friendly reminder that sql is turing complete

cinder flare
#

in any language?

#

wtf

#

wait what's Rust's compiler written in

#

C++?

obtuse gale
#

Likely a mix of asm, c and cpp

ocean quartz
#

Yeah, you can even write a Java compiler written in Java

cinder flare
#

haha

#

but who compiles that Java hmMM?

obtuse gale
#

Ur mum

cinder flare
#

who wrote the first compiler

#

oh wait everyone writes C compilers from scratch right

#

then you just build off of that

obtuse gale
#

but how do you make the assembler

cinder flare
#

oh shit

#

punch cards baby

#

oh wait those are too high level

#

soldering bits

obtuse gale
#

Do we need to bring turing back from the grave?

#

Smh

ocean quartz
#

It's written in Kotlin lol

cinder flare
#

how does that even work

#

also it is super cool that that is on github

ocean quartz
#

Actually pretty cool that it's written in itself

cinder flare
#

oh damn it really is

obtuse gale
#

Yeah it kinda snowballs from a tiny speck 👀

ocean quartz
#

You can even start writing it in Kotlin then write it in itself after

cinder flare
#

well I'm thinking not JVM based

#

after further consideration

#

so maybe C then Aello

ocean quartz
#

Do you have any idea of syntax already?

cinder flare
#

well im looking at rust and kotlin and picking stuff I like and don't like in my head lol

#

I'm gonna need to write a formal language specification aren't I lol

ocean quartz
#

Yup
I was gonna write a language too but got bored
My syntax was going to be like
let variable: Type and let mut variable: Type

cinder flare
#

ew the Rust way

#

I am a big big fan of var and val

#

and of course type inference

#

though I am quite a fan of Rust's list of primitives

#

they make more sense than float -> double and byte -> short -> int -> long

obtuse gale
#

int8_t 👀

cinder flare
#

I dunno what that is

#

but like int32 and uint32 make sense

obtuse gale
#

uint64_t 👀

cinder flare
#

what's the _t part

obtuse gale
#

type

cinder flare
#

seems redundant

ocean quartz
#

Dude i hated that on Rust, the whole u32, i64 stuff is so annoying

cinder flare
#

i mean that's how C++ and stuff do it

#

though I do like words

#

hmmmm

#

things to consider

obtuse gale
cinder flare
#

why is it even _t though

#

that serves no purpose

cinder flare
obtuse gale
#

Aello Enhancement Proposal #1
No specific numerical types, just number 😌

cinder flare
#

but for new people I feel like i32 makes a lot more sense than arbitrarily knowing that an integer is 32 bits

#

well also does anyone have any reason I should keep short in

obtuse gale
#

Nah

cinder flare
#

cause honestly we just need byte, int, and long

ocean quartz
#

Nah i think int and stuff is pretty intuitive

cinder flare
#

Dude Matt talk to my classmates in Intro to Java

ocean quartz
#

But then again i learned types even before learning C

cinder flare
#

they missed like 10 questions on the final because of that

obtuse gale
#

Loll

cinder flare
#

i should really read some language specs shouldn't I

obtuse gale
#

Myes

cinder flare
#

and probably expose myself to like every language I can so I can steal the best parts of their syntax lol

#

alright time to open a Go tutorial lmao

#

hey wait I'm writing the Aello compiler in Aello aren't I

obtuse gale
#

But you gotta compile it in something lower level at first

ocean quartz
#

Looks at lisps and gets scared of parenthesis so makes language like python

obtuse gale
#

You have to make it run

cinder flare
#

yeah C

#

I've used a bit of Lisp before lol

#

I did the whole MIT 50 Scheme thing

prisma wave
cinder flare
#

okay well I still don't like it

#

bm what are your thoughts on Go

steel heart
#

I heard krypton is good

prisma wave
#

Would be better with generics

cinder flare
#

it can't do generics?

#

dang I thought that was just an accepted part of every lang

#

it's weird how some stuff is missing

prisma wave
#

i think the reasoning was that it was supposed to be a very simple language

#

generics are complicated

cinder flare
#

well yeah you can make the skill floor easy

prisma wave
#

But on the bright side, they're getting added soon

cinder flare
#

but at least give a little high skill ceiling!

#

I don't know that much complicated stuff about Java but I still can use a ton of stuff and make things work!

#

but there's like a million more things I don't know how to use and stuff

#

hmmm

#

at least they're getting added soon that's good

prisma wave
#

yea

#

I mean generics as a concept are pretty complicated, unless you strip them down to the absolute basics

cinder flare
#

I don't really see what's so complicated about them honestly

prisma wave
#

And go's type system is also kinda weird so

cinder flare
#

you just know that this class instance is a Stringy boi

prisma wave
#

Contravariance and covariance make me want to die

#

So confusing

cinder flare
#

i am scared of what those mean

prisma wave
#

super and extends in java

#

in/out in kotlin

cinder flare
#

oh I understand super and extends I think

#

unless there's more to the story lol

prisma wave
#

idk

#

it's scary

cinder flare
#

dude every single language has its own word for declaring a function

#

java just has privacy, return type, name, brackets

#

go has func

#

kotlin has fun

#

rust has fn

#

python has def

#

js has function

#

hey wait go uses clang?

#

does it transpile to C code first then?

#

oh go has the same type system as rust lmao

#

just with a few more letters

hot hull
#

So satisfying being able to do this

cinder flare
#

what, becoming bri ish?

old wyvern
#

Gradle plugins are forward compatible right?

prisma wave
prisma wave
cinder flare
#

like it also has int8, int16, int32, int64, float32, float64

prisma wave
#

oh yeah

cinder flare
#

should Aello use LLVM?

#

maybe it could be good

old wyvern
#

If possible yes, if you can compile it to llvm bytecode, it can transform it into a wider range of platforms

cinder flare
#

okay very cool

jovial warren
#

is LLVM a good idea?

#

I mean, it has VM in the name

old wyvern
#

Its not a VM

cinder flare
#

gcc vs clang is like maven vs gradle

jovial warren
#

ah right

quiet depot
#

what's aello

cinder flare
#

my lang

quiet depot
#

like jello but with an a

#

for some reason

cinder flare
#

nio

#

no

quiet depot
#

like cello but with an a

#

for some reason

cinder flare
#

no

old wyvern
#

Like trello but with an a

cinder flare
#

yes

#

buuuu

jovial warren
#

oh btw, I was thinking yesterday about the proxy I want to make, Aurora, and I thought: I’ve decided that I’m not going to write it in Kotlin

cinder flare
#

huh

jovial warren
#

I might try out a mix of Rust and C

quiet depot
#

bardy

cinder flare
#

oooh

quiet depot
#

consider a different name

jovial warren
#

why?

quiet depot
#

one of the paper mods is called aurora

old wyvern
#

Bardy, be a man, use haskell

jovial warren
#

yeah so what

quiet depot
#

not nice to use people's names

#

even if that wasn't your intention

jovial warren
#

it’s just a name

old wyvern
#

Call it Borealis

cinder flare
#

that's why my lang is called Aello lol, nobody else has used that afaik

old wyvern
jovial warren
#

it’s like saying if someone else in the world is called Callum then that’s an insult to me because I have the same name lol

cinder flare
#

😦

quiet depot
#

not at all

#

aurora is known in the minecraft community

cinder flare
#

ive never heard of it

quiet depot
#

them

cinder flare
#

its a fabric mod?

quiet depot
#

it's a person

old wyvern
#

jk

#

xD

cinder flare
#

oh a paper moderator

jovial warren
#

if she ever asks me then I’ll make it clear it wasn’t named after her

cinder flare
#

lmao

quiet depot
#

that's not the point

cinder flare
#

or say it was

jovial warren
#

it’s just a name pig

cinder flare
#

in honor of her beauty

quiet depot
#

the point is to do the community a favour by avoiding ambiguity

cinder flare
#

even though you've never seen her

jovial warren
#

fine

quiet depot
#

like borealis is fine

jovial warren
#

gimme a new name and I will

cinder flare
#

but to be fair Aurora is a popular real life name

quiet depot
#

sure it's the name of the teleporting aperture ship

jovial warren
#

might not be bad pig

quiet depot
#

but that's a completely different community, whereas aurora is part of this community

old wyvern
#

Name it Yugi

#

ez

cinder flare
#

it is similar to Callum honestly

#

yeah you can name it Star if you want

jovial warren
#

I plan for the proxy to run both standalone on the client and server’s end, and as a plugin

#

and I want to make bindings for a lot of languages

cinder flare
#

how would it run on the client end

old wyvern
#

Try : Neos

jovial warren
#

same way geyser does star

cinder flare
#

i don't know how geyser does

jovial warren
#

oh also, I want it to be able to talk to clients, servers, and other instances of itself as well, so you can chain them together if you want

#

proxy to proxy communication likely wouldn’t use the Minecraft protocol

old wyvern
#

Why not?

jovial warren
#

I’d use my own protocol to make a proxy easier to distinguish from a server or client

old wyvern
#

Proxies should be chainable by simply being a proxy to player packets

jovial warren
#

and also, I wanna design a faster protocol

old wyvern
#

Follow protocols that bungeecord and other proxies suppourt so people can actually interlink rather than be stuck with a single thing

#

Compat is a big deal

jovial warren
#

yeah ik

#

to other proxies and servers/clients, the proxy will be just like them

old wyvern
quiet depot
#

nah

#

just forward some of the packets

jovial warren
#

also, I’m forwarding all the packets

old wyvern
#

Then where does the new protocol come in?

jovial warren
#

and firing events for them

jovial warren
quiet depot
#

nah

jovial warren
#

meaning you can send messages between Krypton and the proxy on something that isn’t whacky horrible plugin messaging

quiet depot
#

make a completely new protocol

#

not tcp or udp

#

brand new

old wyvern
#

xD

jovial warren
#

lol

cinder flare
#

bardp

old wyvern
#

Bom Connection Protocol!

quiet depot
#

what about

old wyvern
#

BomCP

quiet depot
#

connection protocol

old wyvern
#

Bomp

jovial warren
#

BCP, sounds good to me

old wyvern
#

thats fire pig

#

do it bard

jovial warren
#

lol

old wyvern
#

CP

jovial warren
#

stop taking the piss

old wyvern
#

Also make it randomly throw Xi Jimping quotes

#

CommunismException: <Quote>

jovial warren
#

I actually want to have something to replace plugin messaging

old wyvern
#

Yes, Xi is great for messaging

#

He'll shoot the messenger if they dont deliver

#

forget udp

jovial warren
old wyvern
#

😌

jovial warren
#

yeah I might use RabbitMQ or Redis

#

but I’ll add stuff in the API to make them much easier to use

#

and I’ll add fallbacks if they fail (disabled but plugin tries to use it)

quiet depot
#

will there be an easily accessible destroy everything button

jovial warren
#

if you want that, you got it

quiet depot
#

yes

jovial warren
#

remember I gotta write this all in Rust and C though lol

old wyvern
#

Use C++ please

jovial warren
#

I ain’t using Java or Kotlin here

old wyvern
#

Thanks

quiet depot
#

why c++ yugi

old wyvern
#

&&&&*****

#

****^&^&^&^&^&

jovial warren
#

might make some JNI bindings though for it

quiet depot
#

c is faster than c++ right?

old wyvern
old wyvern
#

also, I was joking xD

jovial warren
old wyvern
#

Not a fan of C++

#

stdlib hell

quiet depot
jovial warren
#

@obtuse gale

old wyvern
#

Oh last I read, they're pretty much the same speed

#

Use Go bard

jovial warren
#

LilyPad already did that and nobody uses that

old wyvern
#

Easy to learn, Blazing fast compile time, good performance, Safe pointers

quiet depot
#

because very few people know about it

old wyvern
#

mhm

jovial warren
#

also, I want an excuse to learn low level stuff lol

quiet depot
#

coelho basically fell off the face of the earth

#

he used to be active, but I haven't seen a message from him in ages

jovial warren
#

I’ve heard nothing but great things about Rust

old wyvern
#

Go ahead

quiet depot
#

ye

jovial warren
#

and C is something I’ve wanted to learn for a while

quiet depot
#

Go ahead

old wyvern
#

🙂

jovial warren
#

yes I got it the first time

quiet depot
#

my philosophy

jovial warren
#

hahahaha

quiet depot
#

don't write important things in languages you're learning

old wyvern
#

Might be nice to learn

#

But dont expect it to be great

#

You'll struggle to get things to compile a lot

#

xD

#

But ofc,

#

once its built

quiet depot
#

once it's built you'll rewrite the whole thing because of how bad it is

old wyvern
#

True

jovial warren
#

if I write good C code then it could potentially be the fastest Minecraft proxy ever made

old wyvern
#

But I almost ussually end up rewrite everything anyway

#

Like I'm already on my 3rd rewrite on the chat app I've been working on

hot hull
#

If you aren't rewritting stuff you're doing something wrong

#

prove me wrong

jovial warren
#

lol

old wyvern
#

I might end up moving to single activity architecture because otherwise normal java patterns become to weird on there

jovial warren
#

anyway, can you call C code from Rust?

old wyvern
#

Yes

jovial warren
#

isn’t it all just the same machine code anyway?

old wyvern
#

But then rust is no longer safe

old wyvern
#

Dont rely on interop if possible

jovial warren
#

yeah I only wanna use C for really low-level network stuff where I can optimise the shit out of it

old wyvern
#

You already have unsafe rust if you wanna go far enough, but people dont even recommend using that

jovial warren
#

so tl;dr I should just use Rust and Rust only then

old wyvern
#

In both cases, you loose some benefit of using rust

jovial warren
#

I might even get as low-level as hand writing assembly lol

old wyvern
#

I assume you're joking at this point

jovial warren
#

idk

old wyvern
#

Then you need a psychiatrist

quiet depot
#

language won't fix the design choices that limit our player counts on proxies

jovial warren
#

I want this to interact with native IO libraries

old wyvern
#

IO

#

Use haskell

#

🙂

jovial warren
#

is Haskell even fast?

old wyvern
#

Yes

#

As fast as Java

quiet depot
#

didn't someone say it was slower than java

lunar cypress
#

Have you checked whether there are already java bindings to those libraries

old wyvern
#

Pretty much equally fast piggy

quiet depot
#

okie

jovial warren
#

I want to be able to interact directly with io_uring, Epoll and KQueue if present

old wyvern
#

Forget it, rewrite the network layer

#

Introduce BardyNet

jovial warren
#

lol

lunar cypress
jovial warren
#

layer 0 😎

#

Netty has stuff for native IO

old wyvern
#

Just Buffers afaik

#

right?

#

That too only in Netty 4

jovial warren
#

no, channels and event loops too

old wyvern
#

because they had huge memory leaks in 3

jovial warren
#

they have custom channels and event loops for the native IO stuff

old wyvern
jovial warren
#

so it might be worth using Java/Kotlin anyway and just ditching something like Rust?

#

is that what you’re saying?

old wyvern
#

No?

jovial warren
#

Johnny asked if there’s Java bindings already for stuff

old wyvern
#

Im saying dont decide on going into micro optimizations before you have a working model

jovial warren
#

yeah true

old wyvern
#

Just use Rust without any weird hacks first

jovial warren
#

I started to design it yesterday a bit

old wyvern
#

Might be a good project for you to learn it

#

But keep in mind, you'll most likely want to rewrite it later

jovial warren
#

client session <-> client bridge <-> proxy bridge <-> server bridge <-> server session

#

and the proxy bridge can also bridge to other proxy bridges

#

it’s designed around BungeeCord, though there may be a better way

#

BungeeCord uses an upstream and downstream bridge to hook the client and server respectively

hot hull
#

stop looking at ew stuff Bardy

jovial warren
#

yeah maybe that’s a good idea

#

I need to somehow bridge the client and the server in a way that’s abstract enough that I can also bridge other proxies and allow for the server to not be configured to support the proxy (for standalone usage) and the other way around too (so it can run server side)

old wyvern
#

Remake minecraft

jovial warren
#

so making a bridge between the client and server connection and the proxy bridge means the proxy bridge doesn’t know that it’s necessarily talking to a client or a server, or even another proxy in the loop

#

or am I just going completely crazy here

jovial warren
#

I want to at least beat BungeeCord on performance, not sure about beating Velocity but that’s much harder anyway because of how much better it is

old wyvern
#

Its reponsibility is just to forward packets

jovial warren
#

true

old wyvern
#

Might wanna finish krypton before you start on this

jovial warren
#

yeah I will

old wyvern
#

Or else you'll end up with multiple unfinished projects that you'll burn out on

jovial warren
#

I mean, I need to learn another language to start on this anyway

jovial warren
#

not like my GitHub is filled with unfinished projects or anything

#

I think I should add block breaking next, which will be a pain in the ass since it requires me to send the block state changes in the ticking

#

unless I can come up with a better idea maybe

old wyvern
#

Queue it

jovial warren
#

can you make a queue that has a wait between the time you can pop the head?

old wyvern
#

What?

jovial warren
#

like so you have to wait x time before you can get the head again after retrieving it?

old wyvern
#

Probably

jovial warren
#

since they aren’t sent every tick

old wyvern
#

but why?

#

I mean tbh it might be better to send it on ticks

jovial warren
#

the time between when you send one varies from block to block

old wyvern
#

Otherwise you might lose out on reponsiveness

jovial warren
#

yeah probably

#

yeah

old wyvern
#

boi

#

wat

lunar cypress
#

what do you want to use rust for now?

#

If you want to interface with C libraries and JNI it's pointless

#

just complicates things

jovial warren
#

No I want to make an MC proxy in it

#

I said I could add JNI bindings for the API

old wyvern
#

hmm

prisma wave
#

🥶

old wyvern
#

@prisma wave You have a central proxy right?

jovial warren
old wyvern
#

Is it supposed to download the html document of the selected path when you try to visit one of the repos? xD

jovial warren
#

Because it sucks ass

old wyvern
#

It its pretty much doing that for me atm

prisma wave
#

odd

old wyvern
#

Thats the correct path right?

pale shell
#

ew maven

prisma wave
#

uh

pale shell
#

bm what on earth is your nick

prisma wave
#

Well that doesn't point to a jar / pom so maybe not

prisma wave
pale shell
#

lemme guess... new lang?

prisma wave
#

No

old wyvern
#

Oh so it needs to specifically target the jarfile?

prisma wave
#

probably

#

Or a pom

old wyvern
#

is that what you did in pdm?

#

I was assuming it would just fetch a "directory" xD

prisma wave
prisma wave
prisma wave
old wyvern
#

ok full url says file not found

#

lmao

#

or not

#

the issues seems to be after a incorrect path was requested

#

otherwise it provides the correct file

pale shell
#

bm why you not in school smh

#

wtf

#

i didn't put that emoji

old wyvern
#

sure you didnt

pale shell
#

i didnt tho

#

i'm not in USA

prisma wave
pale shell
#

why you on discord then

prisma wave
prisma wave
old wyvern
#

ah

pale shell
#

arent you in a classroom

lunar cypress
#

shitposting on helpchat > paying attention in class

old wyvern
#

ahhh wait

#

I found the issue

#

So for proxied content I need to use direct path without the snapshot/repository directories

#

weird

pale shell
#

bm has left? pog

old wyvern
#

"Listening to Spotify"

pale shell
#

no he gone

#

he's finally learning

old wyvern
pale shell
#

he's learning why Haskell is so overrated kekw

hot hull
#

It's not suicide if you yell parkour

prisma wave
#

How can it be overrated if there's about 4 people here that use it

pale shell
#

that's more than 1

#

1 too many kekw

prisma wave
#

Anyone know of a java / kotlin 2d graphics library that was made in the past century

#

For generating stuff similar to Barry level up images

#

Graphics2D is way too much effort

pale shell
prisma wave
#

probably

pale shell
#

depends on eachothers age

#

i mean... your almost same age so

old wyvern
#

🤦‍♂️

pale shell
#

LOL

prisma wave
#

you should be in school

pale shell
#

you should be in school bm

#

smh

prisma wave
old wyvern
#

try this

prisma wave
#

Ah I saw that, isn't it more for scientific stuff?

pale shell
old wyvern
#

Yea it also includes image processing stuff but seems to also have stuff to simply just draw onto an image

prisma wave
#

Hmm okay

#

I'll have a look

old wyvern
lunar cypress
#

bro

old wyvern
#

Wasnt dev den bot in f# tho bm?

prisma wave
#

It was

#

Not anymore

#

Structuring stuff functionally is hard

old wyvern
#

ah lol

prisma wave
#

Decided to use a language that wouldn't make me feel guilty for a mutable map

old wyvern
#

lol

pale shell
#

someone i'm talking to wants to learn to code, should I tell them to install eclipse?

old wyvern
#

Sure

lunar cypress
#

Give them intellij right away

#

why eclipse

lunar cypress
prisma wave
#

🙄

heady birch
#

Plus you can easily integrate with state of the art Swing applications!

oblique heath
#

swing 😏

heady birch
#

Lol

prisma wave
lunar cypress
#

In Clojure it is 😌

#

python + lisp at the speed of c
according to doom emacs

onyx loom
#

are u in the phillippines

#

if not, then its probably illegal

#

i cant tell if ur trolling sometimes

pale shell
#

i gotta teach someone basic coding should i tell them to use maven? kekwhat

lunar cypress
#

they don't need a build tool for their first steps

pale shell
#

what about the throwing them in the deep end thonking

pale shell
onyx loom
#

beautiful

pale shell
#

thanks!

steel heart
#

You’ve received a free ticket to hell

jovial warren
#

It has to either be done manually or formatted afterwards

#

Also, when on top

#

Wait a minute...

#

That switch is useless

#

Just do player.sendMessage(newLevel.toString())

pale shell
#

Unless you know a way to have like 30+ different things happening at different levels then switch it is.

jovial warren
#

At least chain the cases

#
case 1: case 2: case 3: case 4: case 5:
    player.sendMessage(newLevel.toString())
#

If this was Kotlin you would be able to use a range check in a when

#

E.g. ```kotlin
when (newLevel) {
in 1..5 -> player.sendMessage(newLevel.toString())
}

#

Also, 30+ different cases screams god method @pale shell

#

You sure your method isn't handling too many edge cases?

pale shell
#

edge cases @jovial warren ?

#

I don't know how else I'd do it though.

hot hull
#

what the

#

you're sending the message everytime, why even have a switch lol

pale shell
#

that's a debug message

#

it's gonna have a different thing there

#

I want it so at level 1 you get this at level 4 you get this at level 8 you get this so every 4 levels you get the next thing

hot hull
#

Please don't tell me you're hardcoding messages

pale shell
#

whatcha mean

#

for debug atm i got it like that

prisma wave
#

We do a little trolling

pale shell
#

?

obtuse gale
#

anyone good builder?

#

maybe need some help lol

pale shell
#

tnt will fix anything

jovial warren
jovial warren
#

ah PHP

#

of course

pale shell
oak raft
#

nooo

#

why would you think that

pale shell
#

I don't know, just the gif is trying to hint at something

oak raft
#

🙈 what are u talking about

pale shell
#

idk it looks like it was built in eclipse also eyesshaking

steel heart
#

Spigot devs when they find kotlin KEKW

obtuse gale
#

Void? 🤢

#

I mean even I who has barely used any kotlin know you "return" Unit lmao

steel heart
#

yeah lol

obtuse gale
#

also can we just appreciate the incredible naming convention?

#

ccfg & cfg lol

half harness
#

ohhhhhhhhhhhhhh jeez

steel heart
#

Lol didn’t see that nice one

half harness
#

ive seen people put even for listeners before 🥲

#

apparently adding one more letter is too much

hot hull
forest pecan
#

he private messaged me that same problem

#

im like

#

😬

steel heart
#

Lol wait

#

Fr

forest pecan
#

Yeah

#

he is on the Server Team

#

and Forum Team

steel heart
#

I guess he’s more competent in java

half harness
#

lol

forest pecan
#

Mhm

#

lol

hot hull
#

You'd hope Conclure

steel heart
#

@forest pecan does he have gh?

#

Let’s check him out frosty

forest pecan
#

Lol

#

i will send

#

wait

prisma wave
half harness
#

BM

#

AM*

forest pecan
#

thats like returning Void

#

right

half harness
#

nullable void

prisma wave
#

Yo

forest pecan
#

nullable void lol

half harness
hot hull
half harness
#

bm

#

tutorial

#

matt

obtuse gale
half harness
#

mfcmd

forest pecan
#

lol

forest pecan
obtuse gale
#

pulse: dude's github

#

emily: betterjails 🥲

half harness
#

hot hull
half harness
#

oh bm

#

r u there

#

aw

#

😦

pale shell
#

this is gonna be horrible code I swear cryingpepe

obtuse gale
# half harness

been ""working"" on a rewrite for my (only published) plugin for almost a year now :kekw:

#

I barely have anything loll

half harness
#

oh boy

hot hull
#

Fefo your name Emily or?

pale shell
#

I wanna show ya'll the code I got but i'm scared it'll be roasted af but idk any other way to do it

obtuse gale
hot hull
#

Odin, best way to improve is if we bully you

pale shell
#

the issue is, I've googled it and i don't know the way to do it the way I wanna do it

forest pecan
#

waiting for reply

obtuse gale
pale shell
#

I can't think of a reasonable way to optimize this

obtuse gale
#

wat

pale shell
#

i wanna do something at those levels right?

#

so every 4 levels upgrade the player

obtuse gale
#

hm is it just me or when hovering (not clicking) your name it says "copied" instead of "click to copy"? thonking (without copying ofc)

#

that

forest pecan
#

he says he has a github

hot hull
#
enum LevelRange {
  ONE(1, 3),
  TWO(3, 6),
  THREE(6, 9);
}

switch (range) {
  case ONE:
  etc
}

🤡

forest pecan
#

and its for a network

#

but he wont tell me

pale shell
#

you can do that frosty??

ocean quartz
pale shell
#

Can you seriously do that??

hot hull
#

I mean you'd need a method to check the actual value but yes

half harness
quiet depot
#

works as expected for me fefo

steel heart
#

Pulse uh maybe he’s afraid of getting bullied

half harness
#

player specific tab completions 🥺

steel heart
#

Or like criticized

obtuse gale
#

odd

pale shell
#

how hard would that be to implement frosty

pale shell
#

you can't store numbers like that btw

obtuse gale
#

UltraPrisonPlayerRankUpEvent
you need more words such as Premium, Deluxe, Api, Extended, Impl, etc

pale shell
#

it won't let you put it like that

hot hull
#
LevelRange getRangeByLevel(final int level) {
  LevelRange result = ONE;
   
  for (final LevelRange range : values()) {
    if (range.low < level && range.high >= level) {
      result = range;
      break;
    }  
  }

  return result;
}
pale shell
#

what you mean fefo

hot hull
#

cleaner if you invert the check, but yes

ocean quartz
pale shell
#

I didn't write the rankup event i'm hooking into

obtuse gale
#

oh lol

hot hull
#

Fefo, effort to write that in discord

obtuse gale
#

facts

pale shell
#

oh shit can i do this in kotlin??

hot hull
#

bruh

#

I will slap you

pale shell
#

KOTLINN

obtuse gale
#

what does this have to do with kt lol

pale shell
#

I might do this in kotlin

obtuse gale
#

you mean the ranges shit?

pale shell
#

ye

obtuse gale
#

1..3? yeah

pale shell
#

thats dope

obtuse gale
#

Java 15 switch expressions 🥺

hot hull
#

Is the entire plugin in kotlin?

#

If not then what a waste to use kotlin for that

pale shell
#

I've got 4 classes so far kekw

#

i'd put kotlin in for 1 method

hot hull
#

🤡

#

but like you can do this easily in java

#

so such a waste

pale shell
#

i mean... its cleaner in kotlin

hot hull
#

Not really

#

Lemme give you a full class example, and you'll see you don't really lose much

steel heart
#

Kotlin infers too much in my opinion but it’s ofc subjective

ocean quartz
#

You can enforce strict mode

jovial warren
#

there’s explicit API mode that requires explicit visibility and return types

steel heart
#

well yeah I can ofc declare the types but then it kinda removes somewhat of kotlins uniqueness compared to java

#

so just java :]

#

tho krypton fire

jovial warren
onyx loom
#

i never knew kotlins only advantage is that it has type inference

ocean quartz
#

Still better to type val name: String = "name" than public final String name = "name";

hot hull
#

https://paste.helpch.at/atebajaced.java

public void something(final int level) {
  switch (LevelRange.getRangeForLevel(level)) {
    case ONE -> { /* do stuff */ }
    case TWO -> { /* do stuff */ }
    default -> { /* how the fuck*/ }
  }
}

@pale shell

half harness
jovial warren
#

you can do that?

ocean quartz
#

Java 15

half harness
#

oh wait

pale shell
#

frosty, I can't put the values in the int

half harness
#

it has ->

jovial warren
#

guess Java is improving

half harness
#

isn't that the same thing as :?

pale shell
#

like I can't do ONE(1, 3)

hot hull
#

Well did you make the enum constructor

ocean quartz
half harness
hot hull
#

That's the range btw Odin

jovial warren
#

yeah switches require everything be constant

onyx loom
#

not in java 15 afaik

hot hull
#

so 0, 4; 4, 9 etc

ocean quartz
#

: is "pass through" requiring a break, -> isn't

#

@half harness

half harness
#

oh

pale shell
#

frosty i can't do that?

hot hull
#

wdym?

jovial warren
pale shell
#

Expected 0 arguments but found 2

half harness
#

kotlin when has no break 😩

onyx loom
#

good

jovial warren
#

also, thinking of Java, how’s that world generator going?

hot hull
#

I mean have you created your enum properly

ocean quartz
#

Kotlin when is a different beast

jovial warren
half harness
#

what

pale shell
#

I thought it would just accept it, so no my bad.

half harness
#

break prevents arrow code

onyx loom
#

#

what lol

jovial warren
#

no

half harness
#

look

jovial warren
#

when stops when it matches a case

jovial warren
#

it doesn’t do a switch and continue trying to match subsequent cases

pale shell
#

oh i think i got it now ty

onyx loom
#

imagine saying when bad because u cant break from it 🤡

ocean quartz
#

Kekw

jovial warren
#

when > switch

onyx loom
#

this is definitely a you problem dkim

hot hull
#

Bardy, shut

obtuse gale
#

I mean with switches you can fallthrough which is something you sometimes want to do

ocean quartz
#

It's true though Frosty

jovial warren
#

Frosty not being able to accept facts smh

onyx loom
#

sure fefo

hot hull
#

I mean yea I agree, but still, shut

half harness
#

instead of kt when ("a") { "a" -> { if (!something) { break } if (!somethingelse) { break } somethinga() } "b" -> { if (!something) { break } if (!somethingelse) { break } somethingb() } } doAfter() you have to do ```kt
when ("a") {
"a" -> {
if (something) {
if (somethingelse) {
somethinga()
}
}
}
"b" -> {
if (something) {
if (somethingelse) {
somethingb()
}
}
}
}
doAfter()

ocean quartz
#

Lmao

obtuse gale
#

AAAH

pale shell
#

arrow code omg

onyx loom
#

but most of the time in my cases ive found the fall through to be worse

hot hull
#

:sadge:

jovial warren
#

omg dkim u stupid

ocean quartz
#

Dkim, you writing bad Kotlin code has nothing to do with the language

onyx loom
#

😂 😂 😂

half harness
#

how do i avoid it ;-;

half harness
pale shell
#

what the fuck is a stopship in java

half harness
onyx loom
#

just think for a second

#

think about it real hard

half harness
#

...

#

make a new function?

#

._.

#

i dont want to have a billion functions just for a when statement

prisma wave
#

FUNCTIONS

half harness
#

bm

ocean quartz
#

Oh no

#

You woke him up

half harness
#

nvm

prisma wave
#

yes

#

I do

#

What do they think

#

Stop deleting messages Now

#

tell me

#

Right now

half harness
#

🤔

prisma wave
#

I'm not scizophdeenic

#

Sscizophrenic

#

Schizophrenic

half harness
#

lol

#

well

#

we were just talking

#

casually

#

right

#

and then i pasted this:

#
import Data.Char

p :: String -> IO ()
p ip = putStrLn $ fc ip
main = do {
  r;
}
r :: IO ()
r = do
  p . g $ m gl
gl :: [String]
gl = c "ghi" (-6)
g :: [String] -> String
g = head . tail
f :: [String] -> [String]
f i = filter (v) i
fc :: String -> String
fc st = filter (ic) st
ic :: Char -> Bool
ic ch = ch /= '\''
m :: [String] -> [String]
m i = f $ fmap (\x -> x) i
v :: String -> Bool
v _ = True
c :: String -> Int -> [String]
c i cf = (\x -> show $ chr $ ord x + cf) <$> i
#

one hour ago

#

this was the response

#

haskell scared them away

prisma wave
#

lmao

#

I mean

#

That code could make me speechless

half harness
#

lol

#

also

#

ignore my nick

#

thanks 🙂

ocean quartz
pale shell
#

yo frosty, if you see this thanks for helping with the code

half harness
#

idk

ocean quartz
#

Then what is the issue lol

half harness
#

i dont have random code with me

prisma wave
#

when(x) < case x of

half harness
#

what

pale shell
#

btw guys, is this the best way to do it?

    ONE(1, 3),
    TWO(4, 7),
    THREE(8, 11);

Or do I need like

    ONE(1, 3),
    TWO(3, 8),
    THREE(8, 11);

?

hot hull
#

However you like