#dev-general

1 messages · Page 356 of 1

cinder flare
#

oh lol

#

much less radical

jovial warren
#

example?

old wyvern
#

Sure one moment

cinder flare
#

Nice @smoky forge 🙂

obtuse gale
#

They lurking 👀

cinder flare
jovial warren
#

if I could, I would have event handling be able to return a result from the listener

smoky forge
#

couldnt be me

jovial warren
#
class MyListener {

    @Listener
    fun onLogin(event: LoginEvent): Result {
        return Result(FAILED, text { content("u suck") })
    }
}
cinder flare
#

is that a json?

jovial warren
#

but that would just end up messy

cinder flare
#

why it be like text { content("potato") }?

jovial warren
#

Adventure's extra-kotlin DSL

#

it kinda sucks ngl, but it works fine

cinder flare
#

ah okay I was gonna say, looks pretty funky

jovial warren
#

especially since kashike is an idiot and didn't mark the functions with @DslMarker because "there's no official documentation saying it should be used on functions"

obtuse gale
#

u suck

facts

obtuse gale
cinder flare
#

Like, deja vu style

jovial warren
#

I mean, he's a nice guy, he's just a bit stupid sometimes

old wyvern
#

The result pattern probably works fine bard

#

People can use named constructor if they think its too messy

jovial warren
old wyvern
#

Or provide a default result with your event as well

old wyvern
jovial warren
#

also, multiple listeners listening to the same event would cause issues

old wyvern
#

Combine the results prioritywise

jovial warren
old wyvern
jovial warren
#

actually I guess you're right

cinder flare
#

ah yeah i was gonna say that looks like a pain when you want it to just work normally lol

jovial warren
#

I think I prefer the mutable method though, it's much easier than messy reflection hackery on the backend

#

I might implement results later though

old wyvern
#

You wouldnt need any messy reflection tho?

jovial warren
#

true

#

priorities would suck ass though

cinder flare
#

okay but what exactly is reflection

old wyvern
#

Is that a serious question or sarcasm?

cinder flare
#

no serious question

#

Im pretty new lol

old wyvern
#

Oh, alright

cinder flare
#

still in first year of uni

#

and the wikipedia entry ain't helping too much

old wyvern
#

Java provides a reflection api to change stuff you might not have access to at runtime

cinder flare
#

like?

old wyvern
#

Or construct an object with a private constructor

jovial warren
old wyvern
#

Does it completely stop you from using reflection on classes from a diff module after 9?

#

Also, holy shit Go's compile speed is just hot

cinder flare
#

Okay so what use would reflection have in like, minecraft plugins?

old wyvern
cinder flare
#

okay I'm gonna have to stop you right there

#

wtf is NMS anywyas

#

just like spigot api?

#

but per release?

old wyvern
#

They change aprt of the package on every release

cinder flare
#

That does not help

old wyvern
#

Its the notchian server

obtuse gale
#

Simple example, with reflection you can change a player's skin or send packets to a client

cinder flare
#

Oh so you can change stuff about the vanilla actual server that spigot doesn't let you do?

obtuse gale
#

Both of which spigot doesn't expose

cinder flare
#

ah I see

#

well why doesn't it expose them?

#

Is that why ProtocolLib exists lol

obtuse gale
#

Because md5 is gae

obtuse gale
#

md5 gae and Paper bae

old wyvern
#

xD

cinder flare
#

oh shit does Paper let you do that?

old wyvern
#

Dont think so

cinder flare
#

oh

old wyvern
#

Not sure about newer versions tho

obtuse gale
#

You can change the GameProfile of a player so that's 50% of what I said lol

cinder flare
#

But what if someone runs it on a normal Spigot server?

obtuse gale
#

ClassDefNotFound 🥲

old wyvern
#

MethodNotFoundException Galore

cinder flare
#

o no

obtuse gale
#

But yeah things like ProtocolLib are backed by a massive reflection system

cinder flare
#

dude ProtocolLib is what holds our society together im not even gonna lie

#

but okay that's really cool. I didn't even think of why so many things needed ProtocolLib but like, the plugin I'm working on uses packet items and it's so easy to use compared to what it could be

jovial warren
#

I think ProtocolLib just adds its own handler to the Netty pipeline

obtuse gale
#

Lmao

cinder flare
#

in your server*

jovial warren
#

