#dev-general
1 messages ยท Page 341 of 1
not necessarily
okay
also, @prisma wave, with listen returning a Flow<T>, what would I actually call there?
like how do I produce a flow?
also, do I even need a Flow here for event listening?
I have 2 classes for 2 listeners for example when I have user data to load and save on join and quit and I have another class doing some other stuff
its easier to keep track of what does what and what's where
Depends on the implementation
inline fun <reified T : Event> on(noinline consumer: (T) -> Unit) = context.server.eventBus.subscribe(consumer) that should just be fine
since there won't be multiple values to return anyway
there'll just be one: Event
Eww
what
What is eventBus
an... event bus...?
Obviously
interface EventBus {
fun <T : Event> call(event: T)
fun <T : Event> subscribe(subscription: (T) -> Unit): EventSubscription<T>
}
๐ญ
what
y no reactive
ffs teach me the ways senpai
pls
I ask for help, you say no, then you complain when I do it wrong
what do you expect?
yeah but HOW
๐
why would I even use a flow here?
For reactive sexiness
You return a Flow<Event> that's published to every time there's a new event
Like d4j* does
wat
reactive model
Basically, you pour a bottle of water on your pc and watch it react happily ๐
googles discord4j for answers
JDA does it too with the kotlin extensions
google reactive streams and kotlin flow instead
Yeah
flow in kotlin has the advantage that it's compatible with coroutines and you're free to use it in different fashion
I think Souza mentioned SharedFlow
Which seems to be what you can use in the bus implementation
oh yeah reactor
Yes
But Flow instead of Flux
Flux is from reactor but Flow is nicer in kotlin
Since you can use suspending functions
jda-ktx jda k thanks
@ocean quartz Can you send me a gif for the scrolling gui
there's one on the wiki tho isn't there?
found it
wait so what would be the Kotlin equivalent of a FluxSink?
also, this makes about 0 sense to me lol
how this all works that is
oh right, so I just have a sink that emits events
and then subscribers that listen to those emitted events
oh right
Or maybe channelFlow
Yes
Maybe change the name to listen or something
so fun <T : Event> listen(subscription: (T) -> Unit): Flow<T> right?
flow.blah
listen<SomeEvent>.collect {}
```?
Yeah
You wouldn't normally just do .collect
But you might wanna make a helper function for the cases where you do
no but for example
and yeah, on, like you said before
usual sorta stuff
yes
collect is like forEach
Except suspending
and takes a suspending function iirc
so suspend inline fun <reified T : Event> on(crossinline consumer: suspend (T) -> Unit) = listen<T>().collect(consumer) then lol
now that is what you call a mess
I mean a beauty
totally didn't just copy that parameter from what collect actually takes
๐ฅฒ
also genius, if that's suspending, how tf am I gonna call it in init?
it is
it has to be suspending because collect is suspending lol
well then, I guess it is time for initialize
stupid dumb kotlin
Makes this "amazing' concurrency pattern that's awesome to use until you actually have to do anything
Jokes aside it would be nice to have a concurrency pattern that didn't require breaking changes & coloured functions
also, suspend fun initialize() good wdym
I'm still looking forward to implementing this lol
futures and callbacks change the signature of your functions, async / await makes coloured functions, coroutines require suspend everywhere
Not sure how you'd do it
But there must be a way
Maybe erlang / elixir has a solution for this
I doubt it
if there was a solution to this, someone would've already invented it
maybe
theres a language that automatically multithreads your code iirc
it might be a gimmick but sounded cool on paper
actually pretty cool ngl
also, if I'm emitting events and handling them async, you reckon there's a way to cancel them?
yeah in theory
probably
maybe
right, trying to think of where I should steal the event class names from lol
Bukkit
oh also, any pointers of how I should actually structure my concurrency on the backend btw?
since atm, I just kinda spin up a few coroutines here and there and bam
e.g. chunk and lighting data is sent by using GlobalScope.launch(Dispatchers.IO) from a function to avoid it taking ages and preventing other packets
yeah ban plugins are gonna be annoying as fuck lol
actually maybe not
maybe I should just call an event on a coroutine and then that coroutine gets blocked whilst the plugin does its handling
BM pls help ๐
Come on Joe biden, trump would have fixed the bugs himself by now
love how you just completely ignored the line I highlighted
and the line below and above
Volatile that bad boy
also, when are you gonna respond to my DMs btw Niall
wat
Your "isCancelled" property
Makes threads not cache that value, it reads and writes directly to memory without the caches
Could always look into something like this https://greenrobot.org/eventbus/ If you didnt want to write your own
also, I can't make it volatile in the interface
Make the implemented field volatile
yeah will do
actually hold on what
okay so custom events won't have that volatile
unless I say it's a good idea in all the docs and everything
eh why not convert the Event to be an abstract class instead then?
you know Event doesn't implement Cancellable right?
because not all events are cancellable
Ah yes, bombard static everywhere
This looks cool as well https://objectbox.io/dev-get-started/
Make a CancellableEvent
nah I wrote a reactive event bus @heady birch
that might work
so ```kotlin
abstract class CancellableEvent : Event, Cancellable {
@Volatile
override var isCancelled = false
}
I mean, not all events can be cancelled
actually, I guess they can
why the fuck not
Because if someone uses Cancellable, then they cant be sure of volatile behaviour in this case
No bard
I meant the interface
ig
also, wonder if I should have call return some sort of Result
or something like that
trying to think of how I can actually get this to work in practice
eh, return the final state of the event, but that would also mean it would be required to be blocking
yeah but the way mine will work is that it'll only block the coroutine handling that player
or something like that
unless you have a better option
also, how would I even do that in practice?
I would have to call each one of the listeners and then wait for them to return their results
I'm actually not sure how to do this
someone help pls
callback maybe? idk
mhm
callbacks in Kotlin are solved through coroutines
do that then
yeah but how is that gonna solve my issue?
picture this
a player logs in
you're listening for the PlayerLoginEvent, so you handle it
but it's handled through callbacks, so by the time you cancel it, the player is already logged in
I think events will pretty much have to be sync right?
yeah they will
I might just spin up a coroutine per player
since you can get away with that
Unless you had two ways to listen, like one to handle mutable event one to handle immutable
How is that gonna affect the server if you've got hundreds of players?
a coroutine per player? you know how lightweight coroutines are?
these aren't threads
you can spin up a million coroutines at once on like 1 GB RAM lol
Coroutine per mob then ๐ฅบ
Spawns 10 million armorstands

