#dev-general

1 messages · Page 390 of 1

jovial warren
#

so you could technically run a Minecraft server at port 443 and you wouldn't need to open your firewall? or what?

#

I swear HTTP ports are open by default

pale shell
quiet depot
#

no bardy

prisma wave
#

no

cinder flare
#

no bardy

jovial warren
#

how do web sockets differ from standard connections?

pale shell
#

i skipped to the exact time for you

cinder flare
#

ignore that

prisma wave
#

afaik websockets are just web requests, except it doesn't close the connection

cinder flare
#

it's because it maintains the connection

#

instead of pinging the server directly

#

it sends messages to discord

#

then discord sends it along to you

jovial warren
#

yeah but it has to make an initial connection

pale shell
#

bm, do you have an airport on your small island

cinder flare
#

yeah it's called initializing your bot

prisma wave
#

whereas an mc server requires clients to open a connection to you

jovial warren
#

and receiving data back from Discord would require an open port

quiet depot
#

yes but it’s client to server

#

no

cinder flare
#

no

pale shell
#

you do?!

jovial warren
#

ah right

pale shell
#

what?!

prisma wave
#

receiving html doesn't require port 80 to be open

jovial warren
#

so because the client makes the request, the firewall makes an exception for that outbound request and creates a sort of path through

prisma wave
#

same principle with websockets

cinder flare
#

bardy do you have any idea what a connection is

pale shell
#

i can't find it bm

#

fake news

cinder flare
#

like, you know how you connect to discord?

quiet depot
#

bm do websockets stay open? I thought they were basically identical to http lel

cinder flare
#

it's literally the exact same thing

quiet depot
#

just a diff name

jovial warren
#

yeah, you send an HTTP request with identify iirc

pale shell
#

found it

lunar cypress
#

What is websocket :S

jovial warren
#

yeah web sockets stay open

pale shell
#

that's a tiny airport lol

cinder flare
#

it's like how uPnP works

prisma wave
jovial warren
#

I think I'm just misunderstanding how firewalls work

prisma wave
#

just for like amateurs usually

pale shell
#

the ATC room is someones shed

cinder flare
#

if you send out traffic it assigns a port to it on your PC, if it receives stuff back on that same port, it knows it's because you requested it and it allows it through

jovial warren
#

firewalls are only to protect incoming traffic from getting to you right?

#

like when something just randomly sends a request to you

cinder flare
#

firewalls can go both ways

pale shell
#

but if you wanted to fly somewhere you gotta come over to mainland?

jovial warren
#

yeah ik

#

but most firewalls allow all outbound traffic

#

or at least, most home firewalls

cinder flare
#

but yes, unless you forward a port, its function is to stop uninitiated requests

jovial warren
#

ah right

pale shell
#

damn

#

rough

jovial warren
#

so established connections are mostly always allowed?

prisma wave
#

u get used to it

pale shell
#

ever thought of just coming to main land?

cinder flare
#

they are always allowed, unless explicitly forbidden

pale shell
#

that's a genuine question btw

jovial warren
#

would make sense, since I've seen IPTables always be set up to allow ESTABLISHED connections inbound

prisma wave
#

no point atm

cinder flare
#

every single thing you do on a computer via networking involves making a connection and allowing a response through your router

pale shell
#

uni?!

#

bm uni? pog

cinder flare
jovial warren
cinder flare
#

yet you didn't know how firewalls did? lmao

prisma wave
jovial warren
#

I wasn't 100% sure, since I've never investigated firewalls

pale shell
#

wtf usa?

cinder flare
#

wait mainland UK

jovial warren
#

I just setup a firewall and it just works

cinder flare
#

are you not in Uk now?

prisma wave
#

i am

jovial warren
pale shell
#

he's in the middle of the sea

jovial warren
#

called the channel islands

cinder flare
#

oh like Jersey?

jovial warren
#

because they are in the channel lol

#

nah he's from the Isle of Wight iirc

cinder flare
#

oh shit

pale shell
#

the middle of the sea

cinder flare
#

i know a guy from jersey

prisma wave
#

dont associate me with jersey (🤢)

prisma wave
pale shell
#

bm lives in jersey?

prisma wave
#

absolutely not

pale shell
#

what's up with jersey?

jovial warren
#

doesn't the Isle of Wight technically count as a channel island?

cinder flare
jovial warren
#

since it's in the channel

#

and it's an island

#

lol

jovial warren
cinder flare
#

wtf that's sick

cinder flare
#

I mean so do I

jovial warren
#

I don't get paid for it, but I do it

cinder flare
#

but like, very nice to find a fellow boi

prisma wave
#

yeah it's too close to the mainland i think

#

channel islands are closer to france

cinder flare
prisma wave
#

perhaps

jovial warren
#

I'm not one of these companies that provides "pro sysadmins" or whatever for some stupidly overpriced amount

cinder flare
#

what uni???

prisma wave
#

no idea

jovial warren
#

considering how easy it is to do system administration

cinder flare
#

none at all?

prisma wave
#

the only one in america i know is MIT and harvard

pale shell
#

open uni?

#

bm, don't go uni in america

#

UK has better uni's

cinder flare
#

bm wanna be my roommate next semester

onyx loom
#

isle of wight still classes as mainland afaik

cinder flare
#

we got cheap tuition

prisma wave
prisma wave
pale shell
#

