#dev-general

1 messages · Page 331 of 1

hot hull
#

(This is for a flat world)

jovial warren
#

yeah you would provide it with that and it would give you something like this: ```
layers: {
{
height: 1,
block: "minecraft:bedrock"
},
{
height: 2,
block: "minecraft:dirt"
},
{
height: 1,
block: "minecraft:grass_block"
}
}

hot hull
#

yeye

jovial warren
#

actually it's a bit less YAML-like than that

hot hull
#

using json for it so yeah

frigid badge
#

ay SHA1 has been deprecated in openssh now

stuck harbor
#

mm

errant geyser
#

Bardy you were right, Caddy v2 is actually easier than v1

jovial warren
#

right, I'm downgrading Netty to 4.1.59.Final (from 5.0.0.Alpha2) because 5 has been discontinued and we getting some whack lol

#

fun 🙂

#

I think the only change is that channelRead0 is messageReceived in 5

#

also, I swear like rule #1 in the Enterprise™️ handbook is never use unstable software in production lol

errant geyser
#

Imagine not using unstable software in production

#

Got to keep you on your toes

jovial warren
#

can't be having it use NIO on Mac and throw an NPE on Linux though lol

onyx loom
#

we all love npes 🙂

errant geyser
#

just ignore the errors, jeez

jovial warren
#

yes, because I can just ignore errors that literally make the program stop running and exit

jovial warren
#

very clever katsumag

#

not

onyx loom
#

its user error if it crashes, trust me

errant geyser
#

^^

jovial warren
#
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by retrofit2.Platform (file:/C:/Users/callu/IdeaProjects/MineKraft/build/libs/Krypton-0.8.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of retrofit2.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
```ffs Retrofit lol
ocean quartz
half harness
#

WARNING: All illegal access operations will be denied in a future release
👀

errant geyser
half harness
#

what are illegal access operations?

obtuse gale
#

hopefully that helps

errant geyser
#

I've been doing it in 11 Fefo

half harness
#

-_-

old wyvern
#

Wow, ErLang is too pure. Forget taking IO, this isnt even running 🙂

hot hull
#

God minecraft did this in such an ugly way

#

my brain hurts

old wyvern
#

What happened frost?

stuck harbor
#

minecraft does everything in such an ugly way man

hot hull
#

Oh nothing just looking at these word settings, and honestly ew

old wyvern
#

lol

old wyvern
#

Just getting things setup

#

had an issue with running elixir at first

hot hull
#

Problem is anything I can think of that would be cleaner would also mean an ugly ass structure

errant geyser
#

What's ErLang/elixir?

prisma wave
#

A language / VM

old wyvern
#

I'd like to start with elixir on actually making shit

#

But

#

when even hello world isnt running

#

🙂

prisma wave
#

🥲

old wyvern
#

Seems to be an issue with it not even loading the module after compiling

stuck harbor
#