when I say coroutine per player I mean coroutine per connection btw
Instructions unclear, built a shelf
nah no shit sherlock
lol
anything that won't work with the vanilla client won't be implemented
How are you thinking about storing worlds? Using your own format
hm
oh also, wanna see scoreboards btw?
that might be something that interests you
very similar to Bukkit's scoreboards, but this one won't be slow and dated like Bukkit's is
Looks good, how come its 'team' and not like 'getTeam'? Too java like?
and if you want to do you and depend on the server and send packets yourself, ```kotlin
val session = SessionManager.sessions.single { it.player == (player as KryptonPlayer) }
session.sendPacket(PacketOutDisplayScoreboard())
yeah
I just can't really live with the word "get" in Kotlin
I like that session api
Can you store data in that? Like it could replace people making their own Map<UUID, TheirObject>
In a session
a session is a data holder
Okay cool
class Session(val id: Int, internal val channel: Channel) {
internal val teleportId = Random.nextInt(1000)
lateinit var profile: GameProfile
lateinit var settings: ClientSettings
lateinit var player: Player
var lastKeepAliveId = 0L
@Volatile
internal var currentState: PacketState = PacketState.HANDSHAKE
fun sendPacket(packet: Packet) {
channel.writeAndFlush(packet)
}
fun disconnect() {
if (channel.isOpen) channel.close().awaitUninterruptibly()
}
}
that's it atm
yeah
it uses Netty
Netty + Coroutines = ๐
a.k.a async IO + lightweight async subroutines
oh btw, it'll support Adventure natively as well, meaning you can use Adventure's components for sending tablist header and footer
What's this Adventure everyone's talking about
oh, only the best chat component library you've ever seen
objectively
looks cool
I didn't write it so it seems ok
Added repository to queue, estimated waiting time: 1 year, 2 months and 3 days.
wat
Why would you not just use a module
Instead of another repo
lemmo will do a proper review in 1 year, 2 months and 3 days
^
good point
right, I'll do that at some point
because many repo = seems cool
a.k.a right fuckin' now
duh
sir brister mitten. please check your notifications for a ping ๐
I finally got a haircut
pic or it didnt happen
haven't had one in more than a year
rude ๐ฆ
I think it looks good to be honest
hope you dont die until then
oh ffs why do allprojects and subprojects show up as method call is ambiguous
Because groovy gradle
still don't understand how you lot can prefer groovy dsl
uh hello hello
I swapped to kotlin dsl and tbh i'm starting to like it more
wow
No weird warnings or errors like groovy
have you ever written custom tasks, extensions and the likes?
Havent faced any issue worth switching for now
genuinely curious
Not yet, though I really like that you can do this for the tasks
because if you just do the same thing over and over and don't use many gradle features I can see how it doesn't make a difference or aesthetics matter more
yeah that's for configuring existing tasks
Sometimes you can't really know what you need until you are actually at that point, so using the "better" DSL and adopting to it can make everything a lot easier when you want to do some bigger things
can anyone figure out whats causing this issue? https://paste.helpch.at/dohagafawa.css its the same thing for all my plugins for some reason
I mean switching isn't hard at all, they work the same way, just small syntax differences
Hard without any code, also this channel is not for support
sorry ill post it in plugins ๐
not arguing against that
post in #development assuming you're coding the plugin
ty
It was only recently that I really started to dig deeper into Gradle, writing tasks, plugins and so on
@jovial warren
"This will cover the cost of my hosting, meaning I can stop relying on my grandmother to pay for this."
is this true that you rely on your grandmother for hosting fees
lol
I'm convinced I would have failed with groovy because I simply do not know the language and its quirks
It appeared to me as if you were trying to tell that you can / should use Groovy when you don't write big build scripts, sorry if you didn't
I was just trying to see through the eyes of groovy apologists
Alright, I guess I was making an argument for you then
yeah
not true that it costs $10 a month though
my hosting costs more than that
it's $10.50/month for my 3 Tor exit nodes, then โฌ2.99/month x 4 for my Hetzner servers I think
oh btw, @old wyvern, wanna know why Position wasn't world bound?
because if it is, I get a cyclic dependency
the world depends on its border, but then that has a location that depends on the world
got a solution for that one?
Thats a tricky one
๐
um so i have a class that extends PlayerEvent
and PlayerEvent has #getPlayer
and i know that getters are "bad" in kotlin...
you have to
lmao i love how i knew exactly what u were gonna ask
wot
also
how do I do a static HandlerList variable
@JvmStatic? ๐
funny how the first question got answered right away by two people
but this question isn't getting answered

just crickets
...
Lol
my question is just too hard to answer
anyways, since no ones answering, I'll use @JvmStatic, but since u guys hate that, feel free to ping me if you know what to do, since there might be a better alternative ๐คท
why do u need it static?
87% People does't know about it..
because it'll give MethodNotFoundError or smth like that if i dont have a static getHandlerList
also
how do i use JvmStatic
lol
^
Only members in named objects and companion objects can be annotated with '@JvmStatic'
companion object
companion object {
private val HANDLERS = HandlerList()
@JvmStatic
fun getHandlerList() = HANDLERS
}
ez
yes
u sure?
Is there no way in ktx.ser to handle serialization explicitly for something?
very sure
wdym?
you sure?
positive
๐ค
What will?
Similar to TypeAdapters in Gson
<url>
brister mitten!
SHUT UP
check ur pings โน๏ธ
stops embeds
do you see the problem now Yugi?
Not really?
send again pls
I dont see any world reference there
AHHHhhh
how od i fix this
<html>Platform declaration clash: The following declarations have the same JVM signature (setCancelled(Z)V):<br/>fun <set-cancelled>(<set-?>: Boolean): Unit defined in me.dkim19375.husterycraft.plugin.event.PlayerUpdateCoordinatesEvent<br/>fun setCancelled(cancel: Boolean): Unit defined in me.dkim19375.husterycraft.plugin.event.PlayerUpdateCoordinatesEvent1
AhhHH
i got about 300 @everyones from another server so cant see it very well
why is it so biG
It doesnt even seem to be Positon/Location
are u able to do the code review now? ๐ฅฒ
no, but WorldBorder in the API has a Location, which is world bound
maybe
It doesnt
do i take that as a yes? ๐ฎ
Guys... How long have you guys been a Developer of Minecraft?
2 days
5 years
atleast
8 months
Cool
Amazing
Why do you have two classes with even very similar fq names
developer of Minecraft?
a month
im secretly Jeb
Made a Minecraft Server
oh
oh
0 days then
@prisma wave https://github.com/Kqliber/CombatStats โฅ๏ธ
I've been a Java developer for like 2 years
about never
^
allman ily
unless that's not what you mean by Minecraft server lol
This year is my 9+ years being MC Developer... Start from 2016... Damn 1.6 nostalgia
Lol
Well this is Dev General where Developers can chat together

that sounds like 5 years
I saw what you chat @half harness
;-;
knightzmc ๐ฅฒ
I started in 2016 as well that's 5 years lol
๐ฅฒ
yeah dkim often says dumb stuff in this chat @obtuse gale lol
Wait 5 years?
and we like to laugh at him
Lol
Same
21-16
9?
1.6?
uh
Wait... It's 5 am
jesus
My IQ
I started playing Minecraft Java in 2016 haha
I was about to sleep... Is that freaking sun?!
21-16 = 9 
i started in 2018
โ
9! that's a big number
he wasn't talking to you lol
.
where did the 21 and 16 come from tho
2021-2016 != 9
2021 and 2016 my guy
Dkim brain is buffering
and where did 2016 come from
what's the current year
Goddamit I am calculating this is hurt
From haskell ofc
oh.
Dude..
finished
You sure it's your pc that's slow?
-_-

Wait f

close to 9 tho!
5? close to 9? what kinda planet you living on?
plz
thats 7 years
7
Really?
๐คฃ
ya
I saw that man
Depends on the context
Make your life easier, 20-14+1
minutes? yes,
Years? no
Well yeah 7 years
u have no proof

one better, 20 - 10 -4 + 1
dkim you might want to sleep
I am glad to chat with other Developers... This is my first time actually
but
you're so lucky I haven't er... done some things with discord yet
And this is fun
6
again
5
4
Lol
So guys guys
pulse
dkim you didnt solve the problem in time
your mind is a tortise
lol
gonna have to ban you for not following discord tos @jovial warren
you could have coded a bot to do that though
sorry mate
What the fastest time you made a Server? About 1 day?
wat
Lmaoo
๐
you use betterdiscord
You said u were using a different client kek
21
20
I use Better Discord
no idea what you're talking about
uninstalls BetterDiscord
why would you admit that
How many times you want to edit lmao
oh then I must've misread the chat huh...
And still get it wrong
Lmao
i give up im asking in #development
Lol
indeed
indeed
almost a month now and it's not even done
Lol
What Server is it
writing a Minecraft server from scratch is a big project
that's it
also, Matt, of all people, I think you were probably quite low on the list of people I'd expect to reference the rap battle meme
Server jar?
i could make one in 20 minutes
I could make 1 Minute
average haskeller
BS could you make what I've made in a minute
Put Essentials, chat, spawn & griefprevention & wa la... Survival Server finished
lmao
lol
@old wyvern you got a solution to my problem yet btw?
Essentials chat ew
Xd
mitten chat >
yeah but that requires using the notchian server
that's not the point of this project
spigot*
Notchian?
vanilla
yea
for the uninitiated
just fancy way of saying it
pretentious
Speak english don't use developer language jess
Didnt look yet, was working on something
One sec
Well a Position sounds like it could be a general non world bound thing
I could suggest a WorldContextAwarePosition however

@jovial warren Can I work with you please?
WorldContextAwarePosition wtf
bard
take the word daddy out of that sentence and sure you can
just submit a PR with what you want lol
The issue is serialization right?
no
Now?
if you have something to contribute, it's open-source for a reason lol
Then whats wrong?
look at the instantiation
Wait im going to be the first dude to make a plugin
link
val worldBorder = KryptonWorldBorder(
nbt.getDouble("BorderSize"),
Location(
world // here = the problem, since we don't have the world yet
),
nbt.getDouble("BorderCenterX"),
nbt.getDouble("BorderCenterZ"),
nbt.getDouble("BorderDamagePerBlock"),
nbt.getDouble("BorderSafeZone"),
nbt.getDouble("BorderSizeLerpTarget"),
nbt.getLong("BorderSizeLerpTime"),
nbt.getDouble("BorderWarningBlocks"),
nbt.getDouble("BorderWarningTime")
)
we need a world border to initialise the world
and we need the world to initialise the location of the world border
We ?
this is why I had Position
Lol
Create the world border inside the world
yeah but then how am I going to reference the world?
Is this 100 Plugins in single Plugin?!

this
since it's not instantiated yet, I don't have the reference
Essentials chat yummy
Ew
what should i use
Die
Die dkim
it's not fully instantiated by the time I need it Yugi
tell me
Use meow
what
TriumphChat 
and this@KryptonWorld doesn't seem to work
Can someone teach me how to make a Plugin?
Can it be initialized inside the world class?
Why not make a location just a plain position, entities already have a World property already I guess?
Because you're on earth not krypton smh
-_-
Because locations in general could be world dependent
yeah that's what I had originally
but Yugi said that Position was unnecessary
I am making a MC Server who wanna hop on?
define?
define what?
I don't understand what you mean by "inside the world"
World#createBorder() -> WorldBorder


actually that's not a bad idea
WorldBorderFactory.createWorldBorder(WorldContext.of(World))
for once



Instead of passing the world border itself, give the world enough info to construct the border itself
okay now leave
that might work yeah
how would I do that though?
Give me a minute, reading
also, https://minecraft.gamepedia.com/Java_Edition_level_format#level.dat_format use this as a reference btw
for world border stuff
Also, weird issue, but you have 2 classes with the same name and only 1 segment difference in package
Might wanna have a slight difference in there to not make mistakes later on
wdym?
The WorldBorder interface and WorldBorder data class
every class that has an interface in the API will be renamed to be prepended with Krypton
a bit like how CB does it
CraftServer, CraftWorld, etc.
WorldBorder is nto a implementation of the WorldBorder interface rn
no, because I haven't pushed the code that makes the server an implementation of the API yet
Alrighty
I'm currently in the process of implementing the API
also, the spawn location also needs a world
which then creates yet another cyclic dependency
this is why position exists
Ok from a quick look, if you dont wanna add the arguments of WorldBorder to world directly, you could have an intermediate "WorldBorderConfiguration" data class to be passed that the world will use to construct the actual worldborder
yeah that might work
@obtuse gale why fr?
Check #off-topic
KryptonWorldBorder, I guess thats better than WorldBorderImpl?
Yup
lol
I'm really tempted to create a DSL now xD
worldBorder {
centerX = 1
centerY = 2
}
```ez
Meh, I think I hate dsls Are those like these:
parentDslthing {
mediumDslThing {
}
}
Or:
it.apply {
}
DSLs >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> builders
at least, in Kotlin
builders in Kotlin are big ew
Like how kotlin does its weird functions
DSL is so old, just do fiber instead
Do it gamer
https://paste.helpch.at/uwohuferot.cs
I'm scared to post this, but I'll do it anyway ๐
๐ or ๐ ?
Remember the first rule of an OS project: PR or shut up.
to is nullable?
I thought the first rule was to shame the code and do nothing to make it better
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@Suppress("SpellCheckingInspection") questionable
Speaking of nullable
Just fix the spelling!
yes
apparently
Imagine getting screwed by Elvis
๐ฎ
to ?: return alone should be enough right
yup
no need for another variable
nope
gives errors
lots
unless
i use !!
Its fine to use that if that value being null at that point would be considered a bad state in your use case
ok
to is not nullable
What is to here?
d;spigot PlayerMoveEvent#getTo
@Nullable
public Location getTo()```
Gets the location this player moved to
Location the player moved to
it is
Don't trust spigot's docs
oh that
why the hell
why would it ever be null

idk
its not nullable
Java ๐ฆ
BuKkiT
furthermore IJ literally tells you the elvis operator will never succeed
not for me
lol
Yea id assume so
d;paper PlayerMoveEvent#getTo
@NotNull
public Location getTo()```
Gets the location this player moved to
Location the player moved to
lol
paper >>
Like i said, don't trust spigot's docs
https://paste.helpch.at/capawexisu.cs
bit better?
ew
Never use !!
no god
so revert to before?
yes
Not always*
u guys told me to use !!-
i did not
Isnt distanceSquared better than distance?
d;MongoDatabase
public class MethodHandles
extends Object```
MethodHandles has 1 extensions, and 38 methods.
This class consists exclusively of static methods that operate on or return method handles. They fall into several categories:
- Lookup methods which help create method handles for methods and fields.
- Combinator methods, which combine or transform pre-existing method handles into new ones.
- Other factory methods to create method handles that emulate other common JVM operations or control flow patterns.
If I had used !! now I would have figured out this bug an hour ago
i told you i thought to ?: return would be enough
yes
i never said use !!
it's not
MethodHandles
i thought
distance uses distanceSquared anyways
hibernate docs.xml
damn
lol
#bot-commands
distance squared is better
d;DocDex
@@Deprecated(since="9", forRemoval=true)
public interface Doc
extends Comparable<Object>```
Doc has 2 super interfaces, 1 extensions, 23 methods, and 11 sub interfaces.
The declarations in this package have been superseded by those in the package jdk.javadoc.doclet. For more information, see the Migration Guide in the documentation for that package.
Represents Java language constructs (package, class, constructor, method, field) which have comments and have been processed by this run of javadoc. All Doc objects are unique, that is, they are == comparable.
also, I swear, this commit is gonna be so big lol
divide em up
it's gonna make my fucking contribution lines like 1 million
not really possible
Why not?
I need to implement at least most of the API
big commits 
small commits: 
also, that's not what will make it huge
it's the fact that the modules mean I've moved a file with 171k+ lines again
<brain size="medium"/>
ewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww XML ewwwwwwwwwwwwwwwwwwwww
When you make changes like that, make a commit
lol
sir, latest commit broke things!
oh, lets find out what that commit changed, it is a good thing we make small commits so we can see specifically what changed in a given commit!
300000000 lines changed
I ain't gonna commit code that's fucked lol
commit != push
^
Uh Bardy, why does one of your files have over 171k lines
Oh god
hi
Isnt there a library that handles all that?/
it's a registry for every single state of every single block in the game with it's associated global palette ID
wdym?
Holarino child
There was a library that held and provided those things
Sounds like a nightmare
it's a nightmare to deserialise as well
I'm so glad I never attempted this
Yes!
Can you do nested sections in toml?
elara puts the fun in function ! !
you can, in ELON
I'm down to try and write ELON if nobody else has yet
src/main/resources/registries/blocks.json | 171927 ------------------ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Enjoy
351 files changed, 1633 insertions(+), 187280 deletions(-)
average elara user is always happy
-_-
average kotlin user goes through many depressive state
Elara can only bring joy
and yet another day passes where this still doesn't work
and I have to go to bed now
good night
ffs
srsly
What happens when you dont se eyour db updates
Imagine needing to sleep
And rewrite a lot of stuff
what
imagine having to come off of your PC at 10 because you have school tomorrow -_-
So do I
And realize your dumbass forgot to pass a arg and it provided a null which was handles with an elvis
classic
I'm not on my pc tho, outsmarted gamer
So the db opens in service is "myuser_chat" and in viewmodel its "user_chat"
We should sell Elara life insurance
๐ฅฒ
not unfinished
How dare you
technically functional
Elara is so overrated
It works
lol
false
lol
Elara is so underrated
^
over*
elara use logcal flow analysis to determine the effect of every single line. then at compile time you must input y/n to confirm each line
for example
Yugi have fun with that one
Repl it will pay dearly
"Are you sure you would like to include line 251 in the final executable?"
Elara's middle name IS fun
If only they would have given us $10k to continue on a project written in Kotlin by what looked like 5 year olds
Elara Fun Lang
i will add ```rust
if condition => return error "aaah"
...
elara compiler: ```
newly added line 31394 will mean program fails if [condition] is true. Do you want to confirm the change?
are you sure you would like to include character 53 of line 249 in the final executable*
xD
anyway, gn you lot
"Are you sure you want to exist? y/n"
Farewell gamer
"Terminating user! Enabling SkyNet... please wait..."
where could [condition] be true?
- If module/functionName returns an error
- If file "file.txt" does not contain "hello"
Seggc
indeed
Does anything need to be added to the stdlib for Elara? Like I said earlier I have a load of free time so I want to finally do something in the rewrite
unless you dont care about any contributions becoming redundant
Alrighty
I suppose I should probably learn Go at some point
yes
Its pretty easy katsu
Except for the lack in the std lib
yeah
I'll reinstall GoLand then. Still don't know how I managed to fuck it over as badly as I did
lol
can someone make an application that writes codes based on thoughts?
so i dont have to use keyboard
and i can just wrap a squid tentacle around my head
and just do stuff
That would be cool but has some downsides
like
Humans mind isn't constantly, any action that happens could just ruin the whole code lol
That works I suppose but that could get tiring & it will probably be extremely hard to code even just a simple code
It'll definitely be fun though
what happens if the user says to make Google?
then they get google
nah just give them google
so u have ur ide
then on second monitor
u have google
then u look at google
and it copys it
ye
its too abstract
it just recodes it all for u
i doubt