imagine having roommates

prisma wave
#

Working in america sounds more fun

pale shell
#

no its not

cinder flare
#

it kinda slaps

pale shell
#

trust me

onyx loom
#

usa bad tho

cinder flare
#

and with your accent, imagine the praise!

prisma wave
#

That is true

pale shell
#

bm, the only reason I wanna live in usa is for the heat

cinder flare
#

and for escaping brexit?

pale shell
#

i ignore brexit now

cinder flare
#

lmao

#

prices go brrrrr ⏫

pale shell
#

I swear when i was in america i heard 🔫 in the middle of the night

cinder flare
#

well you were in the wrong part of america then

#

come to a rich area

pale shell
#

florida fingerguns

cinder flare
#

yep

jovial warren
#

not that far fetched tbh Odin

cinder flare
#

that'd do it

jovial warren
#

yep

#

Florida haha

pale shell
#

I just told myself it's just fireworks :/

jovial warren
#

never been there, but all I've heard about that place is shit

onyx loom
#

usa 3 mass shooting in the past 2 weeks 🥲

cinder flare
#

don't take Florida as the example

pale shell
#

I loved florida (of which I've seen)

prisma wave
#

florida crazy people

pale shell
#

crazy people???

#

my home country then

cinder flare
prisma wave
#

California seems alright

cinder flare
#

like germany ain't the same as finland

onyx loom
#

what

cinder flare
#

Utah ain't the same as Florida

jovial warren
#

yeah if you don't see a crazy Florida man doing something ridiculous on the front cover of the daily newspaper Odin, something is wrong lol

cinder flare
#

Im saying states are basically different countries

pale shell
#

if only you guys knew the crazy side of me

cinder flare
#

we just happen to have a federal government we can't leave @brexit

jovial warren
#

from what I've seen

cinder flare
#

yes that's very true

jovial warren
#

only in Florida™️

pale shell
cinder flare
#

Florida has very permissive laws regarding sharing of arrest information

pale shell
#

keeps up with what he's doing

prisma wave
onyx loom
#

😁

cinder flare
pale shell
#

why do i feel like bm is a florida man

jovial warren
#

guess what's currently up and running btw Star

cinder flare
#

uhhh

jovial warren
cinder flare
#

my will to live?>

#

no that can't be it

#

oooh

jovial warren
#

may or may not be raining at night time but whatever lol

cinder flare
#

hooo I love rain

pale shell
cinder flare
#

this is perfect

prisma wave
onyx loom
#

🥲

cinder flare
jovial warren
pale shell
#

oh

jovial warren
#

boot up 1.16.5

pale shell
#

you didn't say that

#

1.8? thonking

jovial warren
#

it's the official Krypton test server

#

screw 1.8

cinder flare
#

do you uh... know what Krypton is? lmao

pale shell
#

I'm on 1.16.4

jovial warren
#

Krypton only supports 1.16.5 anyway

#

try that actually

prisma wave
jovial warren
#

should still work with 1.16.4

prisma wave
#

He's gonna say the line

onyx loom
#

.4 works i think

pale shell
#

what is Krypton

#

say the line say the line

onyx loom
#

i think i joined with that version ladt time

prisma wave
#

.5 doesn't have any server side changes I think

#

It was just bugfixes for the client

onyx loom
#

ye

cinder flare
#

no permissions

pale shell
#

LOL

#

who did that

cinder flare
#

/stop complete

#

hehehehehe

jovial warren
#

ffs why does that still work

#

I swear I put a perm on that

cinder flare
#

im just making sure ❤️

jovial warren
#

yeah you gotta have krypton.command.stop for that

cinder flare
#

obv not

onyx loom
#

do u? 🙃

cinder flare
#

unless you made me an admin 😌

jovial warren
#

there is no perms plugin

#

nor built-in perms system

cinder flare
#

oh not even a shoddy built in one?

#

lmao

#

but it just defaults to allow instead of deny?

onyx loom
#

LP or nothing

#

who needs built in perm system?

cinder flare
#

yeah bro can you strike a deal with your best friend Lucko and integrate LP automatically

#

cause every server needs a permissions plugin

#

might as well make it default eh?

oak coyote
#

Not every server needs one

#

Just larger servers

#

A small SMP doesn’t need one

cinder flare
#

then you just ignore it]

#

much like the default permissions in spigot

oak coyote
#

But it might make me waste like 100mb of my dedicated wam and like rreeeee

cinder flare
#

not if it's not doing anything lol

#

im sure the default perms take up some wam

cinder flare
#

damn bardy's alive

#

only took a few years

jovial warren
#

you know I was the one who made LuckPerms work on Krypton right?

#

lucko had nothing to do with it

cinder flare
#

I presumed so, but you'd need his permission to make it default, no?

jovial warren
#

wdym default?

#

it's not integrated, it's still a separate plugin

pale shell
#

How do you add the kotlin folder into your project if it's not there at first?

jovial warren
#

it's just the only permissions plugin that works on the platform

jovial warren
#

kinda asked for that ngl

cinder flare
#

yeah I was suggesting integration

pale shell
#

I mean... it normally comes up with a different color

#

never seen that before

onyx loom
cinder flare
#

as soon as I get back on Krypton

#

smh

jovial warren
#

ffs

#

fixed the issue with permissions