if you want to send packets yourself, just depend on the server and do something like this: ```kotlin
val session = (player as KryptonPlayer).session
session.sendPacket()

#

ez

cinder flare
#

now that's what I like to hear

#

is the name Player already taken?

#

why be KryptonPlayer

jovial warren
#

Player is the name of the API interface

#

KryptonPlayer is the name of the internal one

#

so you cast the API interface to the internal player so you can access its session

#

if you're depending on the server and want to send custom packets that is

cinder flare
#

ah I see I see

obtuse gale
#

:^)

jovial warren
#

and packets are obfuscated mostly

#

whereas, in Krypton, they are all intuitive to construct

#

e.g. PacketOutChat(text { content("Hello World!") }, ChatPosition.SYSTEM_MESSAGE, SERVER_UUID)

cinder flare
#

You could do the same thing with Krypton

obtuse gale
cinder flare
#

(player as KryptonPlayer).session.sendPacket(packet);

#

just one less intermediary

jovial warren
#

yeah

old wyvern
#

((CraftPlayer) player)
(player as KryptonPlayer)

jovial warren
#

but Mojang packets often require some whacky reflection to access some of the values

#

Krypton's don't

jovial warren
#

since PacketOutChat internally takes an Adventure Component

cinder flare
#

yeah I feel like the real gains will be in packet construction and shit

jovial warren
#

yeah

#

oh btw, can someone here who knows Bukkit whacky listener orderings tell me where monitor goes?

obtuse gale
#

Last

cinder flare
#

^

jovial warren
#

right, so it's highest then?

obtuse gale
#

It's for monitoring the end state of the event

jovial warren
#

and low goes 2nd right?

obtuse gale
#

Lowest -> low -> normal -> high -> highest -> monitor

#

That's the flow

jovial warren
#

just wondering, since I'm looking at LuckPerms rn lol

#

because there's no pre-login in Krypton, it's a bit annoying

#

JoinEvent is fired very early though

cinder flare
#

Why no pre-login?

jovial warren
#

it's fired just after login success is sent

jovial warren
cinder flare
#

why does bukkit do it

jovial warren
#

because Mojang's login sequences is a bit whack

#

and it takes a bit longer to transition to the play state

#

the first thing Krypton does after sending login success is set the new packet state to play

#

so just after I do that, that's when I fire join event

#

whereas Bukkit fires join event way later

#

login event in Bukkit is fired about where I fire join event

#

and pre-login event is fired exactly where I fire login event

cinder flare
#

Well why does Bukkit have the delay?

jovial warren
#

that being just after authentication has been done

cinder flare
#

What does it do in the intervening time?

jovial warren
#

¯_(ツ)_/¯

cinder flare
#

ain't it open source?

jovial warren
#

CB is yeah, but vanilla isn't

#

and it's vanilla patches that fire these events

cinder flare
#

well you're building off of vanilla too, no?

jovial warren
cinder flare
#

or are you just making your own thing from the gorund up

#

oh I seeeee

jovial warren
#

lol

#

lemme see if I can answer your question btw

#

time to dig through CB patches

cinder flare
#

ayyy lets gooo

#

you'll learn something along the way, I'm sure :)

jovial warren
#

looks like it fires pre-login just after authentication

#

gonna see if I've fixed backwards priorities now

#

just basically made the do while go from byte's max val and count down to its min val

#

instead of going from its min val and counting up to its max val

cinder flare
#

so there are 256 possible priorities?

#

kinda sounds a little thicc

jovial warren
#

yeah

#

you can add custom priorities I guess

#

just a BungeeCord thing

cinder flare
#

oh

#

Are you also going to make a Proxy for Krypton?

jovial warren
#

maybe

#

not sure yet

#

I definitely intend on working with Geyser to add Bedrock compatibility, might also add Velocity support at least

#

and maybe BungeeCord and LilyPad

heady birch
#

Would be nice if you had an interface for each protocol

jovial warren
#

wdym?

heady birch
#

JavaProtocol, BedrockProtocol implements Protocol

jovial warren
#

you know Krypton won't natively support the Bedrock protocol right?

#

that'll be up to Geyser to packet translate

#

unless I do choose to support Bedrock

#

but definitely not yet

cinder flare
#

I mean, it'd certainly make you stand out

jovial warren
#

I could probably get it to work

#

would mean an entire rework of all the assumptions I make in how packets are formatted though

#

and Bedrock uses UDP

cinder flare
#

Just gives you a huge leg up

jovial warren
#

and a huge headache too xD

cinder flare
#

You have flexibility, something a giant based on other stuff, like Paper, lacks

jovial warren
#

I'll definitely think about it

#

actually, Bedrock using UDP might play in my favour, since it means I can just run two separate listeners

cinder flare
#

Is there an emote for big brain? Cause I'd use it here

static zealot
#

🧠

jovial warren
#

MAN

#

they're separate channels

#

so you have a datagram channel for UDP/IP and then server socket channel for TCP/IP

#

yeah I'm gonna try Bedrock support for this at some point

#

will make it a separate module I think

#

I mean, it'll still mostly be Java at its heart, and probably mostly do conversions, but it'll probably function better than Geyser

#

since it's native

#

no more broken priorities

#

oh btw, @obtuse gale, you know LuckPerms at least decently well, when does LuckPerms want to listen to the login event btw? since with Bukkit, it has a LOW and a MONITOR

#

I'm guessing it wants one to be second and one to be last right?

#

also, is it just me or do bytes in Kotlin suck ass

#

there's no implicit conversion between bytes, and every time you declare a byte you gotta use toByte()

cinder flare
#

Bro because nobody uses bytes

#

I'm impressed they're even still a data type these days, they're nearly useless

jovial warren
#

they're useful for priorities

quiet depot
#

hey

jovial warren
#

so I don't end up with loads of integers allocated on the stack for no reason

quiet depot
#

i use bytes in docdex

jovial warren
#

oh hey pig

quiet depot
#

bytes r good for low memory

jovial warren
#

bytes are useful if you want to conserve memory

#

yeah

cinder flare
#

In comparison to your 20 million longs, I don't think going from a byte to an int will affect much 🙂

jovial warren
#

oh yeah, thinking about DocDex, I still haven't even started on KDocs yet lol

stuck harbor
#

bikeshedding is the best strategy

jovial warren
#

that's being fixed soon™️

quiet depot
#

bikeshedding?

stuck harbor
#

yes

quiet depot
#

ah ok that confirmatory yes magically fixed my lack of understanding of the word

#

thanks

stuck harbor
#

Law of triviality is C. Northcote Parkinson's 1957 argument that people within an organization commonly or typically give disproportionate weight to trivial issues. Parkinson provides the example of a fictional committee whose job was to approve the plans for a nuclear power plant spending the majority of its time on discussions about relatively...

cinder flare
#

nice nice

jovial warren
#

when I can figure out how to solve all the block states for all the chunks totalling 7 million longs

cinder flare
#

well how does spigot/bukkit do it?

jovial warren
#

no fucking clue

cinder flare
#

maybe look for some inspiration

jovial warren
#

I'd have to dig through Mojang code again

quiet depot
#

pretty sure it has world storage documented

cinder flare
#

Probably good to read all of wiki.vg actually

jovial warren
#

actually that's a shout, maybe I should ask on IRC

cinder flare
#

How can you improve if you don't know what the one you hated did?

stuck harbor
#

yes bardy

quiet depot
#

they’ll tell you to do exactly what I told you to do

stuck harbor
#

Internet Relay Chat

#

my fav

quiet depot
#

iwanio what is bikeshedding

#

no wikipedia pls

stuck harbor
#

tf

#

but

#

Law of triviality is C. Northcote Parkinson's 1957 argument that people within an organization commonly or typically give disproportionate weight to trivial issues. Parkinson provides the example of a fictional committee whose job was to approve the plans for a nuclear power plant spending the majority of its time on discussions about relatively...

#

explains it fine

quiet depot
#

so does a 10 - 20 word definition

#

but i can read the latter in a couple secs

stuck harbor
#

its worrying about the materials used for the bike shed, when ur building a nuclear plant.

prisma wave
#

Wasting time arguing about how to implement unimportant things

#

^

quiet depot
#

oh lol

cinder flare
#

ah dude nice that's exactly my point

#

good work gang

static zealot
#

that's the youtube subtitles

stuck harbor
#

àaaâaaaaāaaă

#

says youtube

cinder flare
#

dude I love watching Blitz help people

#

he's so sick of their shit

static zealot
#

shh

#

don't tell them

#

they'll get mad

#

xD

cinder flare
#

like two people were talking and he goes BlitzZzZzZzZ - take the latest build from here Thefluffypvper — me too? BlitzZzZzZzZ —no. you have to answer my question ...

#

is it bad I'm seriously considering how to write a lua parser for DM

stuck harbor
#

no

#

thats fine

#

we like lua here

prisma wave
#

do we?

stuck harbor
#

yes.

#

we do.

cinder flare
stuck harbor
#

bm prefers php

#

don't you, bm?

prisma wave
#

not in the slightest

#

ive never really used lua

heady birch
#

$yes = true;

function doesBmLikePhp() {
return $yes;
}

stuck harbor
#

yes

#

good

cinder flare
#

true is a string? thonking

stuck harbor
#

we don't like booleans here

heady birch
#

Php probably infers it as a boolean anyway lol

stuck harbor
#

haha

#

probably

#

mysql_real_escape_string() is a function in pho i think

heady birch
#

lol

#

isset

prisma wave
#

Lua seems fairly similar to Julia

heady birch
#

they could have atleast done is_set

prisma wave
#

And Julia is nice

heady birch
#

Yeah but can you embed it in a webpage like <?php ?>?

stuck harbor
#

its called real escape string because

#

get this

#

they made mysql_esape_string

#

but it didn't work

jovial warren
#

oh hey, Niall, would you be up for rewriting KiteBoard at some point to make it multiplatform?

heady birch
#

Probably not

prisma wave
#

😫

jovial warren
#

I'll happily give you a hand

heady birch
#

Is this where people do like core bukkit bungee in maven

jovial warren
#

basically yeah

#

like LuckPerms

prisma wave
#

oh camel

heady birch
#

might as well rewrite from scratch its a mess

stuck harbor
jovial warren
#

can I help? 🙂

prisma wave
#

🙂

heady birch
#

maybe if some clever soul comes up with RUST bindings for multiplatform minecraft plugins

stuck harbor
#

mmmmmmmmmmm

#

ruuust

prisma wave
#

I volunteer

stuck harbor
#

can rust work on the jvm tho

#

is that... legal?

heady birch
#

Bindings must be able to do it!

cinder flare
#

it can work alongside the jvm

heady birch
#

IdioMatic rust

prisma wave
heady birch
#

trump statue

onyx loom
#

JRust

heady birch
#

Idol matic rust

onyx loom
#

Just

heady birch
#

RustJ

#

J4Rust

jovial warren
#

add me to repo 🙂

stuck harbor
prisma wave
#

why do we still compromise on performance when using the JVM

#

JRust guarantees faster performance while still running on the JVM

stuck harbor
#

paper fork in go?

#

no server thread

prisma wave
#

GoLangMC ☹️

stuck harbor
#

each plugin has its own goroutine

onyx loom
#

oof.

#

did sx even finish that

jovial warren
#

probably not

prisma wave
#

Sadly not

#

It is "abandoned"

onyx loom
#

🙁

stuck harbor
#

sadge

#

I'll fork it

quiet depot
#

iwanio do u frequent twitch?

cinder flare
#

lol wot

#

did he say poggers or something

quiet depot
#

sadge

#

isn’t that twitch?

lunar cypress
#

yes

cinder flare
#

oh i see i see

stuck harbor
cinder flare
#

I love googling an issue and seeing like @desert horizon or someone solved my problem lol

#

Like I just googled how to negate a perm in LP, and his answer saved the day ❤️

static zealot
#

set false

cinder flare
#

got that

static zealot
#

or do you mean using code? xD

cinder flare
#

im used to -permission

#

nope lol

static zealot
#

ah

cinder flare
#

dude i don't even remember the names of the old perms plugins

static zealot
#

GroupManager

cinder flare
#

LP has just been injected into my smooth brain

static zealot
#

Pex

cinder flare
#

oh and PEX!

#

yeah I was a PEX guy

jovial warren
#

funnily enough, ZML is still working on PEX 2

cinder flare
#

when LP exists?

#

that seems like a wasted endeavour

static zealot
#

some still use GM tho ...

#

😦

#

even tho LP has a converter and all that

#

also someone is still working on GM

cinder flare
#

again, why man

#

LP is a miracle of code and honestly I feel privileged to be able to use it and have it open source and free for all

jovial warren
#

man, I'm making so many like 10 line commits today lol

#

I'm already on 0.13.6

static zealot
#

oh

cinder flare
#

feb 2018 dang

hot hull
#

scuzzi what gradle?

static zealot
#

url =

hot hull
#

nein be gone, ugly

jovial warren
#

imagine reworking permissions to make it tristate for LuckPerms lol

static zealot
#

😢

eternal compass
#

some guy just DM'd me on discord saying "good plugin, can you rate mine" and sent a link

#

lol

static zealot
#

wtf?

eternal compass
#

I kinda want to rate it, just 1 star

#

I didn't mean for you to give stars there
After the description here, you would rate me as dm
I'm just gonna casually block this guy

cinder flare
#

hey which worldedit is the one to use

#

FAWE?

hot hull
#

custom

cinder flare
#

but... i don't care that much

#

im just testing something for this guy

jovial warren
#

happens sometimes

#

Groovy DSL in IntelliJ is really buggy

cinder flare
#

why ain't kotlin the default?

prisma wave
#

kotlin bad

cinder flare
#

>:(

#

the WorldGuard docs kinda fugly ngl

#

yellow and white do not make for a pleasing experience

old wyvern
#

Gradle Java DSL when?

cinder flare
#

ew wtf

hot hull
#

One day I'm gonna lose my shit

#

Can someone tell md to go fix this goddamn annotation yet

onyx loom
#

what's it annotated with?

#

@notnull?

hot hull
#

nullable

onyx loom
#

yea thats what i meant

#

lol

#

Yugi is typing...

forest pecan
#

Yugi is typing...

cinder flare
#

Yugi is typing...

hot hull
#

Frosty is contemplating...

winter iron
#

Frosty is contemplating...

cinder flare
#

contemplating what?

hot hull
#

life

winter iron
#

😦

cinder flare
#

ah ncie

forest pecan
#

PulseBeat_02 is shitting...

cinder flare
#

the dev life ain't making the big bucks?

onyx loom
#

the suislide, ofc

forest pecan
#

its depressing kinda

#

lol

#

press stuff on a keyborad

#

and get money

cinder flare
#

gonna have to go back to burger king? lmao

forest pecan
#

day and night

cinder flare
forest pecan
#

lmao lets go back to the fast food restaraunts

hot hull
forest pecan
#

or work at the garbage disposal plant

#

LMAO

cinder flare
forest pecan
#

free boba

#

for a year

hot hull
#

I mean I have commissions, made a fair bit last year, hoping to break that this year

forest pecan
#

at least if you live in california

#

lol

#

i dont

#

but silicon valley 😫

hot hull
#

wdym

onyx loom
#

frosty ive heard u got smth cooking too 👀

forest pecan
#

hes got my dog cooking

#

on the stove

onyx loom
#

gabys cat*

forest pecan
#

lmao

cinder flare
# hot hull wdym

like you just make random plugins? do you work for a specific network or something?

hot hull
#

huh Kali?

old wyvern
#
Set<RepoRecord> repositories = RepoRecord.with(Repository.MAVEN_CENTRAL, Repository.JCENTER);
AbstractDependencyFactory factory = DependencyFactories.createFor(repositories);
Set<Dependency> dependencies = factory.createDependencies(new DependencyTag("what.the.actual.shit.is.this","WTF", "4.5.2"), new DependencyTag("what.the.actual.shit.is.this","IS", "10.5.2"), new DependencyTag("what.the.actual.shit.is.this","THIS", "2.5.8"));

build(() -> {
    for (Dependency dependency: dependencies) {
       DependencyPackagingFactoryFromHell hellboi = DependencyPackagingFactory.of(dependency);
       hellboi.package();
    }
});;;;;;
old wyvern
hot hull
cinder flare
hot hull
forest pecan
#

i dont believe in networks

forest pecan
#

i really dont

cinder flare
old wyvern
cinder flare
old wyvern
hot hull
#

So I've got a

private static final Set<Registerable> REGISTERABLES = new HashSet<>(Arrays.asList(
    new CommandRegisterable(), new EmoteRegisterable()
));

How do I cleanly retrieve a specific one now

old wyvern
#

Specific what?

#

Registerable?

hot hull
#

registerable

old wyvern
#

REGISTERABLES.stream().filter(r -> // Your condition for the "specific" one here).findFirst()

hot hull
#

yesn't

old wyvern
#

wdym?

onyx loom
old wyvern
#

Is that not what you wanted frost? @hot hull

hot hull
#

sec

old wyvern
#

aight

hot hull
#
 public ? getRegisterable(final ? type) 

? ofc needing to be replaced with the correct thing, but idk what, if that's doable, idk I'm just playing around at this point

#

If you get what I'm trynna say fingerguns

old wyvern
#

What is the definition of Registerable?

hot hull
#

interface

old wyvern
#

Show

hot hull
#
public interface Registerable {

    void enable(final EmotesPlugin plugin);

    default void disable(final EmotesPlugin plugin) {}

}
old wyvern
#

is there a generic parameter?

#

Oh

#

hmm

hot hull
#

there isn't, but there could be if that's what's needed

old wyvern
#

I mean what do the different implementations change?

#

And why do you need the underlying type?

hot hull
old wyvern
#

That looks fine

hot hull
#

yea now I need to retrieve a specific one, and I don't wanna cast everytime

#

cause ew casting

old wyvern
#

Not much you can do there in that case

#

Its better to not depend on the underlying type when you're working with interfaces

#

Make it fully substitutable

hot hull
#

english yugi

old wyvern
#

Design your interfaces so that you wouldnt need access to the implementing class

hot hull
#

not really an option since they do completely different things

#

I'll figure something out

old wyvern
#

Ok let me just confirm, what would use in the CommandRegisterable after casting to it?

hot hull
#

I need the emotes one, but I think I can do it differently

old wyvern
#

Alright

cinder flare
#

dude I wish I had fc on hand to design all my websites lol

#

that would be so nice

half harness
#

lol i finally got ssh to work

#

turned out the account was a microsoft account

#

so i needed to login through microsoft credentials

cinder flare
#

ssh into minecraft?

half harness
#

wat

half harness
#

windows 10

#

openssh

cinder flare
#

ah you sshd into your windows pc?

#

kinda crazy

#

you use WSL? it's pretty nice

half harness
half harness
cinder flare
#

ah dude sshing from windows sucks donkey dick

#

all I want in life is my precious bash

#

and instead I get PuTTY and powershell :(

half harness
#

i dont use putty :))

#

i dont like cli

#

im just using ssh for things like java -jar server.jar

ocean quartz
#

Git bash is not bad for ssh

cinder flare
half harness
#

lol

#

thats why i use termius

#

even though its useless

#

i prefer button

cinder flare
half harness
#

even though its slow

ocean quartz
#

Agree

cinder flare
#

windows terminal w/ WSL though? that bad boy's lookin cute af

half harness
#

gui 😍

cinder flare
#

just wait until you have to manage a server and transfer files via FileZilla 🤮

#

or change permissions

#

hoo boy

ocean quartz
#

I love the new windows terminal but it isn't fully released yet

cinder flare
#

or sync every single config file you want to edit instead of using vim

half harness
cinder flare
half harness
#

command prompt?

ocean quartz
#

Thought it was still in beta

old wyvern
#

Moba is awesome

half harness
#

how to get admin in windows 10

#

weird

old wyvern
cinder flare
#

moba ugly as sin too

#

have you tried windows terminal

old wyvern
#

Nah, looks fine

#

I actually get a lot of work done on this

cinder flare
ocean quartz
#

I like moba, the terminal area looks nice but the rest is kinda ugly

cinder flare
#

it could look like that

half harness
old wyvern
cinder flare
#

it has tabs on the top

#

and it comes with vim

#

which is all you need if you're a real sysadmin

old wyvern
#

What comes with vim?

old wyvern
old wyvern
#

And yes, this text editor sucks 🙂

#

xD

cinder flare
#

So all you need is a pretty simple terminal

old wyvern
cinder flare
#

And you can ssh into anything, have multiple tabs, and text edit with vim

old wyvern
cinder flare
#

Plus you can bring your .bashrc and other files to keep the experience the same across every m achine!

old wyvern
#

Technically all you need to create java applications is a text editor and javac. But you use build tools and an ide

#

Plus im not much of a linux user

cinder flare
#

Well yes but I don't really think the debate of windows terminal vs mobaxterm and the debate of text editor vs ide are the same

old wyvern
#

so 🤷

cinder flare
#

Mobaxterm is basically windows terminal with a little more gui and a little more ugly

#

That's about it

#

They're nearly the same, they're both just terminal emulators lol

old wyvern
#

I dont find it too ugly

cinder flare
#

The white is very striking, to say the least

#

Or I guess the lack of contrast if you have dark theme on

#

Compared to the transparency you get with windows terminal, it'll never be the same in my eyes lol

old wyvern
#

Transparency?

#

Oh you were talking about thishttps://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701?activetab=pivot:overviewtab

Microsoft Store

Download this app from Microsoft Store for Windows 10. See screenshots, read the latest customer reviews, and compare ratings for Windows Terminal.

cinder flare
#

The background is slightly transparent, so you can see through it

#

Yeah

old wyvern
#

I was assuming you were defending cmd

#

xD

cinder flare
#

Oh god no

old wyvern
#

But really, I dont find moba bad at all

cinder flare
#

I guess it's not terrible lol

#

Just not as good as it could be

#

I'm very proud of Microsoft though, recently they've been pretty good about making quality software

#

VS Code, Windows Terminal, WSL2

#

all amazing things

old wyvern
#

I dont particularly care if it doesnt look too good as long as it does its job

cinder flare
#

and even winget, which is a solid attempt at a package manager

cinder flare
cinder flare
#

alright sure buddy

#

you keep your ugly gui

#

lmao

old wyvern
#

When your argument is "Its all you need, and it looks good " 🙂

old wyvern
cinder flare
#

Again not the same

old wyvern
#

Why not?

cinder flare
#

Windows Terminal and MobaXTerm have the same features

#

They're both terminal emulators

#

Only difference is performance and looks

old wyvern
#

Does it also provide a gui based scp client?

cinder flare
#

SCP? lmao

#

SFTP all the way

#

and again, the gui is just looks

old wyvern
#

Does it keep track of passwords and sync it across accounts?

cinder flare
#

It adds no functionality

old wyvern
#

Does it provide a gui for that?

cinder flare
#

Again, gui is looks

old wyvern
#

Mate

cinder flare
#

All the gui does is call command line statements lol

old wyvern
#

You're contradicting yourself now

cinder flare
#

?

old wyvern
cinder flare
#

I just said mine looks good in my opinion

#

Not for me

#

I find guis annoying to use and bloated

old wyvern
#

Id rather explore a visual gui than sped time typing commands

cinder flare
#

I wouldn't

#

I know the commands, I am much faster at typing commands and reusing them in scripts than using a gui

#

In fact, I made a shell script just to copy my shaded jar from my plugin to my test server plugins directory

old wyvern
#

Typing many letters vs 5-6 clicks

cinder flare
#

So as soon as I compile, I up arrow twice and press enter, then up arrow twice and press enter

old wyvern
#

You dont end up doing the same thing that many times tho

cinder flare
#

I dunno about you boss, but I type ~150wpm, which is much faster than I can click in a gui

cinder flare
#

Every single time I change something in my plugin I recompile and do that exact sequence

old wyvern
#

In my* case I have to change directories a lot due to this thing having its module its a completely separate directory

ocean quartz
old wyvern
#

I wasnt not refering to you specifically

cinder flare
#

I am faster at changing directories with the command line than I am at clicking lol

#

Autocomplete ftw

cinder flare
#

I only barely scrape the surface of command line git stuff

old wyvern
cinder flare
#

?

old wyvern
#

Every single time I change something in my plugin I recompile and do that exact sequence
This wouldnt come up for all cases tho

cinder flare
#

Okay, and?

#

I just said I can change directories faster by typing than with a gui

old wyvern
#

While yet, tabbing completing through a few directories for a cd would be easy, I find it easy especially when it comes to file transfer

#

i cna just drag and drop something in if I want to move something in and out

cinder flare
#

I guess, but you also have to navigate through the ui all the way to where your file is and where you want it to go

#

Which we already agreed is faster on a keybaord

old wyvern
#

It can sync to your cd commands

cinder flare
#

?

old wyvern
#

The ui follows your current path in the terminal with that checked

cinder flare
#

okay?

cinder flare
#

well that doesn't change anything

#

all it means is you get to drag and drop after cd'ing instead of pressing enter lmao

old wyvern
#

🤷 I dont see any reason for using "windows terminal" over this till now other than its transparent

cinder flare
#

I mean I didn't say there was

#

I'm just saying that it looks better in my opinion

#

As I said many times they're both terminal emulators, they do the same thing

old wyvern
#

🤷

cinder flare
#

Turns out this was all just a ploy to get more xp >:)

old wyvern
#

😌

hot hull
#

Can you unregister listeners? I can't remember

lunar cypress
#

yes

hot hull
#

Wanna spoon feed me ❤️

onyx loom
#

depends

hot hull
#

figured it out

onyx loom
#

classic

jovial warren
#

lol

obtuse gale
jovial warren
#

anyone here know how you can disable projects loading on startup in IntelliJ without access to the IDE? I invalidated my caches and now it seems to crash on startup every time

old wyvern
#

projects loading on startup in IntelliJ without access to the IDE
wdym?

#

As in you want to switch to a different project without opening IJ?

jovial warren
#

no

#

I invalidated my caches with 3 projects open and now it just sits on loading components forever

old wyvern
#

Maybe its just taking a while

jovial warren
#

I ain't waiting over 10 minutes again for it to get nowhere

old wyvern
#

How much did you wait till now?

jovial warren
#

no clue

old wyvern
#

More than 10 mins?

obtuse gale
#

Dkim be like "wOaH 10 MiNuTeS??? sO fAsT"

obtuse gale
old wyvern
#

Yea ig you could try deleting the .idea folder

jovial warren
#

nah I found the setting to disable it somehow

obtuse gale
#

Oh that you mean

jovial warren
#

there we go

obtuse gale
#

I have that disabled lmao

jovial warren
#

lol

#

oh also, would any of you have any clue why Material reverts my theme back to the crappy atom onedark every time?

#

still didn't fix my fucking dependency issue FFS

#

what is it with this

#

literally, no matter what I do, it won't give me access to kotlinx.serialization HOCON

#

depending on it manually? nope
explicitly adding maven central? nope
depending on kotlin stdlib? nope
adding serialization plugin? nope

#

could it be conflicting with something?

#

does Gradle tell you about conflicts?

half harness
#

what is line 20? @dense dew

#

btw use int

#

not Integer

#

won't fix it, but int is better

#

trying making a nullcheck for world

#

it's a primitive

#

Integer is just the wrapper

#

for things like Integer.valueOf

#

etc

sweet cipher
#

Cloning a repo on github just downloads the repository right?

jovial warren
#
Execution failed for task ':krypton:compileKotlin'.
> Could not resolve all files for configuration ':krypton:compileClasspath'.
   > Could not resolve org.jetbrains.kotlinx:kotlinx-serialization-hocon:1.1.0.
     Required by:
         project :krypton > org.kryptonmc:krypton-api:0.13.7
      > No matching variant of org.jetbrains.kotlinx:kotlinx-serialization-hocon:1.1.0 was found. The consumer was configured to find an API of a library compatible with Java 8, preferably in the form of cl
ass files, and its dependencies declared externally, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm' but:
          - Variant 'apiElements' capability org.jetbrains.kotlinx:kotlinx-serialization-hocon:1.1.0 declares an API of a library, packaged as a jar, and its dependencies declared externally, as well as att
ribute 'org.jetbrains.kotlin.platform.type' with value 'jvm':
              - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8
          - Variant 'runtimeElements' capability org.jetbrains.kotlinx:kotlinx-serialization-hocon:1.1.0 declares a runtime of a library, packaged as a jar, and its dependencies declared externally, as well
 as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm':
              - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8
``` @old wyvern any ideas?
#