my ` key is really worn out

#

wut

old wyvern
#

Time to make another issue

errant geyser
stuck harbor
#

sadge

old wyvern
#

HTTP 666: Access Denied in Hell

stuck harbor
#

sadge

jovial warren
#

it also appears that Netty 4 doesn't automatically release buffers for you either

#

so you can get leaks where you haven't released an allocated buffer before it's garbage collection

#

or maybe netty 5 just deals with that internally

forest pecan
#

@hot hull stop copying me

hot hull
#

Pulse, heck out

ocean quartz
#

This again lmao

forest pecan
#

Who's Pulse

#

Is that your girlfriend

onyx loom
#

lets not

forest pecan
#

not what

onyx loom
#

its not even funny

forest pecan
#

whats funny

prisma wave
#

o frosty ur a booster now!!

forest pecan
#

Yeah

stuck harbor
#

did I get my multi spin?

#

thonking I dont recall

forest pecan
onyx loom
#

die

forest pecan
#

🖕

half harness
#

I have to remake a whole plugin for this server just because their plugin has a bug where it doesn't work with console commands 😭 (my plugin just executes a command)

forest pecan
#

let me guess

#

is it that shitty server owner

#

lol

half harness
#

🤔

#

who

#

the one i was talking about before?

forest pecan
#

the one you were talking about

#

yea

half harness
#

no it's not

#

hes not shitty ;-;

forest pecan
#

lmao

half harness
#

PULSE

#

i thought frosty got demoted lol

forest pecan
#

?

#

what do you mean

half harness
#

-_-

#

wow

forest pecan
#

like my new pfp

stuck harbor
#

very nice

forest pecan
half harness
#

basically, I made a plugin that prisons people if they do certain things.
The prison plugin has no API, so I just made it run the command from console.
The owner is blaming me that it doesn't work, so he's like "I paid you $15 to do that plugin (which I spent like 20+ hours on), so decompile this plugin and fix it."
Is this my fault?!

stuck harbor
#

tell them to fuck off, if they have paid already

half harness
#

So it's not my fault, right?

stuck harbor
#

or tell them to pay u a few hundred to make the prison api

stuck harbor
forest pecan
#

Whos the kid

half harness
#

I'm not saying

forest pecan
#

im going to dm him and punch him in the ass

#

dm me then

onyx loom
#

u can punch me in the ass

half harness
#

no

forest pecan
#

why not

stuck harbor
half harness
#

because i have op on that server lol

#

and i dont want to lose it

forest pecan
#

make a command block

#

to constantly set u op

#

and turn off command feedback

#

or make a backdoor

#

for the plugin to set u op

half harness
#

i dont want to be a backdoorer

forest pecan
#

lol

#

not a backdoor

#

xD

stuck harbor
#

make that prison api and put a backdoor in it

#

man

#

their fault for paying piss all

forest pecan
#

you gotta understand

#

when they pay u

#

gtfo

#

dont do revisions

#

take the money and run

#

lmao

half harness
#

lol this is the 2nd plugin i did, because he asked me again because i was their best dev 😤

forest pecan
#

after all, when they pay, it means

#

that they are satisfied

#

thats bad

#

if you are the best dev

#

very bad

#

you should be the worst dev or somewhere near the bottom of the dev team

half harness
#

O_O

forest pecan
#

thats when you know you are good position

half harness
#

y

forest pecan
#

look at it like a sports team

#

why would you want to carry a bunch of shitters

#

when you can challange yourself and get better

half harness
#

well he already knows im a "good" dev

forest pecan
#

then leave

half harness
#

but-

forest pecan
#

cause i dont think its worth your time

#

no buts

#

what

#

do you even play on the server

#

lmao

wary glade
#

I am trying to get player's name from UUID stored as string in a .yml file. I can get the string value of the UUID but can't get the playername from it. Can anyone help me?

forest pecan
#

and post code there

wary glade
#

oh okay

half harness
#

lol

forest pecan
#

thats easy to code

#

xD

#

make yourself invis

half harness
#

yeah, but the server has like 20+ ppl at any time

forest pecan
#

then spawn a drag with custom ai

#

eh

#

i still wouldnt care, 20+ isnt a lot either

#

considering you are the

half harness
#

I've accidentally got 2 ppl muted 😭

forest pecan
#

"head" dev

onyx loom
#

🤣

half harness
#

so this is new

forest pecan
#

well you cant choose random shit

#

this isnt good still

#

lol

gilded sleet
#

can someone really good and trustworthy help me make my server better

obtuse gale
#

no

gilded sleet
#

oh

forest pecan
#

lmao

gilded sleet
#

ok

forest pecan
#

hes just a mean kid

#

lol

gilded sleet
#

ok

#

lol

ocean quartz
#

Not the right channel though

half harness
gilded sleet
#

ok

half harness
#

although dont give them op right away

gilded sleet
#

ty

jovial warren
#

HAHAHAHA

#

BooleanSupplier wtf

onyx loom
#

oh my god

jovial warren
#

wtf is the point in a boolean supplier

prisma wave
#

To supply a Boolean

#

Obviously

stuck harbor
#

duh

stuck harbor
#

oh my

#

booleanfactory

jovial warren
#

lol

ocean quartz
lunar cypress
jovial warren
#

yeah but where would you use that?

lunar cypress
#

in the same places you use other functional interfaces, wdym?

jovial warren
#

I don't get the point in using a supplier that supplies a boolean instead of just using a boolean

prisma wave
#

because Suppliers are functions rather than values?

jovial warren
#

I guess

prisma wave
#

Most of the functional interfaces have primitive specialisations

jovial warren
#

news to me

static zealot
#

well ovh finally took my payment. time to see if they actually activated the vps or I have to wait some more

jovial warren
#

right, trying to think if I should add a config file next or not

jovial warren
obtuse gale
static zealot
#

yeah they are BBG

#

that's why I had to wait a day

obtuse gale
#

cuz, y'know, streams

jovial warren
#

I mean, that kinda is most primitives lol

static zealot
#

and its active. nice

prisma wave
lunar cypress
#

Others don't make a whole lot of sense

#

except maybe float

static zealot
#

and I have no fucking clue on how to use it

jovial warren
#

also, any recommendations for config file formats?

half harness
#

termius :))

static zealot
#

yeah. I have no clue how to use it :)))

prisma wave
#

toml

jovial warren
#

ew

#

termius bad

prisma wave
#

json

#

hocon

static zealot
#

xml

surreal quarry
#

terminus is terrible lol

prisma wave
#

cbor

static zealot
#

xml please

jovial warren
#

YAML?

surreal quarry
#

txt

jovial warren
#

ngl I kinda like YAML

surreal quarry
#

i like txt

static zealot
#

I like yaml as well

jovial warren
#

properties is nice, but idk whether kotlinx.serialization can deal with it

static zealot
#

I think yaml is very easy to read and use

#

for non experienced people

#

json is not that bad either but I think yaml is way easier to understand

prisma wave
#

Korm

jovial warren
#

no

prisma wave
#

yes

jovial warren
#

we ain't using Korm

prisma wave
#

y not

static zealot
#

is Putty good ?

prisma wave
#

meh

surreal quarry
#

why would you use putty lol

static zealot
#

what should I use then?

half harness
#

whats so bad abt termius

jovial warren
#
  1. because it's basically glorified NBT
  2. because it's made by Sxtanna
surreal quarry
#

isn't it like an ssh client

#

just use a terminal

static zealot
#

yeah I want to use it for my vps idk

#

oh cmd?

#

xD

#

I love cmd

surreal quarry
#

powershell, windows terminal

#

there are others lol

#

last time i used putty its interface was worse than cmd

static zealot
#

yeah but I got no idea how to use any of them

ocean quartz
#

Did someone say Korm?

static zealot
#

😢

jovial warren
#

lol

surreal quarry
#

and better interface

hot hull
#

Welcome to the KORM fields

surreal quarry
#

ssh user@ip

static zealot
#

no as in I don't know how to use any of them. including cmd

#

lmao

jovial warren
surreal quarry
#

then how are you gonna use a vps?

prisma wave
ocean quartz
jovial warren
#

true

#

nah I just don't really like it tbh

prisma wave
ocean quartz
#

Just because he's rude doesn't mean what he makes is bad

prisma wave
#

he wasnt even rude

#

most of the time

jovial warren
#

lol

#

I just don't really like it that much tbh

onyx loom
#

make ur own!

prisma wave
#

it's just json without the quotes

#

it's good

jovial warren
#

and I'd rather use something supported by kotlinx.serialization if I can

#

because kotlinx.serialization is fast, lightweight, and really nice to use

static zealot
surreal quarry
#

no i mean like if you don't understand using commands in a terminal window, a VPS isn't a good idea lol

#

putty doesn't eliminate commands

static zealot
#

I know

#

I'm not using putty

prisma wave
#

just do it in cmd or something

surreal quarry
#

^^

static zealot
#

I'm doing it in cmd

#

rn

prisma wave
#

yes

jovial warren
#

or Bitvise

ocean quartz
#

If you want a config language do hocon

prisma wave
#

now generate an ssh key and copy it over

#

Hocon is nice yeah

half harness
#

or use termius and just simply double click :))

frigid badge
#

implement korm for kotlinx.serialization

#

🙂

static zealot
#

yeah idk how to generate. but am looking up tutorials and stuff. time for pain

surreal quarry
#

ssh-keygen

prisma wave
#

ssh-keygen

#

spam enter

surreal quarry
#

ssh-copy-id

#

?

prisma wave
#

only on linux

jovial warren
#

I think I'm gonna use YAML tbh

surreal quarry
#

oh rip

jovial warren
#

also, ssh-keygen is a thing in cmd btw

prisma wave
#

on windows u just copy ~/.ssh/id_rsa.pub contents into ~/.ssh/authorized_keys

static zealot
#

right and what do I do with this key?

static zealot
#

lmao

jovial warren
#

give the server your public key

prisma wave
#

authorized_keys being on the server

surreal quarry
#

copy it to the vps into ~/.ssh/authorized_keys file

jovial warren
#

and keep your private key, well, private

prisma wave
#

so it knows which keys to accept

#

if you've never done this before you probably wanna use nano to edit files in cli

#

you can do nano path/to/file and it'll open a text based editor

#

or learn vim :))

surreal quarry
#

+1

#

vim good

stuck harbor
#

+1

#

vim very good

static zealot
#

I just realised I didn't even get an email with the credentials yet.

jovial warren
static zealot
#

but the vps is active tho

#

why wouldn't they send the email

stuck harbor
#

man

prisma wave
#

check spam

stuck harbor
#

just reset the password

static zealot
#

oh right

#

oh it is spam

#

again

prisma wave
#

lol

static zealot
#

all OVH mails are in spam

prisma wave
#

lmao

stuck harbor
#

man ovh

#

ffs

#

why

#

whyyyy

static zealot
#

well gmail

#

not ovh

#

xD

stuck harbor
#

there is a reason they are in spam blitz

#

its fekin' ovh

gilded sleet
#

No one has dmed me to help me with my server this is sad

hot hull
#

:get out:

gilded sleet
#

oh

#

ok then

#

um

#

goodbye?

gilded sleet
hot hull
#

Don't ping

prisma wave
#

lol

surreal quarry
#

dam they really left

#

good work

prisma wave
#

poor guy

surreal quarry
#

poor guy indeed

hot hull
#

Not really

static zealot
#

poor guy

#

Frosty you're the poor guy

obtuse gale
#

lmfao

#

they left their request lol

onyx loom
#

im sure someone will eventually message him ♥️

#

(not)

forest pecan
#

can someone kill me lmao

#

on my test server

#

xD

static zealot
#

oh

#

damn

#

I lost contact with the assassin

#

sorry

#

to late now

forest pecan
#

damn it

static zealot
#

I'll pay for your funerals

#

dw

forest pecan
#

🥲

obtuse gale
#

can someone kill me lmao

#

:MonkaS:

half harness
#

someone screenshot O_O

static zealot
half harness
#

oof

frigid badge
#

can literally copy it to your clipboard

static zealot
#

and how would I paste it into my vps? The thing is I've never actually really used cmd or any terminal really. I used putty a long long time ago. and even then I didn't really understand stuff xD.

static zealot
frigid badge
#

literally just copy it using your windows whatever to clipboard

#

then paste it in your terminal

static zealot
#

oh

prisma wave
#

ssh-copy-id only works on linux

#

maybe use WSL if you're lazy

#

echo key >> ~/.ssh/authorized_keys 🙂

jovial warren
#

oh also, anyone got any suggestions on how I should have the motd configuration be btw?

#

(the motd is a chat component)

hot hull
#

wdym how it should be?

jovial warren
#

like should I just use a string and default to white like MC does? should I allow you to type in raw JSON in text? should I create a format? etc.

obtuse gale
#

json components pog

jovial warren
#

oh also, I settled on a format btw

#

@hot hull you're gonna like this

#
# Krypton config version @version@ by BomBardyGamer

[server]
ip = "0.0.0.0" # The IP for the server to bind to. 0.0.0.0 means listen on all interfaces
port = 25565 # The port for the server to bind to. Defaults to 25565
online_mode = true
max_players = 20
compression_threshold = 256
use_native_transport = true

[status]
motd = "Krypton is a Minecraft server written in Kotlin!"

[world]
gamemode = "survival"
difficulty = "normal"
hardcore = false
view_distance = 10
```:)
hot hull
#