#
private fun dispatchPermissionCheck(sender: Sender, permission: String?): PermissionCheckResult {
    val event = PermissionCheckEvent(sender, permission, true) // last param is if the sender has the permission
    server.eventBus.call(event)
    return event.result
}
```very nice that
#

I am the literal definition of stupid

cinder flare
#

awe nice

jovial warren
#

well, 0.16.2 is gonna be a small update

#

also fixed fastutil exclusions in this update (reducing JAR size from ~18 MB to ~15)

cinder flare
#

wots fastutil

pale shell
#

It's fastutil

cinder flare
#

wow tysm

pale shell
#

anytime

jovial warren
#

fastutil is, as the name suggests, a fast utilities library

#

it's one of the fastest extensions to the Java collections framework there is

#

added it to make StateIndexHolder work properly lol

#

and because it's rapid

prisma wave
#

doesn't come close to Haskell list performance though

jovial warren
#

and we'll likely need it in the future for stuff

cinder flare
#

okay I shall look into this FastUtil

#

and it's not required to be shaded?

pale shell
#

haskell slow?

prisma wave
#

Haskell fast

#

Considering

jovial warren
#

it is required to be shaded

cinder flare
#

then wtf does exclusiosn mean

jovial warren
#

as of like 8.0.4 or something, it's finally split into modules

#

all of the stuff combined is over 23 MB

#

that's how massive this is

#

but core is only 5 MB now

#

and I can shrink that down by excluding some of the packages from being shaded

cinder flare
#

oh I see

#

it adds type-specific implementations?

#

god damn

jovial warren
#

yeah

cinder flare
#

what's the advantage of that?

jovial warren
#

no (un)boxing either

cinder flare
#

that sounds like a disadvantage

jovial warren
#

it removes the overhead of converting between primitives and boxed types

prisma wave
#

I think haskell's performance is roughly in between java and c

jovial warren
#

no more having integer maps that use Integer that you use as int, requiring it to be unboxed at runtime

cinder flare
#

oh I see it allows you to use not capital bois

#

that makes more sense

prisma wave
jovial warren
#

^

cinder flare
#

stupid OOP

#

ruining everything

prisma wave
#

if nothing else there'd be a noticeable memory difference with large collections

cinder flare
#

well yeah you gotta create all the boilerplate for those objects

jovial warren
#

not sure yet whether I should expose fastutil to the API or not

cinder flare
#

why not?

jovial warren
#

well, two reasons

cinder flare
#

let your plugin makers have a fast boi

jovial warren
#
  1. only used on the backend
  2. my exclusions could mean that plugins could use say Double2ObjectMap and it not appear at runtime, since it's excluded by shadowJar
cinder flare
#

oh shit I see

prisma wave
#

don't

cinder flare
#

you'd only have like a few

#

yeah definitely don't

prisma wave
#

implementation detail

jovial warren
#

yeah that's what I was thinking

#

also, the API is designed in a way that works for any server

#

e.g. you could make a vanilla implementation of the API

#

and the comments suggest nothing about the implementation either, just what you should expect from the implementation

stuck harbor
#

hehe API

#

API on an APU

jovial warren
#

lol

#

I mean, the API has its core dependencies of course, like stdlib, coroutines, serialization, Adventure, Brigadier and the Log4J API

cinder flare
#

look at this guy

#

appropriating Brigadier

stuck harbor
#

stdlib

#

we need to rewrite the standard libraries in kotlin

jovial warren
#

lol

stuck harbor
#

🤌

jovial warren
#

the stdlib is written in Kotlin

stuck harbor
#

shhhhh

#

I said haxe

prisma wave
#

Portsmouth

onyx loom
#

shithole

prisma wave
#

Portsmouth isn't that bad

onyx loom
#

idk ive never been i dont think

pale shell
#

you there bm?

half harness
#

time to meet bm

pale shell
#

ok you close enough bm

#

you're 2 hours away

prisma wave
#

no

#

Portsmouth is in the distance

pale shell
#

?

prisma wave
#

Can u see the tower

pale shell
#

no i mean from where i'm at

onyx loom
#

ye

prisma wave
#

Ik

#

I mean I'm not there

#

But u can see it pretty well

pale shell
#

you live in portsmouth kaliber?

onyx loom
#

no lol

pale shell
#

ok good

onyx loom
#

i wish

cinder flare
#

the whole gang lives in portsmouth wdym

onyx loom
#

literally anywhere would be better than birmingha,

#

except liverpool

prisma wave
#

🥲

cinder flare
#

you live in birmingham!

#

amazing

pale shell
#

on a serious note now

onyx loom
#

not alabama

pale shell
#

what's the odds of someone here living in my city

cinder flare
#

yeah england I presume

onyx loom
#

what city

#

if its london pretty high

pale shell
#

is there a member count thing

prisma wave
#

england is my city

onyx loom
#

🤨

cinder flare
#

city is my england

onyx loom
#

who said that again

#

it was either jake paul or someone like matty b

prisma wave
#

it was one of the twats in its everyday bro

#

nick crompton or something

pale shell
#

there's a 4457:5000 chance someone in this server lives in my city

#

shit

prisma wave
#

🧐

onyx loom
pale shell
#

i ain't self doxing

prisma wave
#

england

pale shell
#

almost everyone knows it

steel heart
#

kotlin and maven lol

onyx loom
#

im not quite sure thats doxing

#

but sure

prisma wave
#

nobody here is gonna dox you

pale shell
#

i've been doxed from here before

prisma wave
#

are u sure

pale shell
#

yes

#

someone mentioned where i was at

lunar cypress
#

xXMinecraftLPXx doxed you just based on the city you live in

onyx loom
#

😂

prisma wave
#

😳

lunar cypress
#

That's unfortunate

pale shell
#

they sent a pic of my house

lunar cypress
#

Yikes

prisma wave
#

I hear they only need to know your country now!

pale shell
#

why you think i got a pistol next to me?

#

yeah, i'm that worried for my family.

onyx loom
#

no comment

prisma wave
pale shell
#

you never know what people will do

lunar cypress
#

Bro if you're for real you should probably get that person removed from this server

pale shell
#

well it happened a while ago so idk if they still here

#

and they change there name every 2 weeks almost

cinder flare
#

and that kids is why you never join a random server

prisma wave
#

i bet it was bardy

#

Oh ok

#

Hello there

sly sonnet
#

so uh

pale shell
steel heart
half harness
pale shell
#

it's taking ages to go through

lunar cypress
#

Hmm lives in england... changes their name every week.... hmm

#

Bm I'm afraid youre a suspect

pale shell
#

they should just let it go through and take it down

prisma wave
#

oh god

#

you got me

onyx loom
#

would u like to explain urself

prisma wave
#

No I would not

pale shell
#

legit out of shuffle

prisma wave
#

classic

jovial warren
#

public record Person(String name, int age) {} okay I never knew records looked like that

#

that's literally a direct rip from Kotlin lol

obtuse gale
#

isnt that a good thing?

jovial warren
#

yeah it is

#

also, when your C native code finally works properly because you followed a guide and generated the .h file using javac . -h MyClass.java like you were meant to lol

#

all they need to do now is make that constructor syntax an option for regular classes lol

cinder flare
#

mmm I love header files

#

it's the best part of C/C++

prisma wave
lunar cypress
#

hi

jovial warren
#

I mean, requiring {} is still kinda annoying

#

but the future for Java looks promising

prisma wave
onyx loom
prisma wave
#

no var

#

I don't think there's any other real difference

onyx loom
#

o

jovial warren
#

also, is it just me or does final var just feel wrong

onyx loom
#

extremely wrong

jovial warren
#

like the name var implies it is variable

onyx loom
#

cursed

jovial warren
#

but then final makes it non-variable, or immutable

onyx loom
#

its just because ur used to kotlin tho ig

jovial warren
#

nah, just in general

prisma wave
#

let mutable 🥴

jovial warren
#

var means variable

#

and the name variable itself implies mutability

#

you know what I mean?

onyx loom
#

ye

prisma wave
#

meh

jovial warren
#

I mean, sure, it's better than nothing

#

but it just kinda makes limited sense imo

#

also, Java scoped keywords when xD

#

context-based keywords

#

whatever you want to call them lol

onyx loom
#

hm?

prisma wave
#

wot

#

oh like kotlin has

#

meh

jovial warren
#

e.g. data in Kotlin will only be interpreted as a keyword if it's applied as a modifier of a class

onyx loom
#

example?

#

oh right

prisma wave
#

val data = 3

jovial warren
#

that'll compile

prisma wave
#

really not that big a deal

jovial warren
#

but if you do final String volatile = "Callum"; for example, that won't

#

or any other keyword

#

javac is so primitive lol

lunar cypress
#

This has nothing to do with javac

jovial warren
#

how

prisma wave
jovial warren
#

it's javac that interprets volatile there as a keyword

stuck harbor
#

must've missed the memo

#

java bad

lunar cypress
#

javac is the compiler implementation, it's implemented according to the java language specification

jovial warren
#

ah right

#

so it's Oracle then

lunar cypress
#

And personally I don't think this is a bad thing

jovial warren
#

I think it's a bit stupid how some very underused keywords still apply everywhere

prisma wave
#

but I regularly name my variables volatile!

jovial warren
#

that was just an example BM

lunar cypress
#

making everything context based convolutes and increases the complexity of the grammar of a language

jovial warren
#

what about using the name default for the name of your default parameter

#

e.g. ```java
public String getString(String path, String default)

