#dev-general
1 messages ยท Page 328 of 1
Everyone needs to switch
:!gradle shadowJar build
so much easier to just write it in one command
yeah nano is much easier for beginners imo
fuck
what
i donโt get what the point is of fully fledged cli editors like vim
it's a bit like whichever one you get used to first is the one you stick with
like why not just use a gui editor

kinda hard when you're connected over SSH lol
What is that of? xD
mhhm
which is the primary place I use vim
not really
The weed medicine thing?
I use nano when in ssh
because ssh has a complementary protocol called sftp, which solves that issue entirely
man
stock of a random weed company lol
also, anyone who uses Notepad over SFTP instead of vim is big ew
oof
also, Pig, I'm literally a Linux CLI guru lol
you need to prestige your ego level, start from 0
I learnt from a guy who setup Postfix and Dovecot with nothing but man pages lol
docker better
docker run *
ew
Docker Compose >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> docker run
did you know our universe runs in a container
k8s >>>>> docker compose
Still trying to get used to linux with a kde neon on virtual box ๐
I swear Kubernetes is separate from Docker
fun fact lemmo our universe is just a mock for a few unit tests
exactly

weโre literally just a part of a jenkins job
it is, it's container orchestration
yaml ๐คข
Whats the coverage like?
50 +- 50%
xD
well using YAML is vastly superior than having to memorise the run command and run it every time you restart docker or your system
the guy who made docker said he wouldn't have needed to make docker is WASM existed
ELON > YAML
literally you write a YAML file, run docker-compose up -d and you're done
๐ฅฒ
I prefer TOML
what is elon
Elara Object Notation
Elara JSON iirc
oh
EDN ๐
stop circlejerking things that don't even exist
whatโs edn
๐
mmm
EPM
EPM will be good
when I write it
when Yugi finishes the compiler lol
or whatever you wanna call it

yea intellj ui is definetely cleaner
mhm
I seriously should start on the typer xD but procrastination ๐
man when u have vim in one tab and htop in another
EPM written in Elara wen
๐
EPM will do the following things for installation:
- Download the packages from a trusted source (in our case,
pkg.elaralang.org) - Verify all the packages with GPG keys
- Install the packages
when htop is number two on htop
lol
cant see that on dark theme
pkg.elaralang.org when lol
okey
AAAAAAAAAAAAAAAAAAAAAAAAAA light theme is literally impossible to do anything on
how do people live with this
man yeah
it's literally dark theme but inverted, that's it
lol
any of you use light theme in ides?
no
nah
Yes, Im currently waiting for new eyeballs
lmao
you mentioning C++ reminds me I still want to learn C and x86 assembly at some point lol
and probably Rust as well
Learn haskell
and yeah, Haskell too
maybe F# as well, just to make BM stfu
xD
another one to drown in monads
๐
okay the first thing I find is that apparently, integers have arbitrary precision
well that's gonna be fun
https://www.haskell.org/tutorial/goodies.html well this is fun
Actually the home page has a little intro thing youcan check out
it walks you through some basic stuff
why can't every programming language have a learn page like Kotlin's
IO monad ๐