toml nice

errant geyser
#

actually looks fairly decent

jovial warren
#

gotta find something to deserialise it though

lunar cypress
#

I've used toml4j in the past

jovial warren
#

TOML4J only seems to support 0.4

obtuse gale
#

configurate-toml when 😩

jovial warren
#

there is a configurate-toml iirc

#

Luck made one

obtuse gale
#

you sure? :thonk:

#

there's for gson, yaml, hocon and xml I think

jovial warren
obtuse gale
#

o

#

but it's not in SpongePowered/Configurate :p

jovial warren
#

LuckPerms supports TOML for something iirc

obtuse gale
#

Well then uuh

#

use that lol

ocean quartz
#

Toml is weird

surreal quarry
#

is there a way to do persistent timers in java lol

hot hull
#

Save to file

#

Pog

surreal quarry
#

99% sure thats not possible

surreal quarry
#

a client wants a bunch of things to have expiration dates for a discord bot, and they are all like multiple hours or days even which means the bot could restart during that time. i can start new ones by reading saved db values, but i don't really want to do that if i can avoid it with persistance somehow lol

ocean quartz
#

Time deltas maybe
Save the timestamp of the start of the task then you don't lose the time

surreal quarry
#

yea thats what the current plan is

#

thanks

jovial warren
#