stuck harbor
#

i name my variables urMumGaeButAlsoThisIsStonksBalList

jovial warren
#

lemme list a few underused keywords that really should be context-based

stuck harbor
#

thats obv a hashmap of UUID and Integers

lunar cypress
#

How many lexers have you implemented bardy

jovial warren
#

true

lunar cypress
#

I challenge you to implement one for kotlin and one for java

#

see what you enjoy more

prisma wave
#

kotlin is a very syntaxy language

jovial warren
#

wouldn't even know where to start lol

#

Kotlin's would be extremely painful

stuck harbor
#

sin-tax

prisma wave
#

sine tax

stuck harbor
#

cosine tax

jovial warren
#

also, why does const exist in Java

prisma wave
#

just in case

lunar cypress
#

The thing is those features are nice for you as an end user, but they're very complex and make it even more difficult than it already is to specify a formal grammar

jovial warren
#

that's actually a keyword according to the specification, but it's not used lol

prisma wave
#

yes

#

Probably because they were considering adding it

jovial warren
#

and goto

prisma wave
#

So didn't want people using it in their variable names

jovial warren
#

I guess that would be for jumps?

#

like you can do in assembly

#

e.g. jmp subroutine

prisma wave
#

goto 🥴

lunar cypress
#

Hopefully not like you can do in assembly