omfg

#

all I had to do was set the source compatibility

#

fml

obtuse gale
#

HAHAHAH

winter iron
#

If I have a List<Something> where Something(id, name, other) and I wanna do some searches based on id, should i instead make a map Map<id, Something> instead of iterate and check

#

or does it matter much at all

#

im expecting said list to have about 10-100 elements

#

which i dont think is alot to iterate

sweet cipher
#

Does it have to be ordered?

winter iron
#

nu

sweet cipher
#

You could use a Set

jovial warren
#

moment of truth lol

winter iron
#

im not asking if i should use a set or list

quiet depot
#

yes you should use a map for that

#

you won't notice any performance differences between the two with such a low size

#

but it's best practice to use a map

winter iron
#

Ok good, ive been using maps anyways but some other dude tryna say using a list is better :/

#

idk why hes tryna justify o(1) vs o(n) lookup times

#

:/

quiet depot
#

yeah no

#

arraylist iteration is o(n), hashset iteration is o(1), hashmap lookup is o(1)

#

hashmap is the way to go

lunar cypress
#

hashset iteration is also O(n) unless ur a magician

stuck harbor
#

piggy

#

u said o(n)

#

that makes sensen't

#

its O(n)

#

its called big O notation

#

u nerd

winter iron
#

nah