learnyouahaskell is good
?
what
how does what work
it's like ```kt
4.let { x -> x * x }
ah right
the word in kinda confused me lol
ah, just separates the expression from the body
oh you can construct new lists really easily wow
not sure if that only works in functions tho
'a' : []
yup list literals are nice
more precisely of lets you use variables from a let declaration in an expression following the in
also looks like Haskell can implicitly convert character arrays to strings
yeah I saw that
strings are character lists
yes
yeah ik they are, but sometimes you can't do that
in other languages
im fairly sure String and [Char] are pretty much aliases of one another
map (+1) [1..5] okay that's pretty cool
currying ๐คค
you can take a list of the numbers 1 to 5 and map them adding 1 each time in that
yeah
that's actually nice
๐
(+1) curries the (+) function with the first argument of 1
let square x = x * x in square 10 okay that's pretty cool
you can write functions and then just write some code after it and it'll print you out a result
It wont actually print it out when its not in a repl
yeah
ah
let square x = x * x in map square [1..10] okay that's even better
๐
map in Haskell seems to be designed really really well
how so?
Its the same as in Java or anything pretty much
you could also do ```hs
map square [1..10] where square x = x * x
Streams and stuff derive from this
yeah I didn't really know that but makes sense
let (a,b) = (10,12) in a * 2 very nice
let (_,(a:_)) = (10,"abc") in a okay this syntax is starting to get a bit... yeah...
still really concise though, which is really nice
wtf is that lmao
gets the 'a' character
is it just me or does this look like one of those "this domain isn't available, but these are" kinda sites lol
dw you're almost never going to have to use something like that id assume
You can split that into multiple patterns on the same function
They probably describe that further on in the docs
oh yes, learnyouahaskell is awesome
Also PluralSight 
also, looks like Haskell knows what mathematical precedence is
unlike some other languages cough Kotlin cough
haskell is maths
ah right
so it's the same then
since aren't && and || just frontends for and and or with booleans anyway?
thinking about it
frontends?
same as
whatever
I mean they make you think they're something different but they're kinda not
also, I just realised something
BM made a method for calculating varint sizes in the SizeEncoder that's probably much more efficient than my solution in bytebufs lol
you stole that?
probably
because I swear I stole mine from Notchian lol
i dont remember exactly what you're talking about
and seems to take a list of booleans
i might've adjusted it
private fun varIntSize(paramInt: Int): Int {
return when {
paramInt and VARINT_THRESHOLD_1 == 0 -> 1
paramInt and VARINT_THRESHOLD_2 == 0 -> 2
paramInt and VARINT_THRESHOLD_3 == 0 -> 3
paramInt and VARINT_THRESHOLD_4 == 0 -> 4
else -> 5
}
}
```that's yours
oh that might have been me
so i guess the diff is && uses exactly 2 arguments and can be used infix since its defined as an operator
yeah
fun Int.varIntSize(): Int {
for (i in 1 until 5) {
if ((this and (-1 shl i * 7)) != 0) continue
return i
}
return 5
}
```mine
not sure which one is better tbh
ah right
man
right, I think I've got enough things now that I should probably add configuration lol
since having a big long string with system property definitions in it is kinda becoming impractical
toml
welcome to the club
yes
๐
lol
๐
anyone familliar with php and sql search algorithms?
this discord doesn't have many php users afaik
oh :8
@frigid badge might be able to give you a few pointers if he's not busy ๐
*few
just ask your question @dusky drum
anyone care to review https://github.com/KryptonMC/Krypton/pull/4 btw before I merge it?
just want some opinions on it
and I also wanna get you guys involved ๐
Yea sure
make sure to rip it apart btw lol
lol
budget ๐ฅฒ
Since when does github have boards? ;o
you didn't know this? lol
Had no idea
man
Krypton has a board ๐
they're great
they work amazing for what I need them for
its Microsoft all over again
Still prefer Gitkraken's glo, but that's cool
ElaraBoards ๐
and they don't have like stupidly low limits with the higher ones hidden behind a paywall, unlike some other software cough Trello cough
yeah that's not what Microsoft is trying there
i like how easily it integrates with issues/prs
yeah same
mmhm realy
also, Trello is by Atlassian
Atlassian can go rot in hell
their prices are a fucking joke
Trello is fine
Trello is nice, but I wouldn't use it over GitHub boards for this sort of stuff
Tbh all these boards do the same, i go by visuals more than features, and trello sucks in that regard
yeah Trello's visuals absolutely suck
Looks fine to me ๐คทโโ๏ธ
I like this one
Clickup best
Notepad best
Yugi, can you fork and figure out what the fuck is going on with gradle https://github.com/op65n/Op65nTerrain
What is the issue?
Sure
I believe I fucked something when it comes to the modules, since it's doing all sorts of shenanigans
what does this support btw? or can it be adapted to support any platform?
It'll be any platform
nice
Emphasis on it'll
What is that supposed to mean?
I'll probably Kotlinise a few things and move them around if I'm putting this into Krypton
Oh, that its not ready yet?
eventually, perhaps, if I have the brain power to make it
oh
I believe that I can tie this rope 
oh btw, anyone here seen how fat the world package is in Krypton yet btw? lol
Yugi do click this, thanks https://github.com/op65n/Op65nTerrain/invitations
๐ฎ
Add a stonks difficulty, thanks https://github.com/KryptonMC/Krypton/blob/master/src/main/kotlin/org/kryptonmc/krypton/world/Difficulty.kt
what's rule #1 of this project
PR or SHUTUP?
if the Notchian Client can't support it, Krypton can't support it
stop calling him frusty ffs lol
lol
which one?

stonks
@hot hull fixed, check pr
Thanks
can someone tell me the benefits of using atomics over just regular primitive values?
like do they ensure thread safety or what?
They are volatile I believe
So is this nuke in my basement
-_-
he's referring to the fact that I said atomic lol
๐ฅฒ
atoms in clojure :)
you keep telling yourself that
rude
frasty is very funny
also, anyone here actually know what Kotlin's atomics are for?
ah actually I see
kotlin.native.concurrent
that might explain it
is server.pro good if i cant host a home server and i need to test my plugin
Its the same as in Java bard
why can't you just startup a local testing server?
because it requires players
imagine not having an alt 
and? connect from multiple clients pulse
use forge man
lol
So its same across threads, no chance of having threads cache diff values of that
ah right
that exists?
there is forge mod
that can act as if you are different client?
mmmmhm
user account switcher, but it only works on offline mode servers tho
lol
also, you know you could just use a cracked client and use cracked accounts with the local server in offline mode right?
yes that's basically what I'm suggesting
I'm not by any means saying that you should use cracked accounts on real Minecraft servers, buy your accounts
but for local testing it's okay
yea
ALWAYS
OKAY
he's having a stroke
rip
no I'm just overjoyed about clojure's robust atom implementation ๐
mm
Senpai
This is interesting to read
How to cut it by 100%? Quit
Theyโre parsing JSON. A whoppingย 10 megabytesย worth of JSON with someย 63k item entries.```
Damn, that's crazy.
Possible to sue 'em for this atrocity?
@ocean quartz I'm slightly disgusted
// Gets the value of the real coordinates from the chunk
val realX = x + chunkX * 16
val realZ = z + chunkZ * 16
Why?
bitwise faster
Eh wasn't going for speed
:bruh:
Wtf
Will R* do afterwards something?
That'd be crazy if they went 7 years without making a 50 line code change to make loading online faster.
Would be funny if in the next month they release a small "performance update" and fix it.
๐
and give absolutely no credit to the guy who actually suggested the fix
So I've made a generator, but it's flat as y'all tiddies so I don't think it's working
fLaT, just like the Earth
nice render distance
It's at 24 chunks, wat u want
thank
can i join u in ur game of sudoku
๐ฅถ
that biome blend tho 
That's default stuff
lol
Haven't even joined the server yet
yml ๐
sexy
https://paste.helpch.at/opaxipisom.cs AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-_-
honestly though, the amount of times I've seen ridx + len > widx is insane by now I swear
oh I fucking know why FFS
right, explanation time (even though no one probably really cares)
or understands
every chunk has 16 sections (18 for lighting purposes, but that's another story)
the chunk data packet has a primary bit mask field, which has a 1 bit for every section present in the chunk, and I've got that hard-coded to 0b1111111111111111 (every section present), since for most normal worlds, this is always the case
but for a superflat world, not all the sections are present
can anyone just go onto my server and kill me cause i wanna test my plugin ๐
ip?
what the fuck
yeah
get via*
coming
hey at least u got kaliber's ip
do i care
nope
if you cared I would've DM pulse :))
what
i mean even if u try ddos ur gonna have a hard time
and if u do manage i can always just call my isp lmao
why would i ddos
anyone
my computer randomlly died
also me dming pulse was a joke; no point in dming for that
ddossing is illegal afaik, even if it isn't, i wouldn't do it anyways
I can't believe you took it so seriously :/
pog
๐คจ
ah
clash?
@old wyvern I pushed stuff, if you wanna work on stuff feel free to, rn the values are pog cause I've not fixed something, but you'll see it's state at least
pulse i think i might be doing the same in my plugin kek
Awesome, alrighty
im gonna have to check if my kda checks for 0 ๐
lmao
Alrighty, ill get on that from tmr
make a renderer module for it
mhm ๐

thats better @forest pecan kek
nah this is my own plugin ๐
been working on this for ages, just been chipping away at it bit by bit
Oh lol
dkim....
https://github.com/dkim19375/BackupWell/blob/master/src/main/java/me/dkim19375/backupwell/listeners/PlayerMoveListener.java
๐
hey anyone got a pregenned world I can steal for testing?
Too big my guy
arghh
or you could just... open the link
not rocket science
u dont know how long it takes
There you go
google itself once took 9 minutes to load
Mind you, I had to switch my page zoom to 0.5x
to fit that whole thing
merge that haha
even though it might not even work
yea it wouldn't run xD
Dkim, gonna show you something, just a sec
Time to PR a worm?
๐ฅฒ
@old wyvern make it store usernames, UUIDs, IPs, everything to a database lol
Nein
Actually, probably shouldnt share that here
yes! PR that!
new Main()
o
@half harness There, this is your plugin
uh
whats that matt
Codacy
7% issues isn't bad
These are your worse files
๐ค
Dkim, wtf
oh no
i dotn like 'wtf's
what the fuck
if it shouldnt ever be null then why are u throwing an NPE?
"It should never be null": Throws NPE
then throw an IllegalArgumentException if it's null! not an NPE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
throw new Throwable
ig thats useless lol
throw new IllegalArgumentException(); problem solved
or IllegalStateException actually might be better
throw new ThisShouldNeverBeNullException();
since we've entered an illegal state
matt did u pay for codacy
Nah
what does that mean
what does that mean
complexity of the code
Means your method is big has too many complex statements
so it's basically saying "this is a god method"
Why is this an issue?
Since: PMD 3.9The NPath complexity of a method is the number of acyclic execution paths through that method. While cyclomatic complexity counts the number of decision points in a method, NPath counts the number of full paths from the beginning to the end of the block of the method. That metric grows exponentially, as it multiplies the complexity of statements in the same block. For more details on the calculation, see the documentation of the NPath metric.
A threshold of 200 is generally considered the point where measures should be taken to reduce complexity and increase readability.
im not gonna read that
your code is shit
change it now
fix it
or else
lol
you know it's old if I'm not using final
What is the point of this break?
Lovely answer
Then why the loop?
also, you know you're meant to be very very very very very very very very very very very very very very careful using PlayerMoveEvent right?
uhh yes
since it's called every time PacketInPlayerPosition comes in and isn't the same as the previous position, which is very often
Btw you can optimize imports, you have a lot of unused imports
no buts!
yes butts
yeah, because it's not like 99% of us here have memorised it too
I didn't know that existed lol
o
Noobs
wow
also, I discovered another really useful setting the other day btw Matt
remove empty line indentation on file save
I have mine to auto format on save
Also have mine auto add trailing commas
also, @prisma wave, you still gotta review that PR btw
okay turn on keep trailing spaces on caret line
it means the current line you're on doesn't get reset when you tab out
we failed
nooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
also, BM, review the PR 
๐
helpChatArchives += brister_mitten_look_in_twenty_minutes
he meant 2 minutes ๐
.plusAssign
it's Python lol
.plusAssign
also, that's what += is
when all of ur issues are from readme and no comments ๐
You can ignore some files
o
Right here
do u know how markdown bro
lol
lol
does anyone know the inventoryevent if a player presses e to exit
cause i listened to inventorycloseevent
oh wait
nvm
im stupid lol
we know xD
L
l
lIl
https://github.com/KryptonMC/Krypton/issues/8 this is gonna be real fun to fix lol
also, guess what just got merged btw guys
one of these
yeah but guess which really nice really important one just got merged just now
build #10
download and run with java -Dkrypton.world.dir=/C:/Users/someuser/path/to/world/dir -jar Krypton-0.7.jar (gotta be in URI format, with forward slashes and starting with a slash, and also must be absolute)
I did listen to your suggestions btw Yugi
right, what next?
actually ik what's next
๐
just added legacy server list ping support to Krypton lol
basically means that older clients (namely 3 different protocols: beta 1.8-1.3, 1.4-1.5 and 1.6) can ping the server in their own special ways and receive proper responses
why
it's part of the protocol
because you're meant to
oh sure let me care for a version as old as the game itself
to quote the wiki, "While not technically part of the current protocol, legacy clients may send this packet to initiate Server List Ping, and modern servers should handle it correctly."
it's basically just to tell the client "you're way way way way way too old for me, you can fuck right off"
since apparently, old versions literally just won't let you connect if the version they receive from SLP is way newer than their version
1.3 apparently does though, and it seems to make Krypton scream, so will have to fix that lol
probably should do some checking for the received client version
Huh?
just saying how stupid it is to blacklist the site you're using
jcenter goes babybaby
do't fucking belive it
anyone knows any alternative besides maven central?
their coordinates and ticket stuff sucks
Jitpack ๐
jitpack is a auto service, you don't have full control
I don't think there's many other options other than Jitpack / Maven Central.
Well, Jetbrains Space, if there was any time to release it more publicly, now would be the time.
Yes
I agree
but the last time that I talk with someone from jetbrains space team
There are alot of things to be developed and a "open platform" is not one of this things
Also Jetbrains Space is more focus on software company not software it self
different from Github
speaking in github, I will read a little bit of their package system
Github packages is so complex to setup though
What about Sonatype
Anyone interested in joining the simplexdev team
That's maven central ;p
this is #dev-general
github packages is not in any way shape or form an alternative to the services that were shutdown, for the sole reason that it requires authentication
:what:
you have to authenticate to the repo via your build tool to download github packages
and that's bad
because you don't have to do that with jcenter or anything else
What would be the best file format to use for world generation settings, I pressume json?
Maven Central superior
no, NBT
so it's compatible
pls ๐
:huh:
lemme get you a ref
Please do
actually no
actually yes
scroll down
you see "WorldGenSettings"?
https://minecraft.gamepedia.com/Custom_dimension here's what you need specifically btw
I need minecraft:noise and minecraft:flat mainly
and maybe minecraft:debug might be nice too
Should be fairly straightforward
minecraft:debug is proper ez
minecraft:flat is like meh maybe
minecraft:noise is a fucking pain in the ass lol
Since my noise is fucked and everything is as flat as @onyx loom's tits
omfg HAHAHAHA lol
debug is just all materials, or is it structures as well?
it's all blocks that can possibly exist in the world
Frosty, you'd know what Kali's tits look like?
Something u wanna tell us there gamer
flat as fuck
๐
every single one in the 171,000 lines that dictate the blocks and their states
Yes yes, it gonna be smooth sailing once we get to that point
I can send you the 3 MB file if you want, probably easier than you extracting it yourself (even though it's just a single command lol)
send me the command
gonna post it here as well, in case anyone else wants it
java -cp some_server_jar.jar net.minecraft.data.Main --reports (source: https://wiki.vg/Data_Generators)
latest blocks JSON if anyone can't be assed to run that command lol
F# for me
uh oh
What should be the challenge I have to complete in each language
im just gonna make extremely small programs, more for the syntax learning
Time to figure out how to even make a project for it
does ij have any plugin for f#?
JB Rider I presume
i cba to dl that
Same
๐
yeye
using VS considering ive already installed it
VSC cause fuck VS
had to install it for VISUAL BASIC
horrible
u will need .NET core installed i think
you might have that already if u have VS
Yup already did that
nice nice
i CANNOT believe VS has wrote hello world for me! ๐
smh
f# has a "script mode" too so you dont technically need a main function
kinda like python or something
o
Yea that's what I'm using
idk what projects are good to learn
i just did COC stuff
and googled a lot
maybe try an advent of code problem if u can still access those
You can yea
btw I finally got a new chair
nice
no one cares
ok
lol
but its here
huh?
my language that I'm learning this week is Haskell lol
beautiful
"F#"
yeah
-lang "F#" ez
PaperLib.suggestPaper(this, Level.WARNING);
``` if u aint using paper, u gettin' an obnoxious ass alert in ur console m8
Level.ERROR
noooooo
and now its telling me not to use Bukkit.broadcastMessage()
and it wants me to use adventure components and shit
sadge
bukkit linter
SEVERE
do not call main class "Main"
What do I need to add here
mmm vsc
u got the Ionide plugin?
Yes
!
Easier said than done
youll be fine
when learning a new language the best idea is usually to recreate something you've already made
although that's kinda difficult if all you've made is plugins lol
Any suggestions? So it'd use as much of the language as possible
A week yea, I also have other shit going on in the meantime so not exactly something advanced af
alr
u could start with COC / AOC problems just to learn the basics of the language, library functions etc
then maybe try making a basic web api or discord bot
Make a webscraper than starts at a link and visits every link accessible through it until no new links can be found
hmm that could be cool

Would it note down the accessed links?
u could always make wiki.frosty.dev or whatever 
๐ฎ
or a basic language interpreter
fpprank2.0
A week yea, I also have other shit going on in the meantime so not exactly something advanced af
or a basic language interpreter
i see nothing wrong here
Might switch to VS rn cause I'm getting annoyed
switch to... vim?
something very basic
just like 1 + 2 + 3 or something

rider ๐ฅบ
lol
pog
Nein
If I download another JB ide I'll get it
is 2 not enough
Nein
lol i uninstalled toolbox cus it wasnt letting me download ultimate from there
does JetBrains have an IDE for Haskell yet btw?
no
nah
has jetbrains even released the ij roadmap
not much need for a standalone IDE unless it's a lot different
except no f# plugin ๐
jetbrains skript ide when
yes please
rider
Death.
intellij
intellij
with something like .NET it's a completely different ecosystem, so a separate IDE makes sense
๐
btw,
Not yet
whereas haskell and rust and things can be done with just a plugin and a few tools
lmao nice
i donโt get it
There are 2-3 plugins
what is the pic showing
But they all equally suck
oh youโre trying to learn a new lang?
Yes Piggy
c#?
F#
C# ew
for what
The only actual feature you'd get ou using ij for haskell is maybe seeing the type on hover
awful conventions