#

like in C rather

cinder flare
#

yeah I was gonna say, C has goto

#

it's real weird though and makes for some annoying to fix bugs

jovial warren
#

also, is it just me or are Java's access modifiers seriously fucked up

cinder flare
#

you don't like public, protected, and private?

jovial warren
#

like what does protected even mean these days, since I've seen it being used in classes with no implementations before

prisma wave
#

goto considered harmful 🥲

cinder flare
#

protected means package access only

lunar cypress
#

no it doesn't

cinder flare
#

wot

jovial warren
#

protected is meant to mean only subclasses can access it

lunar cypress
#

that's default visibility

cinder flare
#

ohhhh

prisma wave
#

Man I remember having 3 day long argument with Calin about why goto was almost always terrible design

jovial warren
#

package private means private to the current package

prisma wave
#

He just wouldn't get it

lunar cypress
#

protected is package and subtypes

jovial warren
#

like only accessible from the current package

#

wait what

#

lol

cinder flare
#

yeah no I definitely used protected for variables and subclasses before

#

just didn't know about classes

#

I've never used anything besides public class and class

lunar cypress
#

protected is a messed up visibility

cinder flare
#

I might just be fucking stupid though

jovial warren
#

also, internal is such a nice access modifier

lunar cypress
#

internal sucks too in its own ways

onyx loom
#

obligatory internal modifier mention here

jovial warren
#

internal means restricted to the current module iirc

#

not sure what Kotlin defines as a module though

#

but a Gradle module seems to count

prisma wave
#

kotlin has no flaws

jovial warren
#

neither are true

lunar cypress
#

🤐 👍

jovial warren
#

Java reflection is in a separate league to Kotlin reflection

#

Kotlin reflection sucks ass

cinder flare
#

can't you just use Java reflection tho

jovial warren
#

yes

cinder flare
#

ah okay so it's not too bad then

jovial warren
#

also, bit shifting 🥲

cinder flare
#

oh yeah it doesn't autopromote to integers lmao

jovial warren
#

infix precedence being completely different to operator precedence is a bitch

prisma wave
#

infixr

#

5

jovial warren
cinder flare
#

there is in Java

jovial warren
#

since there are no primitives in Kotlin

obtuse gale
#

Vouch

cinder flare
#

yeah that's like... what I said

jovial warren
#

you have to use toInt everywhere

#

also, bytes in Kotlin are really annoying

cinder flare
jovial warren
#

mainly because of the no promotions, but they also don't have bitwise operators, or a way to declare them in literals

cinder flare
#

okay, so how hard would it be for my boys at JetBrains to add autopromotion?

lunar cypress
#

they could have had bitwise operators though

prisma wave
#

haKjell good Kotli bad btw

jovial warren
cinder flare
#

fucklin what

jovial warren
#

which is stupid

#

especially for bit shifts

#

and low level stuff like that

cinder flare
#

why would it be intentional if they don't provide any substitute

lunar cypress
#

the substitute is just being explicit

jovial warren
#

I remember souza making an argument about how bitwise operators aren't important because they're not used very often

cinder flare
#

the #1 thing I show to people considering Kotlin is how much smaller a typical class is compared to java

jovial warren
#

which is BS, since they are used literally everywhere when it comes to networking and arrays and other low level stuff

#

like bit shifting is that much of a joke in Kotlin that I've considered writing it all in C and using JNI

#

or just writing it in Java and extending it in Kotlin

lunar cypress
#

bruh

jovial warren
#

like it's that bad

onyx loom
#

but then its not a minecraft server implementation written in Kotlin!

lunar cypress
#

just RIIR idiot

prisma wave
#

noooooooo

cinder flare
#

write in haskell then implement 🧠

jovial warren
#

shifts are meant to take precedence over & and |, but they often don't lol

jovial warren
lunar cypress
#

Rewrite It In Rust

cinder flare
#

bardy I want you to call up my boys at JetBrains and put in a formal complaint

prisma wave
#

imagine not being able to define custom operators and their precedence and associativity

jovial warren
#

fuck you too Johnny

#

bastard

lunar cypress
#

D:

cinder flare
#

D:

prisma wave
#

rust is more modern than kotlin could ever be

jovial warren
#

just kinda fed up with the "rewrite it in" jokes now

#

not funny anymore

onyx loom
#

idk man

jovial warren
#

way overused

lunar cypress
#

dude you just started it LMAO

onyx loom
#

its pretty funny to me

prisma wave
#

If your language doesn't have let somewhere in its syntax sit down

serene cave
#

hello

prisma wave
#

HI

onyx loom
#

hello sir

prisma wave
#

Good to see you up so early Mr trump

jovial warren
#

I could write some native stuff in a native language and call it from Kotlin code lol

cinder flare
serene cave
#

Good to see you type Brister of Mitten

lunar cypress
#

I've considered writing it all in C

just kinda fed up with the "rewrite it in" jokes now
the duality of man

jovial warren
#

like anything that uses arrays and bitwise operations could likely be done 100x better in C

serene cave
#

I have a fun fact

#

Who wants to hear it

cinder flare
#