a Minecraft server I'm working on called Krypton

sudden cape
#

a custom server implementation?

jovial warren
#

yeah

sudden cape
#

that's gotta hurt a bit

jovial warren
#

oh trust me, it's already been very painful lol

#

but the feeling of it working is amazing, and I love this project

sudden cape
#

ooh kotlin interesting

jovial warren
#

yeah

sudden cape
#

i notice the absence of a tick loop

#

pogPause

jovial warren
#

tick loop?

onyx loom
#

u know what we need

sudden cape
#

server tick loop yes

onyx loom
#

a server implementation in F#

jovial warren
#

you talking about how the Notchian server has tick()?

sudden cape
#

yep yep

jovial warren
onyx loom
#

soon i will, but not now

#

will do it after we have an f# implementation 👍

jovial warren
#

yeah I haven't quite got to tick looping yet

#

atm, packets are handled by Netty and the server thread does fuck all lol

sudden cape
#

that's a good start

#

I've done it before and after that you kinda just start building on top

#

it's pretty fun just implementing features

jovial warren
#

it just goes: main thread -> coroutine on default dispatcher -> netty threads

sudden cape
#

if you want a tip use the minecraft wiki pretty extensively

#

for any feature you may want to implement

jovial warren
#

yeah I've already done that a shit ton lol

#

and #mcdevs on IRC when I inevitably get stuck or don't understand something fully lol

sudden cape
#

yeah

jovial warren
#

or the most likely reason: I haven't read it fully

ocean quartz
#

CIO > Netty

sudden cape
#

What's CIO?

jovial warren
#

never used CIO so gonna have to disagree there

ocean quartz
#

Coroutines IO

jovial warren
#

wait what?

sudden cape
#

Oh

#

Interesting

jovial warren
#

also, isn't CIO for Ktor?

sudden cape
#

I was gonna ask

#

I haven't heard of CIO being a jetbrains thing

ocean quartz
#

Yeah xD

jovial warren
#

yeah we don't use Ktor atm

#

I mean, we probably should've used Spring for this but ya know lol

#

Spring good

sudden cape
#

mmmheeehhhh

#

K.I.S.S

jovial warren
#

well, Spring has it's uses

sudden cape
#

it does but this isn't one of them

#

keep it simple, stupid, especially when working with a minecraft server implementation

jovial warren
#

Spring is designed for general purpose stuff that relies on it's high performance and reliability and doesn't care about size

sudden cape
#

or you get a notchian-like server that only a few people understand

#

yeeah spring is ok for web services but idk about general applications

jovial warren
#

Discord bots are really nice to use Spring for

ocean quartz
#

Overkill

jovial warren
#

and it's rapid (or at least, as fast as Lavalink can dispatch music lol)

#

but yeah, Minecraft servers are not an example of where Spring is necessary

#

I mean, the JAR used to actually be Spring size, since we were depending on fastutil, but we literally only used it once, so I removed it

#

currently, the JAR size is about 11 MB

sudden cape
jovial warren
#

it uses Netty all, which is 4.1 MB (probably the largest out of everything this thing depends on)

sudden cape
#

spring uses a fuck ton of memory

prisma wave
jovial warren
#

yeah if you've got the memory it's great

#

if you don't, well, then you're gonna be in for a rough time

sudden cape
#

yeah exactly

jovial warren
sudden cape
#

