#dev-general
1 messages ยท Page 121 of 1
thats just confusing
@prisma wave Is the FriggaParser class not supposed to be in the repo?
How is that confusing?
How should one measure code performance?
wouldnt push (1+2) make more sense?
The point is that push can be interleaved into expression evaluations
i just misread it lol
imagine only having 3 unit tests
imagine reinventing the wheel
Imagine not being able to reinvent the wheel
You literally based all your internals on my code
not all
LIES
i took inspiration
@prisma wave Most work fine, yield and nested call tests seem to be failing
yeah those are buggy atm
ah
do you get anything like this? line 4:0 mismatched input 'print' expecting {<EOF>, NEWLINE} line 3:0 mismatched input 'println' expecting {<EOF>, NEWLINE} line 2:0 mismatched input 'use' expecting {<EOF>, NEWLINE} line 7:0 mismatched input 'yield' expecting {<EOF>, NEWLINE} line 3:0 mismatched input 'struct' expecting {<EOF>, NEWLINE}
So Odin or Frigga?
very strange
Imagine not writing your own parser
Yeah yeah
Thats what they all say
If you had written it yourself, you wouldnt have issues with this
https://img.bristermitten.me/Discord_xnuxP1UhsS.png works fine in linux
just windows bad apparently
I will tell you though, your issue is probably because windows also uses \r
Odin or Frigga? Which is better right now?
u choose katsu
\r doesnt mean new line
works fine inside the terminal
it means beginning of this line
ik
but id say kotlin ๐
but windows uses \r\n for newlines I believe
which is why I treat it as whitespace
\n\r right?
possibly
Sx Odin runs on the JVM right?
...
Its kotlin dude
probably not
pretty sure neither of us have done interop very well
Have you tho
constructor parameters?
lol
shame
use "JVM:java.lang.Math"
sqrt = (value::Dec) -> Dec {
sqrt = Math.sqrt(value)
yield(sqrt)
}
``` infinitely better
๐ฆ
If u 2 worked on a lang together I bet it would be infinately better than what you both have now
BRUH
He basically took what I have, and gave it a different front end
We practically already are working on the same lang
not true
You would shit talk each other into finding the most efficient process for everything so you could brag about it
BM does it provide an alias for the "use" ?
Oh not atm
what can I say
mine isn't a sealed class
Its from ODIN
therefore better
Your allfather
I took inspiration
Sx ima have to hand this one to BM, he doesn't use Allman and yours is OS to he took inspiration :))))))))))
I was about to say what are you on
Pretty sure I do everywhere else in the project
๐
Imagine considering not using allman to be an advantage
Imagine
Odin is superior because its actually functional
Hello!
Does anyone know how i can disable or change this message when i open a menu in DeluxeMenus?
https://prnt.sc/t9reh9
I thought you couldn't do if statements?
imagine not having match
it's like when but shit because it's not a language feature
ur org wack
Hey just wait until I start to make my own lang, its gonna be so autistic
no need to shout.
lol
no
Merge them into Thor
idiot
:)
We can do Thor when Odin and frigga are finished
Dude my OS is gonna be so flawed you'll probably be able to trigger a kernel panic in less than a minute
uh oh
pls dont make an os
the first 4 bytes of a .class file is "CAFEBABE" in hex xD
ah yes
just sounds like a bad idea
How do you even begin to measure that
also CAFEDEAD for object format xD
nobody will actually use it
I think it would be turing complete if I am able to run odin from odin
Which would not be hard
I mean aren't you still running on jvm if you run odin on odin
but could you write an Odin parser in Odin
Probably yes
Do it
Write a frigga parser in odin
Absolutely fucking not
Oooo
why not
I'll write an Odin parser in frigga
Im writing a frigga compiler
thats the spirit
to compile to what?
share some of this love sx
Im gonna write a brainfuck parser
Oo
isnt brainfuck parser supposed to be easy to make?
Yes
brainfuck is probably really easy to parse
Brainfuck is turing complete though
Because it can do anything
With immense amounts of effort and pain
in theory you could make an assembly > brainfuck compiler
or bytelevel
ah
I'm working on CDIF now
CDIF1
The 3 makes all the difference
Once its done I'll PR it and change that
Instant downloads
You're using Linux, what do you want optimised
have you tried aikar flags and stuff?
I thought u were on about OS
Yeah, Akars flags, don't use random useless plugins, pregen your world, etc
WorldBorder
kitpvp hub prac etc
ok
but need to increase tps
of servers
I have 7
1 bungee 6 tacospigot
Well the spikes a problem, 19.75 isnt
Have you done what I said
It takes longer than 12 seconds to pregen 6 servers worlds
different servers, not worlds
Then take a timings report
Are you doing some super heavy world edit operations?
what are your server's specs
Also if we could see the timings report that would be better
how many players
show your plugin list
and show the timings report yea
and yup pregenerating worlds is also very helpful
ok
LuckPerms, LunarClientAPI, Skript, Verus, PlaceholderAPI, ClearLag, QLib, DisableJoinMessage, PlugMan, Cloud_Console_v2.0, FreezeGUI, SetSpawn, ToggleChat, InfiniteJump, NametagEdit, Blacklist, ConsoleSpamFix, MassSayReborn, AntiDrop-item, TogglePM, FastAsyncWorldEdit, EnderButts, PermissionFinder, SuperSudo, PlayerLogger, CommandSync, Vault, ProtocolSupport, GrantX, WorldEdit, DeluxeHub, Essentials, NamelessMC, ServerSelectorX, WorldGuard, Citizens, ViaVersion, ChatEx, CommandNPC, ProtocolLib, LiteBans
final Environment environment = new ApplicationEnvironment();
environment.bind(SomeInterface.class, SomeImplementation.class);
final SomeInterface object = environment.getInstance(SomeInterface.class);
You guys like this format?
looks alright
mmh
Yes?
LuckPerms, LunarClientAPI, Skript, Verus, PlaceholderAPI, ClearLag, QLib, DisableJoinMessage, PlugMan, Cloud_Console_v2.0, FreezeGUI, SetSpawn, ToggleChat, InfiniteJump, NametagEdit, Blacklist, ConsoleSpamFix, MassSayReborn, AntiDrop-item, TogglePM, FastAsyncWorldEdit, EnderButts, PermissionFinder, SuperSudo, PlayerLogger, CommandSync, Vault, ProtocolSupport, GrantX, WorldEdit, DeluxeHub, Essentials, NamelessMC, ServerSelectorX, WorldGuard, Citizens, ViaVersion, ChatEx, CommandNPC, ProtocolLib, LiteBans
help
delete system32
How is 1.16.1 performance wise?
Take a wild guess
Is 1.12 still more stable than 1.16
indeed
Odin
is case gonna be like when?
oh yeah ofc
Id say its more like switch
Odin
idk why you'd want something like switch but ok
Why wouldnt I?
not bad
OPER
Yeah I imagine so
An instance?
Reusable and disposable sound cool
Wait what?
Nialception
@old wyvern This is what I meant btw https://paste.helpch.at/awuhiwuluc.java
I think the other is better
๐คข
Using String for message keys will end up having you have to lookup the exact string value everytime
Enums ftw
Enums are tedious tho, I mean yea when you have a set of messages and you aren't constantly adding things they're nice, but I prefer this since I just call the key, without having to go and set it in the enum
Set what in the enum?
It's the same thing as using config.getString() though
So you arent doing anything really
Static class ftw
Shush niall xd
I do use that
Lets not give him even worse ideas
Then I have the ConfigurationPropertyProviderManager populate the fields
ConfigMe works with static fields for key but thats a whole other story
Yugi, you have to add it to two places if you go with the enum route, whereas here only 1
2 places?
^
no?
It's just the enum, isn't it?
And the config
That shouldnt be much of an issue
But why have to use "message.path.here" 5 times when you can just call Message.MESSAGE_ID
load on start
I mean, whats the point of your class then?
Why y'all such haters all the time sheesh
or just have the Enum#getMessage call the config for the message value I guess
Isnt like the bukkit configuration sustem constantly read the values from the actual file
It's not hate
But your system does nothing different that config.getX(path, def)
plugin.getMessageLoader().getListMessage("discord-message")
And then you do etc, it still loads them on startup
It's .. useless?
You're useless
Why have you added the message to a hashmap ??
Configs are already in memory
That's unnecessary
Why fo you think you have to call reloadConfig()? To read the file and load the new values
Why pass plugin when you only need the MessageLoader
Why would you pass the plugin for messages even the other way around?
The whole point of having enums for this is to have easier to use Keys
Do whatever you want but imo that isnt a better system than config.getX()
Sounds like you need a DI container ๐
A what
I cant hear another NiaDl or whatever
Nialdi
That face scares me
Thank you
very hideous i must add
ew
๐คข
Yeeting that folder as soon as IJ opens up
It's Saber facs, modifying it
@quiet depot And you say my code is oof
@Override
public TL getUsageTranslation() {
return TL.COMMAND_ALTS_DESCRIPTION;
}
e
E
Cute
Anyone got any spare bleach?
Cause Odin doesn't have a byte type
:whatthefuck:
๐
EST
@old wyvern This you?
Username 'Goku' tried to join with an invalid session
https://img.bristermitten.me/idea64_V4gqshP7nn.png well this is... depressing
๐
optimizing time
@prisma wave OW sucks
does it?
unfortunate
@remote goblet get a better pc and play a better game with me ๐
get me one then 
o
what games do you have 
me and @errant geyser in the RL and siege gang ๐
can u run it
i donteven think i have siege installed
Username 'Goku' tried to join with an invalid session```
@hot hull No I just woke up
Goku lol
isn't that the anime fighter who can fuse with other fighters, channel the energy of the entire universe, and literally become a god?
Anime ๐คข
:AShihi:
How to find Kotlin users
lol
๐
@prisma wave What would be a better way to write a when expression where each branch is a null check?
When only matches with 1 condition branch right?
I mean like
when {
true -> print("a")
true -> print("b")
}```
It would only print ``a`` and not ``ab``
or am I wrong about this
can you show code?Planning it out rn
It will print both I believe
uh rip
i dont think it will
Actually i can probably just continue the loop just in case
yeah looping would fix it for sure
i remember having a situation like this, and it was only checking the first condition that was met, then ending the when
oh wait no
Interesting
Only 1 would be run logically since its an expression
right?
If it goes into multiple branches that would be multiple returning values
good point
bm room 1
bed time
ah
whats kotlin
an awesome language
best language
Its another jvm language
It can also be compiled to js and its own native bytecode tho
why is it better than java then?
here we go
I wouldnt say better
cleaner, less verbose, richer standard library, more syntactical sugar, null safety as part of the type system, etc etc
It essentially just removes a lot of boilerplate by writing it for you
only if you compare it to Java
true
As a standalone language that's not really a feature
It's just how the language is designed
I mean why use kotlin if java is good established
im sure native has its own ups and downs over jvm
Other than boilerplate?
Depends totally on you
cleaner, less verbose, richer standard library, more syntactical sugar, null safety as part of the type system, etc etc
that's why
and yeah JVM is definitely the main backend, but the other 2 are gaining traction
null safety ๐
How null safe?
All jvm languages are
You can have Java and Kotlin classes in the same project
Can you?
How null safe?It turns NPEs to a compile time issue
Pretty much
i got a meme for the subreddit
Nullability has to be explicitly handled
That's lit
idk if i can do it as im on mobile tho ๐
It also means you have to account for everything being null and not null everytime
and if you dont
eg val name: String will never be null, but val name: String? can be, and so you have to explicitly null check
You scrape along a @Nullable on the object all the way
@onyx loom do it
or in kotlin's way, a '?' is appended to the end of the object to show its annotated by that
And there's no issue when working with both Kotling and Java together?
Sounds too good
occasionally kotlin -> java needs workarounds but it all works flawlessly
I would recommend you give it a try
If you know Java then it's easy to learn
too good but its true ๐
indeed
hmm I will give it a try
easy to learn either way, considering this is the first language ive been learning
๐คทโโ๏ธ
ive a sm0l brain, and i reckon java would give me much headaches ๐
It wouldnt
just like the meme on the subreddit
@old wyvern is Djinn your language?
Plus if you are into this development probably have to deal with other languages
yes bm
ayy
writing a Lexer from scratch I see๐
Yea
How would I extend a class in kotlin
Im interested in trying the whole thing
I havent gotten that far
I mean the actual input you were lexing
Still working on the lexer and tokenizer
Or was it just a 5
oh it was the other
a = 5;
b = 465;
c = "t"est""
""".trimIndent()
val tokens: List<Token> = input.lexAsDjinn();```
ah cool
Also my university finally decided to start course registration from the 4th so my classes are starting soon โ ๏ธ
@onyx loom link
yugi, i have college in the morning ๐ญ๐ญ
midnight rn, and i gotta wake up in 7 hours ๐
pain
spend them wisely ๐
do u have to go back every day now, or is it just a few days?
as i only have to go back 2nd and 6th of july
What in the hell have I seen ๐
do u have to go back every day now, or is it just a few days?Online classes for now, I have to travel back there next month aparently tho
Ciao
@prisma wave Found a way to get around the huge when expression
Nice! And that's pretty fast too
Its literally just repurposed logic from function parameter parsing xD
Anyone got any spare bleach?
๐
best intellij font?
Lol
This Person Does Not Exist
uh this is wierd
Just realised its a different 'person' every time
Its kind of creepy when one pops up that has rendered wrong
@obtuse gale most people recommend material atom one dark afaik
the standard darcula theme is pretty good too
cursed
Anyone got any utils to convert this 1h 30m 16s to seconds
Thanks
what in the HELL
@topaz bay I was scared id refresh the page and something like this would come up
lol
@quiet depot Does it do it vice versa as well or?
Already got my own for that ee
sure that's the right placeholder?
I previously had it working but now it's started to do this
using deluxechat
I use % for the placeholder
I don't know why it's showing as {}
okay
it's weird
what server version you on?
1.8.9
okay
Like I said it has previously worked Idk why it isn't now
Maybe something's conflicting but I haven't really installed anything that could conflict
got PAPI installed?
i feel like i shouldn't be doing this
discord link????
also you gotta do that
what feels illegal?
Im talking about a kotlin class extending JavaPlugin 
o
I do have papi installed
ye
also this is not the right channel, ya nerds
yeah ideally you should be in #general-plugins
or #deluxechat
also do you have deluxe_chat set to true in your DeluxeTags config @covert blaze ?
yes
@remote goblet why would that be illegal lol