are we all just gonna ignore my Clojure line 😭

onyx loom
#

yes

serene cave
#

Nobody wants a fun fact?

onyx loom
#

i do

serene cave
#

Ok

#

that's the fun fact

prisma wave
#

no it's not

onyx loom
#

damn thats crazy

cinder flare
#

nope

serene cave
#

Yeah it's crazy i know

cinder flare
#

this sounds like a horoscope

#

and from a former president!

prisma wave
#

based trump

serene cave
#

I have another one

#

another fun fact

#

oh no

pallid gale
#
- Don't post any sort of NSFW content.
cinder flare
#

👀

serene cave
#

sry

cinder flare
#

you have been smitten

pallid gale
#

Also, stay remotely on topic

onyx loom
#

whats the topic today mr funnycube

prisma wave
#

Mr trump what do you think of clojure

cinder flare
serene cave
#

Like always

onyx loom
#

ah nice

#

haskell simon peyton-jones

serene cave
#

Yes

prisma wave
#

I wonder what simon has to say about clojure

#

Good things I hope

onyx loom
#

wrong

lunar cypress
#

hasn't come through to his ivory tower yet

onyx loom
#

clojure on jvm = bad

serene cave
#

Cava

cinder flare
#

yeah wait what are my boy simon peyton-jones' thoughts on Java and the JVM? maybe even Kotlin?

onyx loom
#

terrible

#

wheres the functional programming to be seen in "java"

prisma wave
lunar cypress
#

he spits on these corporate languages

prisma wave
#

BiConsumerCurryingService

lunar cypress
onyx loom
#

🤨

serene cave
#

(DonaldTrump dt) => Donalod Trump

prisma wave
prisma wave
cinder flare
#

AbstractDonaldTrumpFactoryBuilderHelper

serene cave
#

(Monad m) => McDonald

prisma wave
#

my god

#

blessed

serene cave
#

strength is power

prisma wave
#

You are very strong mr trump

serene cave
#

I know

#

I 360 no scope ninja

cinder flare
#

does he still play Fortnite?

onyx loom
#

no idea

#

hes literally irrelevant now

cinder flare
#

nice

forest pecan
#

he's offline now

cinder flare
#

where does he even live now

compact perchBOT
#
Seems things are getting a bit off topic here.

Please either stick to the topic or move over to #off-topic

prisma wave
#

whoops

#

Rust clojure Haskell kotlin groovy f# scala trump

cinder flare
#

dude who even cares

prisma wave
#

Dw guys I got this

cinder flare
#

good cover bm

forest pecan
#

@mellow valley @serene cave

dawn hinge
#

@Joe Biden

prisma wave
#

🥲

cinder flare
#

@Barack Obama

#

oh shit wrong channel we're gonna get smited

lunar cypress
hot hull
#

Lmao Johnny

lunar cypress
prisma wave
#

lmfao

cinder flare
#

where's #developer-chat huh

hot hull
cinder flare
#

oh fuck

#

better make some projcets boys

prisma wave
#

you're not missing much

cinder flare
#

i wanna be part of the cool kids 😢

lunar cypress
#

Or you might get neglected and ignored

cinder flare
#

I already did!

jovial warren
#

"cool kids chat"

prisma wave
#

developer chat is incredibly dead

jovial warren
#

last message: 26/03/2021

hot hull
#

Almost as dead as my will to live

cinder flare
#

maybe it wouldn't be if I were there tho

prisma wave
#

maybe not

#

but the thing is

#

Clever people don't need help

cinder flare
#

I am quite the conversation starter

prisma wave
#

So they never ask for help there

jovial warren
#

yeah

cinder flare
#

well yeah but you can talk about your accomplishments!

#

imagine if Bardy showed off in a chat other than this one

#

the world would be a different place

#

god I wish I were considered a smart person

obtuse gale
cinder flare
#

back to the drawing board

prisma wave
obtuse gale
#
Accomplishments:
* 
jovial warren
prisma wave
hot hull
prisma wave
#

??

jovial warren
#

someone tell me what I should do next in Krypton pls lol

obtuse gale
#

delete it

#

lmao

jovial warren
#

thinking that block placing/breaking is a good idea

obtuse gale
#

I'm surprised you went to support add-ons before actually finishing it and making it work

jovial warren
#

yeah my priorities for this were upside down

ocean quartz
prisma wave
#

Luckperms more important than block placing

jovial warren
#

efe you're not even in the chat

hot hull
#

Matt, he has the channel ID

jovial warren
#

I can't ping you

#

ah that makes sense

hot hull
#

So it shows up blue

cinder flare
jovial warren
#

346972410282508299 ez channel ID

#

lol

jovial warren
cinder flare
#

bet bro

#

bet

jovial warren
#

will start working on placing/breaking now

#

gonna look at how vanilla handles breaking lol

prisma wave
#

i cannot express how annoying this fucking lil yachty sound pack is

jovial warren
#

actually, I have to add a few things before I add placement

ocean quartz
#

Oi don't talk shit on it, it's great

obtuse gale
#

oh nice

prisma wave
#

-1 🥲

obtuse gale
#

at least 1 new message since 1969

prisma wave
#

maybe more

cinder flare
ocean quartz
jovial warren
stuck harbor
ocean quartz
#

Mum landing

cinder flare
#

bro KSP slaps