that's why i don't use spring unless i really need to kek

jovial warren
#

yeah

prisma wave
#

f# has all of the features of spring but 0MB of memory usage

sudden cape
#

rust server implementation

ocean quartz
#

Very overkill for a bot

sudden cape
#

feather-rs pogPause

jovial warren
prisma wave
onyx loom
#

cant believe the facts bardy

jovial warren
#

lol

prisma wave
#

in denial

jovial warren
#

"facts"

prisma wave
#

"how to do dependency injection in f#"
don't

jovial warren
#

oh also, I added support for Epoll and KQueue to Krypton as well, so it can perform better on Linux and Mac/FreeBSD, since they have native IO APIs

#

so it already runs pretty fast

#

NIO is decently fast as well, but Epoll and KQueue are native

#

also, atm, it seems to run slightly slower than the Notchian server I think

#

though it is 1.16.5 and the Notchian servers I've tested with have both been 1.12 lol

#

tell a lie, my local testing server is 1.16.5 iirc

sudden cape
#

and..

#

io_uring?

jovial warren
#

wat

sudden cape
#

io_uring

jovial warren
#

what's io_uring?

jovial warren
#

is it faster than Epoll?

sudden cape
#

yes

jovial warren
#

oh wow

#

will add support for it then

#

just gotta add it to the two when statements that choose the best loop group and channel class

sudden cape
#

only available in linux

#

so

#

check if it's available

jovial warren
#

a.k.a ```kotlin
private fun bestLoopGroup() = when {
Epoll.isAvailable() -> EpollEventLoopGroup()
KQueue.isAvailable() -> KQueueEventLoopGroup()
else -> NioEventLoopGroup()
}

private fun bestChannel(): Class<out ServerSocketChannel> = when {
    Epoll.isAvailable() -> EpollServerSocketChannel::class.java
    KQueue.isAvailable() -> KQueueServerSocketChannel::class.java
    else -> NioServerSocketChannel::class.java
}
sudden cape
#

yea just do that

jovial warren
#

those are the two current whens

sudden cape
#

add a case for IOUring

jovial warren
#

will just add IOUring.isAvailable() -> IOUringEventLoopGroup() I think

#

and the same for the best channel

#

and I'll put it at the top to prioritise it over Epoll

sudden cape
#

yep!

jovial warren
#

are io_uring, Epoll and KQueue the only native transports Netty supports?

#

oh btw, didn't Netty 5 get dropped?

sudden cape
#

and NIO

#

lol

#

yea netty 5 got dropped

jovial warren
#

yeah we recently switched to 4.1.59.Final due to issues with it using NIO on a Mac and throwing an NPE on Linux lol

sudden cape
#

yea no don't use netty 5

#

read the docs of netty

jovial warren
#

we were using Netty 5 for a while

sudden cape
#

they dropped it a while ago

jovial warren
#

since putting + as the version in Gradle will use the latest lol

errant geyser
#

How would you guys go about giving someone a key when they buy something through Stripe? We're thinking of emailing the generated key out to them, but like, how do we securely tell our auth server to generate a new key? Since it'd have to be public facing anyone could make a request with an email and get a key, or just create millions of keys and flood the db with garbage

jovial warren
#

I mean, renaming channelRead0 to messageReceived was a very good change

jovial warren
#

add an Authentication header and make them supply a token

errant geyser
sudden cape
#

hear me out

errant geyser
sudden cape
#

i think you can pass through headers with stripe

#

you shouldn't handle anything on your own

#

just invoke a callback

#

well, stripe will

jovial warren
#

actually, how about rate limiting?

#

that might work too

sudden cape
#

hold on i've got a project that uses stripe lemme see how I did this

jovial warren
#

5 keys every like 5 minutes per email maybe

errant geyser
#

That would work, but we still don't want randos making a shit load of keys until they get limited

sudden cape
#

yeah okay so

#

if you want to handle anything checkout

#

you can create a stripe session id

errant geyser
#

Basically, we just want:
Someone buys our thing using Stripe -> they get a key in an email -> that key gets stored on our auth server for later
But we can't figure out anything that wouldn't be abused, because we're not very smart.

sudden cape
#

oh

#

oh so you've got the buying thing handled

#

and how would that get abused?

#

you only send an email on callback

errant geyser
#

But then how would we make a request to store the key on our server without exposing something that could then get flooded with garbage keys

sudden cape
#

why are you making any request to store a key on your server

#

the client shouldn't make any requests besides buying on stripe

#

stripe will make the requests with a callback

errant geyser
#

Yeah, we want Stripe to handle that

sudden cape
#

it does

jovial warren
#

"we"? you sound like you're some business owner putting your project ideas to a community lol

errant geyser
#

You've lost me. How does them buying our thing put a key in a db on our server automatically? It uh, shouldn't

sudden cape
#

Nonono

#

let me help you out

#

player clicks buy from stripe -> invoke request that generates a stripe session id for them -> they use session id to checkout -> stripe invokes a callback on your server -> you check if the checkout was successful(the event contains the params needed) -> using the metadata you defined when generating a session id for the user, you get the user's email and send a key

errant geyser
errant geyser
sudden cape
#

it won't get flooded with anything if you do it properly

#

cause players won't know what to send

#

lemme send you the stripe docs on how to handle callbacks

jovial warren
sudden cape
#

yes

#

that's what that is

jovial warren
#

ah okay, just the way you said that made it sound like "wEll if PeoPlE dOnT kNOw HoW iT wOrKs tHeN HoW cAn tHeY uSe iT"

sudden cape
#

i can see how it could be misunderstood as that

jovial warren
#

which is security through obscurity

sudden cape
#

i meant to say they can't really fake the signature

jovial warren
#

yeah I get you now

sudden cape
#

so it won't go through

jovial warren
#

yeah

sudden cape
#

but yeah @errant geyser just check for a webhook signature

#

and you're a-ok

jovial warren
#

just ```kotlin
if (!token.isVerified) {
drop()
}