https://timings.aikar.co/?id=b3e6531c87b4443fa5e0fd2fef77163b
any signs of problems/inconsistencies? my servers lagging with players on. normally 19.99tps, then becomes 12 when ppl join, then goes to 15-18. ๐ฆ help
The 'everyone' mention is disabled so you can't annoy people.
damn
i was testing
you fr just try to tag 6.6k people
https://timings.aikar.co/?id=b3e6531c87b4443fa5e0fd2fef77163b
any signs of problems/inconsistencies? my servers lagging with players on. normally 19.99tps, then becomes 12 when ppl join, then goes to 15-18. ๐ฆ help
@wary sedge but this is serious
idk
sry
๐
restart your server
clock speed
it's been up for 70 hours
tfw u think ur question is important enough for 6.6k people to care
restarting rn
I'm no timings expert, but looks like the problem is todo with chunks
too many loaded in memory perhaps
um
too much happening in those chunks
CPU MHz: 800.147
CPU max MHz: 4900.0000
CPU min MHz: 800.0000
lol bruh
0.8 base clock
stupid
damn that's a pretty drastic difference
4.9GHz should have no problem at all
btw how to check temps
it doesn't need to be 4.9ghz all the time muffin, it'll boost when it needs to
but, why is it this???
ยฏ_(ใ)_/ยฏ
Is it dedicated
yes
@jovial warren Wanna cringe a bit?
https://paste.helpch.at/kasilerome.cs
Maybe try remove fawe?
Why are you running linux mint for your server anyway?
idk
I think you got something mad in the world
someone just told me to use it
The server specs are really good
my dev
tell your dev he's a 4head
why
Yep, but is that too overkill for a 1.8 server 
what should i use
Bardy, ignore the naming, just check the actuall code lmao
Frosty,
something headless muffin
Just scroll @jovial warren
with mint tho, there's probably still a gui running
I don't think mint has a headless version
I don't think mint has a headless version
just changed it to init 3
ok...
o
nice
CPU MHz: 3863.727
CPU max MHz: 4900.0000
CPU min MHz: 800.0000
xD
its back to 800
@quiet depot do you think that somehow VNCServer is lagging me?
Someone told methat
Try remove FAWE, idk if it's gonna reduce anything 
ik
ill remove fawe
then tell u
restarting rn
ok
*20 at startup is normal?
cuz all is *20
It's normal
should i wait 5 min
Yeah just wait for it
I mean, you didn't wait for 5 min ._.
I thought i told you to clear out fawe lol
@topaz bay What type of parser did you use for odin?
I really could use some bleach
๐
r/eyeblech
Disclaimer: Don't actually go there, its pretty much r/medicalgore
If you want actual eyebleach, go to r/eyebleach
just keep nesting those <> boys
I really could use some bleach
you like new to java or something? bruh
lol
that is not how to store pages
though the way my original BardyBot code did it wasn't much better
Dude I'm not that fucking retarded, come on Bardy smh
I'm customizing SaberFactions for a client
yeah ik you're not that far beyond hope lol
yeah ik you're not that far beyond hope lol
:what:
I would bring up the way BardyBot used to do it but I force reset when I committed the new Spring BardyBot so that's kinda gone in to the archives lol
also anyone here used the maven publish plugin?
https://github.com/Ruinscraft/Panilla/tree/master/bukkit/src/main/java/com/ruinscraft/panilla/bukkit 
Ikr!
Didn't expect that much xD
wait what?
"Shit"
Is this name legal?
No
@old wyvern define type of parser
I mean the parsing algorithmn
like LALR(1) LR(0) ...ect
Or maybe im overcomplicating this
I have absolutely 0 idea
My parser is written by hand, using logic that makes sense to me
ah
There is no formal grammar
I see
https://github.com/Sxtanna/odin/blob/master/src/main/kotlin/com/sxtanna/odin/compile/Lexer.kt
https://github.com/Sxtanna/odin/blob/master/src/main/kotlin/com/sxtanna/odin/compile/Typer.kt
The only thing thats similar to a grammar that I use are the collapses and expanders
Expanders are like to expand ++ += and stuff right?
What about collapses?
I also use an expander to process string interpolation
collapses are there to make lexing simpler
instead of writing all the code to process something like ++ into a single operator, I have the lexer process + and + as single operators on the first pass
And then they get collapsed if there is nothing in between them on the second one
And only if they follow a targetable token
like a name
the commands are leaves of the AST
Alrighty time to give this a shot ๐
enjoy hell sweetie
welp โ ๏ธ
got to try atleast
Imma figure out the runtime first so I can have a the parser w.r.t to that
do i get help with my plugin in #development or here?
this tbh
@prisma wave
tsk tsk
So much potential
THROWN AWAY
@topaz bay o
Make it compile to byte code
I stg this man has never heard of liskov
How is she never been banned on Twitch btw 
@onyx loom Oh crap
idk
what server
No server
@onyx loom yw
thanks ๐
Add a ban to Frcsty13 pls
Who's that?
This is why we use kotlin
oof
There is 1111 lines of that aids
You failed a test, so no
trait
real world the problem
interview:
"What are your traits?"
"Named"
- step back and let that sink in
fun fact, frigga causes a stackoverflow when trying to calculate fib(anything more than 4) because there are so many steps involved in function calling ๐
implement multithreaded floating point calcualtions ๐