stuck harbor
#

it does

#

but my brain too smol to handle

cinder flare
#

my brain too smol to handle plugins

#

yet here I am

stuck harbor
#

I'll go play A Short Hike instead

cinder flare
#

no Developer role in my hand

stuck harbor
#

plugins are easy

#

just make a bunch of classes

cinder flare
#

PHP developers curse the most understandable

stuck harbor
#

mmmm

#

we do be happy do

forest pecan
#

java is too verbose

stuck harbor
#

mmmmmm

forest pecan
#

i regret it

#

lol

steel heart
#

ok use haskell then

#
  • vim
stuck harbor
#

ok use F# + emacs then

forest pecan
#

yeah one second im going to switch to matlab

prisma wave
#

ive taught you well

cinder flare
#

vim lmao

forest pecan
#

/s

stuck harbor
#

haha matlab

#

blast from the past

lunar cypress
#

any tips for an emacs newbie iwan

forest pecan
#

switch

cinder flare
#

use vim

stuck harbor
lunar cypress
#

use vim
no ❤️

stuck harbor
#

all of them

cinder flare
#

my friend was talking to me about class registration and he was like "if I take this engineering coding class in matlab, will you help me?" and I was like "Ill have to help myself if we're talking matlab mate"

stuck harbor
#

hehe

#

matlab

#

matlab has too many

prisma wave
stuck harbor
#

y e s

lunar cypress
#

praise be to him

#

for he is our saviour

stuck harbor
#

Sunday is cleansing day

#

I must cleanse myself of OOP impurities

#

by doing some clojure

lunar cypress
stuck harbor
#

yeah

#

easier to remember than vim imo

prisma wave
#

What's even the point of emacs

stuck harbor
#

to be good

prisma wave
#

Like surely a dedicated web browser would be better

#

Etc

#

Seems like it violates the Unix philosophy

lunar cypress
#

what's plugins do you use iwan?

#

emacs is a replacement for unix

#

clearly

stuck harbor
#

well doom emacs has basically all I need

#

I do have some extras

cinder flare
#

emacs is big weird

#

everyone uses vim

stuck harbor
#

but vanilla doom is good enough in my experience

lunar cypress
#

isn't doom the vim-like one?

#

oh no that was spacemacs or something

stuck harbor
#

yeah spacemacs hurt

#

bidoof

jovial warren
#

also, just admire that class name lol

stuck harbor
#

hehe

#

new ClientboundPlayerInfoPacket i love packet names in mc

jovial warren
#

according to Mojang, a gamemode is responsible for holding data about the block that's currently being destroyed lol

#

what we know as a "gamemode" is actually GameType in the code, but all the field names with type GameType I've come across so far have been called gameMode

jade kraken
#

Consistency 100

steel heart
#

💯

jovial warren
#

gotta think of how I'm gonna do it in Krypton though lol

#

tempted to use a fixed size array for the player's inventory

#

or something else with a fixed size

#

might wanna use a custom class though, since I want to be able to differentiate between special slots and regular inventory slots

jade kraken
#

whats krypton?

stuck harbor
#

haha

jovial warren
#

Minecraft server from scratch

stuck harbor
#

sinful pleb

jovial warren
jade kraken
#

oh wait u made it

jovial warren
#

yeah

hot hull
#

Change your name idiot

jovial warren
#

and that yeah

stuck harbor
#

huh what

#

who name what

jovial warren
#

oh come on iwanio

#

who's name do you think

stuck harbor
#

the one called ᲼᲼?

jovial warren
#

yes

stuck harbor
#

i do like unicode squares

jovial warren
#

lol

jade kraken
#

there

stuck harbor
#

mmmm sql

#

sql ❤️

jovial warren
#

alright that's good enough I guess

#

right, gonna work on the inventory API lol

stuck harbor
#

hehehe inventory

jovial warren
#

since I kinda have to for block placing/breaking

#

trying to think how I should design inventories

#

and creation of them

stuck harbor
#

squares

jovial warren
#

either data classes or an InventoryManager lol

stuck harbor
#

like this bardy

jade kraken
#

array of item

jovial warren
#

iwanio I swear

jade kraken
#

why do they have dirt in slot 1

stuck harbor
#

ultimate positioning

jade kraken
#

that is not pro minecraft gaming

stuck harbor
#

i always have slot 5 in the hotbar empty

#

always

half harness
#

well its a dia pick

jade kraken
#

slot 1 is sword, 2 is pickaxe, 3 is axe, 4 is shovel

stuck harbor
#

6 is hoe

#

rest food

#

imo

jade kraken
#

well you need blocks

stuck harbor
#

no

jade kraken
#

oh ok

stuck harbor
#

sometimes i replace food with pots

half harness
#

slot 1 = sword

#

slot 2 = snowball

#

ez

jovial warren
#

why you lot wasting slots smh

#

slot 0 = sword

stuck harbor
#

sh

jade kraken
#

hotbar[0]

jovial warren
#

lol

stuck harbor
#

no

#

ew

#

yanderedev levels of bad design

#

create hotbar object :)))

jade kraken
#

if(i==1) {
i = 1;
}

stuck harbor
#

mm

jovial warren
#

right, thinking about inventories, should the functionality to append items to the first free slot in the inventory use plus or plusAssign?

#

just trying to think of which is more logical

#

(inventory + item vs inventory += item)