#

we invented little o

#

more simplified

sweet cipher
#

Someone a while ago told me to use a Set in a similar situation, I don't don't why

forest pecan
quiet depot
#

yeah

forest pecan
#

its used for tiny optimizations like in actual steps

quiet depot
#

little o(n) is equal to O(1)

forest pecan
#

mhm

quiet depot
#

that's totally why I made that mistake before

quiet depot
#

ok where tf did I get O(1) from for hashset iteration

forest pecan
#

when comparing small steps like 1 operation compared to 4 little o is useful

quiet depot
#

I swear I've read that before, but I can't find anything now

forest pecan
#

lol

#

best time complexity

quiet depot
#

1am brain powers

forest pecan
#

Yes

lunar cypress
forest pecan
#

i think different profesors have a different view of it

#

I think other people use it as a strict upper bound

lunar cypress
#

O(f) is the set of functions that grow asymptotically faster (or equally fast) as f
Ω(f) is the set of functions that grow asymptotically slower (or equally slow) as f

forest pecan
#

we are talking about small o tho

quiet depot
#

lol

lunar cypress
#

Θ(f) is the set of functions that grow exactly as fast as f

#

Yes, as you'll notice, the definition of "little o" they give in that pdf is what I know as big o

forest pecan
#

wait

#

the pdf got cut off probably? lol

