#dev-general
1 messages ยท Page 286 of 1
kotlin vue3.0
eww
next-kotlin/js
next-kutlin/js
nutlin
nunlun
next-nutella
React is nice
so is angular
vue is pretty
๐
the only issue with react is that its rendered client-side which means it can load slower
Don't think that's that big of an issue
Therefore angular
yea its not too bad
Isn't angular also client sided?
send your build.gradle
isnt there meant to be a -jvm in there somewhere
oh -jdk
'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21'
=paste
Please use a paste service to share configs, errors, code and long logs.
โข HelpChat Paste
yako add the kotlin plugin
id "org.jetbrains.kotlin.jvm" version "1.4.21"
ah ya boi has it working now thank. 1.14.10
if I have a mutable list and I use .remove() it won't error if it can't find the element right?
no
Mutable
k good
Wow
check what the return type is
i forget but it will probably reutrn the element removed or the index or something so if thats null it was not found

but it definitely won't error
I love how I am not learning it before doing it

why is there a constructor parameter thing
: JavaPlugin()
around a class type
class(params: Blah) : Extension(), Implements {}
primary constructor
sike kali i lied
bruh
i thoguht you were saying the implementations were a block inside braces lmao
oh right i see the confusion
yea yako
class MyClass(val s: String, val i: Int)
MyClass("blah", 10)```
๐
oo
no new?
nope
nbope
bitch
less boilerplate ๐
just ClassName() implies the new
immutable variable
types are inferred
var?
mutable
is mutable
mutable
properties 
val s: String = "blah" // declare the type
val s = "blah" // inferred type is String```
oh nice
horrible var
if I have a class with params, is that automatically in the field
ban it
if you add val/var
if it has val or var before it yes, otherwise it's a parameter only
default public
everything is public by default
how do I make it private
everything is also final by default
for abstraction reasons
private
add private
lol
oh cool
internal is module-private
looks like we are google ๐
its a worthy cause
if my class has a param that is parameter only how do I do stuff with it if there's no contrcutor
It's easier to ask geniuses here because google doesnt understand human grammar
you'd usually reference it in another parameter
oh ok
init { } is like the code that runs in the constructor
ahh
class TestClass(a: String) {
val properA = a.toUpperCase()
}
``` for example
like python
oh lol
it's more like {} in java
o
public class Person {
private String name;
public Person(String name) {
this.name = name;
sout(name);
}
}```
```kotlin
class Person(val name: String) {
init { println(name) }
}```
val name*
sexy
lol
fuck
Lol
lmao
sout = intellij hack
too much kotlin overpowering james mind
k its fixed
yes i know im lazy
same
println
Kotlin::class.java
::class
mine for Class, his for KClass
how do get class name
::class.java.name or something
oh sicko
whatever it would be with a normal java Class
yeah
btw kotlin has null safety in the type system ๐
^^
v cool
String // never null
String? // nullable```
extension functions ๐
plugin.yml main?
val test: String = null!! ๐
val name = getName() ?: return // getName is nullable, but we return if null```
am learning stuff today
yes
congrats
Same thing
gud
It also has inline functions, reified generics, inline classes, data classes, sealed classes, safer generics, no primitives, extension functions / properties, top level members, objects, first class functions, higher order functions, and everything is final by default ๐
very good list
ok we get it its "superior"
yes
Well
indeed
LOL
Is it really circlejerk if we're just stating its features?
kotlin circlejerk
Kotlin is definitely one of the highest quality languages imo
LOL my 12 lines is 1.8MB
good ol andrey
The quality of life is insane
Yeah... No
๐คฃ
Not a fan of that bloke
RICH hickey ๐คฃ
Nasty piece of work
How? The std is only 1.4MB
Holding kotlin back from greatness
ODANG
[19:28:39 INFO]: In onEnable!
[19:28:39 INFO]: bigshizz has gotta take a com.yakovliam.kotlinplugin.KotlinPlugin$MondoDuke
[19:28:39 INFO]: Do thing in bigshizz
What did he remove?
pdm
Tuples ๐ญ
oh
Oh
And they didn't accept sxtanna's suggestion of companion val/fun
ok @prisma wave genius bar tell me how to use PDM in my main class which isnt java
Exactly the same
if you would my friend
Wow thatโs sad
Check the example on pdm repo
There's a kotlin specific one
Which I added a lot of documentation to the other day
oh sexy intellij converted it!!!
val dependencyManager = PluginDependencyManager.of(this)
val onLoad = dependencyManager.loadAllDependencies()
onLoad.thenRun { println("Everything is loaded!") }
That won't work ๐
Try it
yes but
U must learn why yourself
Through pain and struggle
Uh pretty much
Not enough people liking it ๐ข
https://discuss.kotlinlang.org/t/companion-functions/5378
When writing Kotlin code it becomes a pain to constantly create entire code blocks just for a single function; ex. companion object { fun something() : Int { return 1 + 1; } } Could a more concise syntax for this be allocated? ex. companion fun something() : Int { return 1 + 1; } This would really help clean up a lo...
No
Not necessarily
Kotlin compiler slaps a lot of null checks in certain places, which break if the Intrinsics class isn't present
If you chain it all into 1 line it doesn't generate anything though
Check the example
oh wait
so doesnt it have to be chained
like in java chains
oh thats wshat u said
so basically chain = java concept that kotlin ported so bukkit recognizes it
what I dont understand is why you need to build kotlin w/ it because bytecode = bytecode in jar
so why do it be liek that
Up until this
What
Idk
Im looking at the bytecode
why do we need to shade kotlin in the firstplace
its the same
oh wait theres a metadata annotation
For the stdlib
Look at the decompiled code without chaining
The Intrinsics class is in the stdlib, which isn't on the classpath until after PDM finishes
Hence the error
ok wait gimme sec
oh big brain
Intrinsics.checkNotNullExpressionValue(PluginDependencyManager.of((Plugin)this), "PluginDependencyManager.of(this)");
mhm
....@NotNull?
ah
It still checks it
They presumably thought that more descriptive errors were worth the potential overhead
its out
Well I think you can target it, but it will be pretty much the same bytecode as 8
Afaik
I tried to use a java15 thing switch thingy
None of the new stuff
no worko
Pretty sure latest Kotlin targets java 15
o
interestante
Probably because you were using kotlin?
Yeah
O that's cool
I wonder if it does anything different or just supports it
Uses Java 15 concatenation iirc
Ah makes sense
i never said I was done i am gonna make a api implementation in kotlin tmrw
Good
is that the greek symbol for lamda
yes
ok
runLambda { ฮป ->
}
hi
idk if im being an idiot or what, but every time i do /launch, it simply returns "/launch"
@sour moth that's because you're returning false
returning false will cause the usage message from the plugin.yml to be sent
fyi the command.getName() check is useless
since you're only assigning that command executor to "launch"
what would i put instead?
nothing
look at line 12
you're assigning that command executor to /launch
and then you're checking in the command executor if the command is launch
but how would it ever be anything but launch?
since that command executor is only assigned to launch
it's a redundant check
ok
if i didnt do this.getCommand("launch").setExecutor(new Command());, what would i put instead?
yes
Yoo, this is pretty nice
damn
the plus is kinda ugly tho
if you have to include that every time
I guess its a builder tho
A little bit
Since it's a lambda it becomes this so you really have to use it
yea
Well, i'd take an ugly plus over xml syntax
seems like they could make the result of the lambda a string though
but yea its definitely better
This is pretty cool, but is very underused so not many documentation to look at
Starting to find big downsides
Importing React frameworks require a Kotlin specific wrapper it seems
yea i wouldn't assume any of the react things would work with kotlin. they would all be JS
It's a bummer, might go back to normal React for actual working on things
This is still fun to play with though
Oh well, TS isn't terrible
@prisma wave The man just doesn't want to go away, keep getting it recommended
smart blitz
and its gone
just pulled a cj on ya'll
You pulled a dkim
lol
nah cj does this a lot xD when he tries to help but doesn't read the whole convo and realises later he just deletes everything xD
I usually just let it there
dkim does the same
anyone wanna sit on my couch? xD https://i.imgur.com/q4WkgEI.png
do you have a lounge chair
no
Oh damn, Blitz is not on my discord
imagine not being in "Matt's Discordโข๏ธ"
and 1 of them I just joined (BM's)
also that Blitz's Couch I made literally for my website so its there lmao. I have like 5 channels 1 bot 0 people
Very creativeโข๏ธ
true and I also
1 word messages
are not counted
?learn-java
Start with this -
https://docs.oracle.com/javase/tutorial/java/concepts/index.html
Breeze through this skipping stuff that doesn't seem relevant like bitwise operators-
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html
and then hit this
https://docs.oracle.com/javase/tutorial/java/javaOO/index.html
They're the first three from this larger thing - https://docs.oracle.com/javase/tutorial/java/index.html
Which you should definitely go through overall. But those three should be enough for slightly better understanding of wtf is happening here without feeling like a huge time sink
That one is a small part of this larger site - https://docs.oracle.com/javase/tutorial/index.html
wherein "Essential Java Classes" and "Collections" also have good useful stuff
well at least from what funnycube says
yeah
was going to say
he asks for help a lot
lmao
=xp
=xp
bruh what
flex

Oooh i passed cj
nice Matt
This one is better
#dev-general message
Matt random question but do you ever review manual requests?
Just read a bit more up
Uh manual requests?
spigot link requests
yo how do i get a pretty background on the HC leaderboard
yo matt can you get me into harvard ๐ฅฒ
lol
Oh, yeah when ever i get them, most of the times i click on it and it's gone lmao
xD
its Barry
also idk
how to get custom ones I forgot
found it =level img <direct imgur link> - Set your card background image
@forest pecan ^
oh sick
Do any of you ever get "mouse should pain"?
=level img https://imgur.com/WVRykt3
@static zealot,
Want to set your background image on your level card?
Please make sure you use a direct image link via Imgur.
โข Template Image
oh I seee
I didn't even know what the difference between i.imgur and imgur is
it makes a lot of sense tho
=xp
oh nice I've just realised it kept the gradient background
yea lol
can you rename a package and make the check string thingies only check within the module scope in intellij
refactoring your main group package is a fuckmess
Hell yeah, then github is like: "deleted 5k lines added 5k lines!"
lmao
Matt you remember the command to set gradient for xp card?
you can set the top color as well
none of the booster cmds are in help
that's why I have an yellow-orange gradient
wdym top color
=xp
oh yea
top is color usually
top is the booster gradient
but as booster you can set 1 out of 10 gradients
mine is like #1 i think
lol
nice xD
I'm bored lmao.
=joke
Chances are if you' ve seen one shopping center, you've seen a mall.
I did indeed
I've been trying to come up with a dad joke about momentum . . . but I just can't seem to get it going.
=dadjoke
Where was the Declaration of Independence signed?
At the bottom!
im definitely the best looking on the leaderboard ||objectively||
=dadjoke
Did you hear about the cow who jumped over the barbed wire fence? It was udder destruction.
=dadjoke
What do you give a sick lemon? Lemonaid.

Cuz maven
lmao
Delete it
gradle init smh
void setColor(@Nullable Color color)```
Sets the potion color. A custom potion color will alter the display of the potion in an inventory slot.
color - the color to set
love the youtube vs twitch quota limit:
Youtube: Oh yea, you can have 100 search queries per day, that should be enough!
Twitch: 800 per minute, take it or leave it.
I think this is fine at least: https://gist.github.com/thienbao860/63dbd0c589c928907affc6715f513834
^ my own VersionUtil
@prisma wave you'll never guess what I started using
Common sense? 

Had to say it pog
My internet doesn't work so I've legit got nothing to do
PDM good shading bad
especially because it means I can have many Kotlin plugins share the same Kotlin
what the hell. I have 2 bungee plugins both of them using Files.copy(input , file.toPath(), StandardCopyOption.COPY_ATTRIBUTES), one of them loads, one of them errors at exactly that line.
??
don't think that's improper naming
if it was Util, I'd agree
I guess NMSVersionUtil may be better suited?
but VersionUtil is fine

is it a constant though?
It is yes
I guess it's a runtime constant once loaded
definitely not a compile-time constant lol
If something is a final static it's considered a constant
yeah
Bruh miss me with the what kind of constant, noone cares
because static = no instances and final = no changes
Anything else then 
Not sure what's with the SV in the enum names, but that's just nit picking
It's short for "ServerVersion"
(based off of KiteBoard's adapters)
Just for fancy-looking name lol
yeah that's not gonna match though
also, it's lowercase v not uppercase V
e.g. v1_8_R1
ah
me blind
https://github.com/BomBardyGamer/adapters/blob/master/core/src/main/java/dev/bombardy/adapters/AdapterProvider.java#L23 dis how I do it
or shall I say, how Niall does it lol
that was taken straight from KiteBoard
Matt's Lib's version util class also uses substring too
and yes, I know, the way adapters works is kinda whack
Not sure about the "v" replacement though
look at the modules
actually no, I'm being stupid
that shouldn't be replaced there
this is completely untested I guess
How are you releasing it to github already without testing lol
because I started throwing unfinished things on GitHub before I lose them or delete them again out of rage
I often just delete everything because I get annoyed that it's not what I want
adapters will be rewritten anyway
there will be a new way of getting adapters
it'll be fully modulised
e.g. pdm 'dev.bombardy:adapters-login:1.0.0, which will give you access to LoginAdapter and all the implementations
and LoginAdapter can do a few things
then there's a SpawnAdapter, PlayAdapter, etc.
it's meant to be a standalone NMS adapter library, to make your life easier when working with NMS
the things you can do with the LoginAdapter: https://github.com/BomBardyGamer/adapters/blob/master/core/src/main/java/dev/bombardy/adapters/login/LoginAdapter.java
oh btw, just gonna ask out of curiosity, would anyone actually use this?
Might be, yeah
adapters - never write a single line of NMS code again
Compatre works
I wonder if that works without a Agent but just a classloader modifying the bytecode while loading ๐ฎ
LoginAdapter loginAdapter = AdapterProvider.getLoginAdapter(); // gets the appropriate login adapter for the running NMS version
loginAdapter.disconnect(player, TextComponent.fromLegacyText("Goodbye!")); // sends PacketLoginOutDisconnect
then, for example, SpawnAdapter:```java
SpawnAdapter spawnAdapter = AdapterProvider.getSpawnAdapter();
spawnAdapter.spawnEntity(player, entity)
(the player instance is because we need a player to send the packet to, which we get through PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection)
Don't watch it
That's what he wants
Don't do it
lol
BEAUTIFUL
yako may or may not have had a hand in this, since he works for my dev team now lol
hmm
When did pdm get released again?
time
date
I wouldn't be using PDM if I didn't write a lot of Kotlin stuff
2020 start by any chance?
Purely coincidental
but PDM allows me to share both Kotlin and Jedis between plugins

So it was your fault BM
๐ฎ
PDM came after the rona
For fucks sake
Arrest this man
It began while pdm was in dev
has PDM really been a thing since March last year?
Yes
Yea I think so
no it hasn't
Still doesn't work, but that's a minor detail
first commit was on the 20th June you geese
"you geese"
What did the first commit include?
Depression
pretty much fuck all, that's what
Looks like it was being worked on before that date
I won't be using PDM in any plugins I publish yet, but I'll use it in private
don't really see a point in using PDM unless you know you will have other plugins to share your libraries with
also, I still don't relocate any of my dependencies lol
also, can you imagine writing a config file in JSON format so that you don't have to do whacky YAML conversion
https://paste.helpch.at/ahowopuzet.json this is a GUI config I wrote yesterday, wrote it in JSON so I can use kotlinx.serialization
I honestly don't remember
That may be an issue in the future
yeah, might wanna do it for punishments, since I got quite a few
kotlinx.serialization, retrofit, retrofit kotlinx.serialization converter, okhttp, koin-core, exposed-core, exposed-dao, exposed-jdbc, exposed-java-time, mariadb-java-client, bungeecord-chat, kotlinx-coroutines-core and commons-text
oh, and org.reflections
4 of those are just for querying the Mojang API for UUIDs, koin is DI, exposed is SQL ORM, coroutines we know what that is, and commons-text is because of StringSubstitutor#replace
reflections ๐
it was either that or glassfish I think
glassfish is a bit faster I think but also a bit bigger
Might have overdone this....
jesus
we already have that xD
You just... Put it lol
I think you might be referring to a VM?
kotlin doesnt have one of its own
Thats just a file extension
lol
imagine being one of the best mathematicians in the class and not getting invited to a national maths challenge that others in your class that aren't as smart have been invited to 
@obtuse gale An idiot
Hmmmmmmmmm
Olympiad?
Bardy, you'd might want to consider if it's your attitude that was the reason you weren't invited 
you know the maths challenge? idk whether you ever did it
that challenge that certain years do
IMC, that's it
the intermediate maths challenge
2020 award thresholds
Gold 89+, Silver 72+, Bronze 60+ย ย (All years)
Yrs 10&11:ย Pink Kangarooย 89+; Yr9 and below:ย Grey Kangarooย 80+ย ย Kangaroos are UK only
Yr11:ย Maclaurin Olympiad 120+; Yr10:ย Hamilton Olympiadย 117+; Yr9 and below:ย Cayley Olympiadย 110+
O I think I've heard of that
Efefury is a member of the species with the zoological name homo sapiens. These members of the animal kingdom are omnivorous.
๐
Talk about elara
sure
also, on a completely random note, whoever decided that renaming the okhttp package to okhttp3 and then not changing it for v4 is a nut
Are you writing in English?
just say "I speak a bit of French" or something
lol
Ur English is good
somewhen ๐
and explicitly depending on OkHttp 4 is good for Kotlin users because OkHttp 4 was the Kotlin rewrite with all the extension functions
because yes, OkHttp is now written in Kotlin if you didn't know
lol
It made sense up until the last message lol
"for what where who are you?"

I don't think it makes sense in any language lmao
ยฏ\_(ใ)_/ยฏ
might try learning german
Sounds fun
PepeLa er weiร es nicht
ok lol
"somewhen" lmao
maybe you should learn English
love that
really?
can you speak turkish?
Not in most English though
widepeepoSad
Imagine if language learning was like spigot "I'm not gonna learn any words of the language, I'm gonna move to the country and become a famous poet"
Ok lol
Duolingo ?
I mean I managed Slovenian ok
I remember 4 words ๐
not sure if making a request to the Mojang API to get a player's UUID from their username every time someone votes is a good idea or not
Absolutely not
true
Probably more
actually, I'll only make a request to the API when they're not already in the votes table, which will only be when they haven't voted before
which isn't as bad
Du hast wieder deine Deutsch-Lektion verpasst. Sei bereit zu sterben.
Why not use getOfflinePlayer @jovial warren
Uh oh
because I'm doing this on Bungee
O
and also, getting an offline player by name is bad
Just cache it then
yeah I'm doing a lot of expensive shit here
Ok
I have a database table of votes, and I need to listen for a vote, check if they're in the database, and if not, retrieve their UUID from the Mojang API and save them to a database
do your homework efe
I'll do it all async so I don't block Bungee, but still a bit expensive
Right
French and Italian definitely come from latin
So does Spanish (and Portuguese afaik)
french, italian and spanish are romance languages, english and german are usually classified as germanic languages I believe
yeah
Is that word supposed to be read
Or was it just made so people dont consider reading it๐ฅฒ
๐ฌ
The what
I may be wrong, but I've heard this from many Swiss people now
It's still a sort of dialect but it's distinct enough to count as a real language
๐ฎ
submitted my second last homework for basics of computer science as well now ๐
Man I've really done more homework in 1/4 year of studying than in my last 5 years of high school combined
anyone know how you're supposed to set item data for pre-1.13? both MaterialData and ItemStack with the data param seem to be deprecated
ItemMeta?
public interface ItemMeta
extends Cloneable, PersistentDataHolder, ConfigurationSerializable```
ItemMeta has 33 methods, 3 extensions, 3 super interfaces, and 17 sub interfaces.
This type represents the storage mechanism for auxiliary item data.
An implementation will handle the creation and application for ItemMeta. This class should not be implemented by a plugin in a live environment.
public interface Entity
extends Nameable, CommandSender, PersistentDataHolder, Metadatable```
Entity has 60 methods, 4 extensions, 6 super interfaces, and 148 sub interfaces.
Represents a base entity in the world
public interface Bisected
extends BlockData```
Bisected has 2 methods, 1 extensions, 2 super interfaces, and 3 sub interfaces.
'half' denotes which half of a two block tall material this block is.
In game it may be referred to as either (top, bottom) or (upper, lower).
have you read the deprecation note bardy
public class MaterialData
extends Object
implements Cloneable```
MaterialData has 37 sub classes, 1 all implementations, 9 methods, 1 implementations, and 1 extensions.
Handles specific metadata for certain items or blocks
all usage of MaterialData is deprecated and subject to removal. Use BlockData.
everything's an interface because it's implemented in CraftBukkit
and yes, I did
for MaterialData it's magic value, for ItemStack it's also magic value
public interface VersionTree
extends BlockTagTree```
VersionTree has 1 methods, 1 extensions, and 2 super interfaces.
A tree node for an @version block tag.
@version version-text
Great
First remove the unnecessary names
Just rename
But honestly
If itโs obfuscated itโs for a reason
java-deobfuscator works fine for ProGuard I think (worked for KiteBoard), and there's another one that works for ZKM, stringer, etc.
https://github.com/GraxCode/threadtear this can do a decent job of busting just about anything
it detected FeatherBoard was using ZKM ez
why would you obfuscate your libraries?
lol
imagine obfuscating at all though amirite
open-source good proprietary bad
and for reverse engineering C, try Ghidra
People who try to deobfuscate just damage the work of others typically
They obfuscate on purpose to try and protect their work as they feel it is valuable
yeah, I don't agree with code stealing, that's not fair, but I agree with open-source
A lot of people have already done it with Minecraft lol
the thing with obfuscation though is it's security through obscurity
When you choose to make something open-source itโs your own choice and is good but some occasions require the opposite approach
the problem I have with obfuscation is the fact that people think their code is valuable
Is it not?
Do you feel you are worthless and insignificant
Cause you might want to have a talk about that
no? but we're talking about code here, not people
programming should encourage code sharing
your code can be, and often is, written much better and much cleaner by others
I agree some people donโt produce amazing code but there is some decent stuff out there
and for the record all my code is open source jerry, apart from commissions (due to the source not being mine, the rights belong to the buyer)
so there isn't really that much to protect
No premium plugin is worth "stealing"
yeah
but for example, I could just go and remake FeatherBoard from scratch, and with a bit of help from a few others and Stack Overflow, probably make something better
or LiteBans for example
or even Minecraft
and that's not me being arrogant, that's me being realistic
Bardcraft
lol
Mhm
๐
I like to encourage open-source everywhere
The downside of obsfuscation is that it achieves next to nothing while making life hell for any poor sod hired to add a small hook to your plugin
at least having your stuff open-source means you get to laugh at idiots who complain about DRM's
Why would you obfuscate the API?
and even better when it's freemium, and ends up on DarkSpigot or DirectLeaks
blackspigot*
xD
DirectLeaks is a fun one
I can't say it without it getting yeeted Pig, you know that lol
oh
Remake every vk's plugins :)
I got some of my stuff on that
i thought directleaks got shut down
It wasnโt even obfuscated
I might eventually, over time
"API"
I'm kinda committed to providing free and open-source alternatives to premium software
Yes
just what I do
You hook into APIโs do you not?
@oak coyote OS or you get the stick!
jerry people don't always include apis, but sometimes you still need to hook in
because I don't believe in people having to pay for everything
Iโm sorry frosty
Many premiums don't even have actual APIs
or they make absolutely terrible APIs, and then complain about useful suggestions because they'd "make people more likely to come to me" cough LiteBans API cough
or if they do it's just some shitty interface with 2 methods
well then thatโs the larger issue
Sure
(reference: https://gitlab.com/ruany/LiteBansAPI/-/issues/45)
Which wouldn't be an issue if the code wasn't obfuscatied
Ruan is a fucking idiot
Those with decent APIโs which are documented can be very good even after being obfuscated
he's a dick head, I can't stand him
hey fun fact guys clip gave us access to his plugins
clip should make more open-source plugins lol
And then you wake up Piggy
o cool
How many popular premium plugins actually fit this criteria though?
I don't see the point in making something free but proprietary
Not many but that is something for us to change as a community
Piggy, will the staff team be getting access to perhaps help with them, or is that a no
I once heard the argument from ProSavage about why he made FactionsX proprietary, that he doesn't want people stealing his code, but that's security through obscurity
no sorry frosty, just between the admins
that may change in the future
but for now it's just admins
Feels bad, but I mean it took how many years to get to this point atleast?
Sure, but the easier option would be to discourage obsfuscation as a whole.
Punishments was literally created out of my hatred for Ruan and his shitty API lol
this is so unbelievably selfish
But time is money some make some money from what they do
His code is shite tho
if I can't convince Niall to open-source KiteBoard, OpenBoard will become a thing as an alternative
he accepted my friend request yesterday, so maybe I can persuade him a bit more lol
@heady birch glare open sourced guilds and it went fine
kiteboard won't suffer
hey voteparty too actually
and it'll attract more people I think, as it'll be an open-source alternative to FeatherBoard
I do like to laugh at how VoteParty and other plugins still get put on DarkSpigot
BM
Glare said he regrets using kotlin kek
๐
lol
๐ฅฒ
Why lol
bloat
I'll find the convo when my internet is back
i assume
Outside the problem here, are you guys using VS 2019 or VSCode right now?
not surprised, he was "helped" by Sxtanna
Both
xD
Lol
I have all of those installed
I use Atom for GitHub Desktop and Notepad for everything else lol
I am on the editor for Godot here
Emacs Lisp
or vim
wym atom for github desktop
Still havent used ruby and have had rubymine installed for a few months now
@hot hull is using witchcraft currently to talk to us as he doesnโt have internet ๐
vim > nano
nano is easy tho
Jerry, mobile data
Also, I regretted using Atom ๐
I call that witchcraft
atom kinda sucks
atom is too slow
yeah I hardly ever use it
VS C ftw
I generally just use good ol' built-in Notepad
People still recommend them in yt
๐
does vsc compare to sublime speed wise yet
I obviously don't write code with Notepad, but I use Notepad to store things I want to look at
Its slower pig
cuz ik it beats it in functionality
Not by much tho
but speed is still lacking last time i checked
I use notepad like sticky notes
I'm actually pretty ok with the speed it has. I used to use it before and it was like super laggy because of a plugin I had but that got fixed as well
same lol
Ew Blitz, that's too much imo
xD
VSC can never beat sublime