lunar cypress
#

plus assign for mutation

#

if you have to overload the operators

dusk roost
#

does anyone know what version of deluxechat is for 1.8.8 compatibility?

jovial warren
#

so you can use inventory[index] = item, inventory[index], inventory += item, etc.

compact perchBOT
#
Deluxechat - Version List
Spigot:

1.8.8
1.12.2
1.13.2
1.14.4
1.15.2
1.16.1

Version:

v1.16.0 - Latest
v1.16.0 - Latest
v1.16.0 - Latest
v1.16.0 - Latest
v1.16.0 - Latest
v1.16.0 - Latest

half harness
#

latest version

jovial warren
#

trying to think if this should be backed by an array or a collection

lunar cypress
#

idk, I'm not a big fan of overloading mathematical operators where they don't have a mathematical meaning

jovial warren
#

I'd like to be able to use indexing and property access syntax on these if I can

lunar cypress
#

but ig you'd be consistent with the std lib doing it on collections

jovial warren
#

yeah

cinder flare
#

well, an array would be wasted space for whatever slots are empty

#

but it would also be quick and convenient

#

so I'm not sure

jovial warren
#

might actually scrap adding items and just allow getting and setting

cinder flare
#

lmao

jovial warren
#

that would be the easiest for working with arrays

#

but that's where I'm torn

#

since I basically need a fixed size collection lol

#

or a collection that can only grow to X size

lunar cypress
#

so... an array

jovial warren
#

yes

#

but I need to be able to append and remove items as I please

cinder flare
#

possibly make a method that just puts them in whatever the first slot is numerical-wise?

jovial warren
#

yeah I was thinking that

cinder flare
#

and then you can work with each of the items nicely and slot stuff in when you don't care

jovial warren
#

I was just about to make a point about iterating over all the elements being slow, but inventories don't get bigger than like 56 slots anyway so that'll likely never be an issue

cinder flare
#

yeah especially in an array lol

jade kraken
#

what is an english

jovial warren
#

trying to think if I should throw an ArrayIndexOutOfBoundsException if the array is full for plusAssign

cinder flare
#

yeah what

regal gale
cinder flare
#

you should return null or something

lunar cypress
#

the user didn't access any index, so don't make them handle this

cinder flare
#

if there's no slot for a full inventory, return null as the slot assigned to the item

#

then it's an easy-peasy null check

jade kraken
#

or return the item

jovial warren
#

fair

cinder flare
#

well I presume he'd return the slot it was placed in...

jovial warren
#

I'll just return without doing anything then I guess

cinder flare
#

that would be more useful than the item they already have lmao

regal gale
#

Are you really gonna make a out-of bound row top inventory though...?

jovial warren
#

right, now should the inventory implementations be data classes in the API or in the server 🤔

#

I want an inventory API that doesn't suck lol

#

Bukkit.createInventory ain't gonna cut it

eternal compass
#

btw are you gonna write a totally custom API ontop of your server, or just have the internal server use the API?

jovial warren
#

somewhat based off of Bukkit but with absolutely 0 singleton access

eternal compass
#

I'm basically asking if you're gonna use an NMS type thing internally, or have it all through the API

jovial warren
#

I'm going to expose everything I deem necessary to the API, and if you want to optimise for specific use cases, I'll document the server and release that as a dependency, so you can just do what you do with NMS and depend on the server

jade kraken
#

kotlin

jovial warren
#

the API is Kotlin, but I've tested it in both

#

it's optimised for Kotlin though

eternal compass
#

cool

jovial warren
#

and the server end won't be really really terribly deobfuscated Minecraft server code either, since all of it is open-source lol

cinder flare
#

god I love open source

#

the day clip OS's all of his plugins is the day of our salvation

jade kraken
#

i wanna make so many things but then i realize that its already made

cinder flare
#

just make it, but better than the others!

jovial warren
#

should I allow contains checking with ItemType as well as with ItemStack or just with ItemStack?

#

actually this extends Iterable<ItemStack>, so you can use filter for that

cinder flare
#

look at you solving your own problems!

jovial warren
#

lol

#

right, time for an InventoryType enum lol

#

should I add a DOUBLE_CHEST entry? 🤔

jade kraken
#

y

#

es

jovial warren
oak raft
#

nah

#

ditch whatever project you're working on and help me make this horror game

jade kraken
#

while(player.isPlaying) {
player.scare()
}

oak raft
#

no this will be the best horror game ever made

jade kraken
#

scarier than roblox?

jovial warren
#

no more inventory BS that spawns projects like MF-GUI to fix the issues lol

#

you can create inventories of arbitrary size within the API 😎

jade kraken
#

how would that owrk

jovial warren
#

you create the object and show the inventory to the player

jade kraken
#

so if u made one of size 5 for example then what would happen

jovial warren
#

e.g. ```kotlin
val player = // some player

val inventory = CustomInventory(16, player, InventoryType.CHEST)
player.openInventory(inventory)

#

something like that

jade kraken
#

what happens if the size isnt a multiple of 9

jovial warren
#

gonna actually check if the client and/or the protocol require that or not

#

might create a way for you to change the slots per row or something

jade kraken
#

u could do something like fill the rest of the slots with unmovable black glass panes or something if thats required

jovial warren
#

I mean, doesn't the game itself support inventories with less than 9 slots?