#

it only talks about big o

#

lmao

#

the title says Big O and Little o Notation

#

one is <= and another is <

#

thats all i know about them, one of them has a stricter upper bound than another

lunar cypress
#

From my understanding their definition is O is same growth and o is less growth

#

which is a bit weird

#

Also my prof would kill us for this notation lol f(n) = O(1)

forest pecan
#

lol

cinder flare
#

dude my prof didn't even teach us about o(n)

#

we just started looking at problems and identifying the big oh

#

all at 7 am because that was when that class was, for some godforsaken reason

jovial warren
lunar cypress
#

I didn't know little o before either

#

these were the ones i had

cinder flare
cinder flare
#

I'm gonna stick with big oh and vague notions of algorithm speed

lunar cypress
#

Big O is vague either way

cinder flare
#

yes exactly

#

but why complicate it with big theta and big omega

jovial warren
lunar cypress
#

Well if you have Big O for "bounded above", why not have something for "bounded below"?

#

And theta is just the intersection of the two

#

makes perfect sense

cinder flare
#

I have no idea what that means ngl

#

When would you use big omega?

lunar cypress
#

Ok, to put it another way: big o is worst, big theta is average, big omega is best case

winter iron
#
    "type1": [{
            "modelData": 12345678,
            "name": "This is the models name",
            "author": "SenseiJu"
        },
        {
            "modelData": 123456789,
            "name": "This is the models name",
            "author": "SenseiJu"
        }
    ]
{
    "models": [{
            "modelData": 1,
            "name": "This is the models name",
            "author": "SenseiJu",
            "modelType": "type1"
        },
        {
            "modelData": 2,
            "name": "This is the models name",
            "author": "SenseiJu",
            "modelType": "type1"
        },
        {
            "modelData": 3,
            "name": "This is the models name",
            "author": "SenseiJu",
            "modelType": "type2"
        }
    ]
}