errant geyser
#

alright, thanks guys

jovial warren
#

yw

sudden cape
#

np

#

i actually see i didn't even do any signature checks on my thing either so i guess i gotta fix that too

#

monkaS

jovial warren
#

man why doesn't kotlinx.serialization support TOML yet smh

onyx loom
#

kotlinx.serialization bad

jovial warren
#

stfu

prisma wave
#

elara/serialization supports every language

jovial warren
#

nice "languafe" you got there

prisma wave
#

🙄

jovial warren
#

it's either that or I make my own kotlinx.serialization impl for TOML I guess

sudden cape
#

i can never get used to writing kotlin lmfao

#

i know it pretty well

#

but i just can't get used to writing it

jovial warren
#

lol

old wyvern
#

Yea it doesnt come as natural as elara does

#

😌

sudden cape
#

idk what elara is

half harness
#

a programming language

forest pecan
#

excuse me

#

this man is violating the law

#

lol

sudden cape
#

yeah i tend to use programming languages that can actually get me a job

half harness
#

what

sudden cape
#

tenor hates me

half harness
sudden cape
#

okay

#

yeah it hates me

forest pecan
#

Yeah it does

#

lol

half harness
#

u need tier 2+

jovial warren
#

Elara is a multi-paradigim functional programming language created by Brister Mitten lol

forest pecan
#

Holy shit my library actually loaded

#

it took 5 hours to debug

jovial warren
#

that barely functions and has a bunch of problems and key things missing

onyx loom
#

kekw

prisma wave
#

what problems?

onyx loom
#

hey! dont diss elara!

jovial warren
prisma wave
#

i dont see any problems

ocean quartz
prisma wave
#

🥲

jovial warren
onyx loom
#

🤣

prisma wave
#

checkmate

jovial warren
#

it was designed by BM iirc

errant geyser
#

Yeah after all that we've decided to go with Vault from HashiCorp instead, fml

onyx loom
#

employers value elara much more than any other language! its not even close!

old wyvern
sudden cape
old wyvern
#

Bm started it tho

errant geyser
sudden cape
#

OKAY

prisma wave
#

as far as im concerned, elara is fully functional

sudden cape
#