which would be better to use

cinder flare
#

ah I see it's a way to think about it okay

#

Um

#

Im not really sure what I'm looking at here

#

just whether to include modeltype in the modeldata field?

winter iron
#

ye

#

or

#

as a key

#

i think it might be better as a field

#

easier to work with when deserializing

cinder flare
#

i mean it would be a hell of a lot easier to read with it being its own field

winter iron
#

i think ill do that

jovial warren
#

and LuckPerms has just taught me that I can't just try and load every JAR in the plugins folder with walk

forest pecan
#

wdym

ocean quartz
#

It's too slow, he might need to run

sweet cipher
#

Maybe sprint

forest pecan
#

or if its still slow, he might need to sprint

jovial warren
#

and so Krypton walks through them, finds all these JAR libs, tries to load them, and fails

#

I need a shallow walk

forest pecan
#

dependencies?

jovial warren
#

yeah, dependencies

cinder flare
jovial warren
#

LuckPerms basically uses its own PDM

onyx loom
#

its a real shame that pdm doesnt use its own pdm

#

because it doesnt work

forest pecan
#

whats wrong with your jar loader thing tho

#

cause i implemented one as well

#

for my lib

old wyvern
#

Whose in for a pdm remake?

cinder flare
ocean quartz
old wyvern
old wyvern
old wyvern
cinder flare
onyx loom
#

i would love that, im down to contribute except i wouldnt have a clue what would be going on

cinder flare
#

it was a meme is the moral of the story

#

also I have no idea what a PDM is

onyx loom
#

disgraceful

old wyvern
#

I've rarely had to use a library

ocean quartz
#

Me neither xD

onyx loom
#

lets just say pdm is BUG FREE

old wyvern
#

xD

onyx loom
#

and it TOTALLY works

old wyvern
#

We'll get bm to join the new pdm

hot hull
#

Matt

#

Where Triumph!

old wyvern
#

He shall be forced to remake this time

cinder flare
old wyvern
#

ah

ocean quartz
old wyvern
#

Ours is pretty strict

hot hull
#

Gotta annoy you sorry ❤️

onyx loom
#

nah pdm will download dependencies at runtime instead of having to shade @cinder flare

old wyvern
#

Using the virtual library is usually easier

cinder flare
#

oh that sounds kinda funky

#

what's wrong with shading?

ocean quartz
forest pecan
#

even pdm remake wont fix java 16 issue

#

tho

cinder flare
#

i love the dark

onyx loom
#

😩

old wyvern
forest pecan
#

adventure itself is literally 800 kb

cinder flare
#

file size vs network size

ocean quartz
cinder flare
#

taking minutes to download on first startup sounds less than ideal