tenor hates me >:(

prisma wave
jovial warren
#

mostly

ocean quartz
prisma wave
#

i did the original design but it was a group effort after that

jovial warren
#

ah

#

by "group effort" you mean you and Yugi I guess

sudden cape
#

:(

jovial warren
#

since katsumag is useless at the best of times

zenith helm
#

can someone help me compile a kotlin project with as resources? I can't do this. I export the jar but it doesn't go with the resources

jovial warren
#

I'm kidding haha

sudden cape
#

well that sucks

onyx loom
#

now katsu crying in the corner

errant geyser
#

😭

old wyvern
#

#CancelBardy

prisma wave
jovial warren
#

you used to be part of my team, you're a nice guy and do actually do things, sometimes

prisma wave
#

ah yes, the purely functional language clojure

errant geyser
#

I'm suing you for emotional distress Bardy

jovial warren
errant geyser
#

For the tune of £0.69

quaint isle
#

Hey smart peeps, I want to get the last digit of a number I can use

number % 10

Is there a similarly short and efficient way to get the first digit of a number? (Given all numbers have let's say three digits)

zenith helm
#

@jovial warren can you tell me in private?

jovial warren
errant geyser
lunar cypress
jovial warren
jovial warren
errant geyser
#

RIP Prevarinite

old wyvern
#

You deleted the discord right?

jovial warren
#

yeah I yeeted the Discord

old wyvern
#

lol

jovial warren
#

the organisation is still a thing

#

but it's just not what I ever wanted it to be

sudden cape
#

these names are so weird

#

lol

#

Prevarinite

jovial warren
#

yeah that was my naming

sudden cape
#

what does it mean

jovial warren
#

it comes from my old favourite word, "Prevaricate"

old wyvern
#

Random*

errant geyser
#

I remember we were going to rewrite EzBlocks and then it just kinda died

jovial warren
#

Prevaricate - speak or act in an evasive way.

sudden cape
jovial warren
#

if anyone's up for it

#

BM's probably busy, but what about you Kaliber? Yugi? katsumag?

#

you were like the 3 active people in that org

ocean quartz
prisma wave
#

😟

errant geyser
#

I was going to attempt to make that lib for properly tracking statistics called PSL, but that never happened either

sudden cape
#

i might make a bedrock edition server implementation

#

🤔

errant geyser
#

good luck

old wyvern
prisma wave
#

ew bedrock

sudden cape
#

i like bedrock

#

some stuff could be better on it tho

#

the weird smoothness when you move your mouse

#

they gotta fix that

old wyvern
#

I dont think I did anything after the first commit on something

errant geyser
jovial warren
#

Yugi you were there lol

#

you were in the call quite often

#

helping out

old wyvern
#

Oh yea

quaint isle
old wyvern
#

Actually I think that was only once

jovial warren
#

I think Kaliber did the most for EZBlocks

old wyvern
#

During the music bot thing

lunar cypress
quaint isle
lunar cypress
#

well ok yeah in that case

errant geyser
jovial warren
#

Exposed

errant geyser
#

That one

jovial warren
#

we're still using Exposed lol

prisma wave
#

worst designed framework EVER

jovial warren
#

Exposed is amazing stfu

#

Matt back me up pls 🙂

errant geyser
#

Was it really worth $10?

prisma wave
#

no

#

not at all

old wyvern
#
import elara/db

thank me later

errant geyser
jovial warren
prisma wave
#

uhh it does exist?

old wyvern
prisma wave
#

namespace elara/db

sudden cape
#

feels like i'm reading a hipster dev board

prisma wave
#

you were saying?

jovial warren
errant geyser
#

Damn it Bardy I was going to steal your thing

prisma wave
sudden cape
#

for some reason i can imagine all of you furiously googling for the newest js framework with a coffee next to your macbook

prisma wave
#

pff

#

no

sudden cape
#

yeah my bad, frontend rust framework

prisma wave
#

we're all infatuated with FP at the moment

prisma wave
#

no JS frameworks here thank you

errant geyser
#

Imagine using a macbook

#

pfff

sudden cape
#

oh right you use a linux distro as your main driver

#

😴

old wyvern
#

Apple bad, android good

sudden cape
#

apple good, android bad

prisma wave
#

imagine an operating system made in a language that discouraged state

#

maybe something like clojure

#

that would be good

old wyvern
errant geyser
prisma wave
#

😮

sudden cape
#

s/false/true

old wyvern
#

OSell

prisma wave
#

omg

#

a vim reference

errant geyser
#

Imagine not using nano

prisma wave
#

you must be a true x10er

errant geyser
#

scrublords

sudden cape
#

ios is more stable than android.

old wyvern
#

imagine not using word

sudden cape
#

like, you really can't deny that. android is designed to work on anything and everything so it's expected to lag behind, but when it comes to stability, apple is way more stable.

old wyvern
errant geyser
#

He has a point there

prisma wave
#

android is bad because it runs java

sudden cape
#

selling my kidneys for a thousand bucks?

#

don't think anyone's doing that

old wyvern
#

This is coming from a company selling a stand for a 1000$

lunar cypress
prisma wave
#

?

#

lol

errant geyser
#

An aluminum stand

lunar cypress
#

also works in discord

#

I just remembered

prisma wave
#

no way

sudden cape
#

i don't defend all their decisions, but their phones are superior to any android phone on the market right now in terms of stability and longevity.

prisma wave
#

lol

#

oh shit

#

this's amazing

sudden cape
#

your android phone will stop receiving new android updates within 2-3 years

prisma wave
#

lol

sudden cape
#

iOS will support your thing for the next 6-7 years

prisma wave
#

%s/this/that

#

😦

sudden cape
#

yeah i had to put it in a code block cause it works in discord

#

kekw

errant geyser
sudden cape
#

which one

old wyvern
#

But when it costs 1/4th of that price, it not even bad if you buy a new one in a year or two

prisma wave
#

man this is boring

errant geyser
#

Samsung A6

prisma wave
#

ur actually having a serious discussion

old wyvern
#

Oh right

sudden cape
#

your A6 did not get new android updates for 5 years

old wyvern
#

Apple BAD HASKELL GOOD

sudden cape
#

that's cap

old wyvern
#

Fuck swift

#

All my homies hate swift

prisma wave
#

actually

#

tbf swift has let

sudden cape
#

my friend had an A6 and he got like one or two new releases of android

#

and then they were all stability patches

#

and no new updates

errant geyser
sudden cape
#

i'm talking about actual new releases of android

#

not just stability patches.

prisma wave
#

i got android 11 the other day

#

that was nice

old wyvern
prisma wave
#

but

#

but

#

better than some other languages

old wyvern
#

let good, swift bad. Ok?

prisma wave
#

yes!

old wyvern
lunar cypress
#

honestly I don't really care about getting every new cutting edge version? I just want a phone that doesn't cost me a fortune and works

prisma wave
#

^

old wyvern
#

^

sudden cape
#

except you get only one of those with an android lol

errant geyser
#

My grandad had an iMac that stopped being able to update after El Capitan, it physically wouldn't allow him to upgrade

sudden cape
#

androids are not very stable

sudden cape
#

you get a cheap phone that's not stable

prisma wave
sudden cape
#

true actually

old wyvern
#

I have went from 8 to 10 till now

somber tulip
#

I love watching these discussions

prisma wave
#

meh i have better things to be doing

old wyvern
#

11 coming soon

errant geyser
sudden cape
#

android crashes way more often. it also doesn't have millions(potentially billions) spent in R&D for user design.

#

In terms of price? Android has the bag secured.

#

In terms of a better experience? That's apple.

somber tulip
#

Why can't android and apple get along .-.

old wyvern
sudden cape
#

A me issue?

errant geyser
sudden cape
#

Go to any board that has android users lol

lunar cypress
#

sure, go ahead and tell me how my equipment that I've had for over 4 years now works

somber tulip
lunar cypress
#

that's just stupid

old wyvern
#

If you're gonna buy from some silly company and blame that on android that aint fair now is it

sudden cape
#

I'm not blaming android on anything.

#

Android is doing the best it can.

#

Because it's FOSS that runs on everything.

#

It's expected that iOS would work better, as it only needs to support a limited number of devices.

lunar cypress
#

Gotta love people who go 🤓☝️"well actually" on you when you talk about your personal anecdotes

sudden cape
#

But saying Android has a better user experience than iOS is objectively false.

lunar cypress
#

sure

somber tulip
#

I think it's down to preference really, you can't really say everyone likes apple's ui... coming from someone who has apple everything

sudden cape
#

It's absolutely down to preference, but I like smoother over choppier.

prisma wave
#

ok let's look at the evidence

sudden cape
#

Android can have more horsepower but for some reason it's still choppy.

somber tulip
#

does that not depend on who implemented it?

sudden cape
#

Absolutely.

#

Name one implementation that hasn't failed at it, though.

old wyvern
#

I dont feel like Iphones are doing better enough to justify the price gap. The only two things I would actually accept is that it ussually takes great pictures and well... clout. Thats pretty much it.

prisma wave
#

Can you run clojure on Android? Yes!! clojuremoon 🤤 😊
Can you run clojure on Apple? Probably not 😕 😟

somber tulip
#

I don't really know of many android phones / used them so i can't know

lunar cypress
#

"I have an android phone because it's cheap and durable from my experiences"
"you're wrong, apple is objectively better"
ok bro but who asked

sudden cape
#

I have, and it's really disappointing providers don't care enough

sudden cape
#

"who asked"

#

it's just a discussion

#

lol

lunar cypress
#

no it's not a dumb argument when your response isn't connected to what was said before

sudden cape
#

fine, i'll elaborate on your thing. have you used an iPhone before?

lunar cypress
#

I do not care

sudden cape
#

Okay then back off the discussion lol

prisma wave
#

development general

old wyvern
sudden cape
#

if you're not willing to answer simple questions then i can't give you any answers

#

is it?

somber tulip
#

I think this is evidence on why IDE arguments are banned

lunar cypress
#

I'm not asking for answers, I only responded to your initial statement to tell you why people might not care about what you care about

old wyvern
#

Yes it is, especially when all you've basically answered to the points we bring up is "Apple is good"

errant geyser
#

Well this went downhill from a joke very quickly

old wyvern
#

Clash of code anyone?

sudden cape
#

@old wyvern i've provided my opinion. it's up to you to make your decision

prisma wave
#

oh boy i love reading messages in the more relaxed area to discuss development topics!

sudden cape
#

it's been said here a few times and it's true, it's down to personal preference

somber tulip
prisma wave
#

ye

#

@sudden cape lets settle this over a clash of code

sudden cape
#

but from what I've personally experienced, and others have, apple's UX is way more developed

#

idk what that is

prisma wave
#

code challenge thingy

sudden cape
#

oh cool

#

like what kinda challenge

old wyvern
#

"Well, A and B looks like its not worth it"
"Hey look, a pony!"

errant geyser
sudden cape
prisma wave
#

join and find out

sudden cape
#

i'll probably suck

#

but ok

#

sign up?

#

no thanks

#

😴

prisma wave
#

just use gh

#

or google

#

takes about 2 seconds

sudden cape
#

how long does it take

old wyvern
#

Yea, it doesnt ask for any verification or shit

sudden cape
#

i don't have too much time on me :(

old wyvern
prisma wave
#

max time is 15 minutes, people usually finish in 5-10 unless it's really hard

lunar cypress
#

None of us have

sudden cape
#

i'll give it a shot

lunar cypress
#

The clock is ticking for everyone

sudden cape
#

i probably suck at it tho

somber tulip
#

Can i leave if I can't do it without fucking it up? ;p

prisma wave
#

yea

somber tulip
#

cool that's good for me

old wyvern
#

Shall I start?

sudden cape
#

yeah sure

prisma wave
#

dont think anyone else is gonna join

lunar cypress
old wyvern
#

xD

sudden cape
#

i have no idea what this challenge is

#

KEK

errant geyser
sudden cape
#

oh

#

oh i see

somber tulip
#

I don't get it

#

I'm just typing in "4 6 8"

prisma wave
#

f# takes the W

somber tulip
#

Am I supposed to work out the formula or what?

sudden cape
#

ohh

prisma wave
somber tulip
#

from strings?

prisma wave
#

mhm

lunar cypress
#

god damnit i messed up

prisma wave
#

the default code should have the user input fetching

old wyvern
#

intercalate was messing with me

#

for some reason i remember it joining any list

#

but its apparently only string lists

prisma wave
#

😦

#

map show $ (sort $ intersect a b) surely you don't need the parentheses here

old wyvern
#

Yea

#

I was debugging

prisma wave
#

ah right

old wyvern
#

movign stuff around

prisma wave
#

just making sure i wasnt being dumb

#

FP languages are superior