#

hmmm okay I can see that one

forest pecan
#

i thought it was 2

#

or smthing

onyx loom
#

when ur usign kotlin in plugins u gotta watch that file size 😦

ocean quartz
#

Was always 5

forest pecan
#

ohh

#

lmao

cinder flare
#

why is there even a limit lmao

old wyvern
#

Applications can also share libraries on the rare occation that they use the same version of the dependencies

onyx loom
#

spigot trash

forest pecan
cinder flare
#

hmm I see

forest pecan
#

prolly cause wanna save storage

cinder flare
old wyvern
cinder flare
#

instead of downloading the jars yourself, you just type a command and it gets it from a repository

old wyvern
#

It could just be useful for like downloading different implementations of something as well I guess

cinder flare
#

that would actually kinda slap

old wyvern
#

Bm has that as well afaik

forest pecan
#

thats pretty easy to do

cinder flare
#

because spigot is a bitch and blocks wget for some reason, so you have to click manually

forest pecan
#

except java 16+

#

its harder

#

but less than that, ez af

cinder flare
#

what's wrong with java 16

forest pecan
#

they block the jar loading hack

old wyvern
#

Atleast he has a channel for that in his discord

forest pecan
#

into the classloader

cinder flare
#

at current rates, it'll be like 15 years before anyone uses java 16 lmao

forest pecan
#

so you cant load the jar into the classloader

#

eh its good to plan for the future

cinder flare
#

well why would they do that if its such a vital part of making stuff work

old wyvern
#

PDM could really be nice when with like sql drivers I guess, you could depend on and download the specific one to be used

forest pecan
cinder flare
#

is encapsulation really worth that much though?

forest pecan
#

dont ask me

#

ask java

#

lmao

cinder flare
#

hmm you have a good point

#

i barely trust oracle with my email address

onyx loom
#

question mark

cinder flare
#

im just saying guys, anyone ever used linux?

#

package managers kinda slap

#

we should get one going for plugins that can autoresolve dependencies

#

how nice would that be eh?

forest pecan
#

too hard

#

i tried it before

#

trust me

#

i tried to install vlc packages

#

they require sudo

#

then you have to have either two options

#
  1. use hacks and fake sudo root
#

or

#
  1. compile the binaries for every single version linux distro
#

then download those

#

or 3) use AppImage, which supports multiple linux distros into this one app, but it has its own binaries

#

and you have to somehow make it compatible

cinder flare
#

what the fuck are you talking about boss

forest pecan
#

thats why i made a huge ass json file just for vlc packages in linux distributions for each distribution, version

#

@obtuse gale would know

cinder flare
#

sudo pacman -S vlc

forest pecan
#

it requires sudo...

#

that requires a password

#

thats not ideal..

cinder flare
#

it doesn't require sudo to put a jar in a plugins folder

#

the fuck dude

forest pecan
#

??

#

any command with sudo

#

requires password

cinder flare
#

you don't need sudo to wget a file

forest pecan
#

Oh wget?

#

but thats different from packages

cinder flare
#

im saying we make our own package manager

#

the only reason you need sudo at all is to put stuff in /bin or /usr/bin

surreal quarry
#

helpchatman

forest pecan
#

i dont think its a good idea tho

#

well

#

hm

#

we would need someone to host it

cinder flare
#

wdym how is that not a good idea

forest pecan
#

and im not doing that

#

lmao

cinder flare
#

spigot already exists

#

just instead of downloading your own jar, you type a command and it also gets dependencies for you

#

and can update shit universally

forest pecan
#

Well thats going to fuck up a ton of existing plugins

#

like what about relocation

#

and that shit

cinder flare
#

are plugins not self-contained jars?

#

whenever I download my plugins they all go in the /plugins folder and never leave

forest pecan
#

im just saying its a bad idea cause a lot of plugins that use stuff like pdm and custom dependency resolvers involving downloading it may mess up or its just bad design

#

to have multiple of those in the classpath

#

its inconsistent

#

i will say that

#

which isnt necessarily a bad thing, but idk

cinder flare
#

so moral of the story, plugins are poorly coded yes

forest pecan
#

that is one too

cinder flare
#

that's also how it is with windows apps

#

yet microsoft is still trying to push winget lol

#

i hope it becomes a big thing

forest pecan
#

winget?

#

lmao

cinder flare
#

Windows Package Manager

forest pecan
#

that sounds nasty with cmd prompt tho

cinder flare
#

still in beta, but very cool nonetheless

forest pecan
#

ngl

cinder flare
#

powershell ain't too terrible

obtuse gale
#

if the project is well designed that is not an issue

cinder flare
#

all you do is type winget vlc

forest pecan
#

terminal still superior

cinder flare
#

bash? I agree

forest pecan
cinder flare
#

but you can't really winget stuff from bash lol

forest pecan
#

yea

#

i hate batch

#

ngl

#

lmao

cinder flare
#

until microsoft scraps powershell and slaps in bash. that'd be a day to remember

forest pecan
#

windows be like

#

bash sounds like batch

#

lets make it batch

#

wget? lets make it winget