#dev-general
1 messages ยท Page 282 of 1
L
indeed
What kind of database do you guys support for your applications that use any?
I'm not sure if I should stoop down to the levels of sqlite and json databases or not
I usually like to use MySQL wherever possible
but I realize not everybody has a MySQL server running
Maria 
try to have at least one file storage and one DB if you can
so I'm unsure if that would cut off a chunk of users from my plugins
have a json storage by default, but if they want they can enable mysql
ew. I'd rather go with sqlite then
that works too
just any sort of file storage so anyone can use it, then have mysql or mariadb or something as an option
My problem with JSON/SQLite there is that they don't offer the same features as MySQL and are really limiting in that regard
Object Relational Mapper
Welcome to the korm fields
Kind of like Gson but it works for SQL too
right
does korm work for sql too
Is a smexy thing if you have larger objects
i always thought it was only json
Korm isn't an ORM
It's quite a misleading name
Well it kind of is
But it's also a language
it is?
I love you Matt
๐
Now
Forgot what I was gonna say
But
Yeah
A combination of hibernate and JSON
oh cool
Need to try Exposed, seems nice
Yeah I'm not sure how I feel about exposed
que?
kotlin ORM
seems nice
Judging by looks alone I think I prefer hibernate
I frickin hate hibernate
probably because I was learning java for the first time when I used it last and it only gave me a fuckton of problems I wasn't ready for
Also never used Spring so idk
Can you make plugins with Spring?
i think it's difficult because of spigot's classpath fuckery
But yeah it doesn't help much
@prisma wave hello sir
I mean...yeah it is.
you haven't even shown the error
classic pdm
BM already knows the error. It isn't new, I am just reminding him
@quiet depot mfw Luck forgot about my suggestion about DD but added it from the GH discussion 
kekw
Technically yes, but fitting it into under 5mb (spigot limit) is near impossible. I think I had other issues as well.
But generally once you start adding stuff like hibernate, maybe a web ui, you easily hit 40MB
lol
yep very beginner friendly editor
outdated?
nano isnt a code editor
like really
it's good for what it is designed
...
heretic!
@@JavaBean(defaultProperty="JMenuBar", description="A toplevel window for creating dialog boxes.")
public class JDialog
extends Dialog
implements RootPaneContainer, Accessible, WindowConstants```
JDialog has 3 fields, 6 all implementations, 30 methods, 3 implementations, and 1 extensions.
The main class for creating a dialog window. You can use this class to create a custom dialog, or invoke the many class methods in JOptionPane to create a variety of standard dialogs. For information about creating dialogs, see The Java Tutorial section How to Make Dialogs.
The JDialog component contains a JRootPane as its only child. The contentPane should be the parent of any children of the JDialog. As a convenience, the add, remove, and setLayout methods of this class are overridden, so that they delegate calls to the corresponding methods of the ContentPane. For example, you can add a child component to a dialog as follows:
And the child will be added to the contentPane. The contentPane is always non-null. Attempting to set it to null generates an exception. The default contentPane has a...
This description has been shortened as it was too long.
d;jda Message
public interface Message
extends Formattable, ISnowflake```
Message has 2 super interfaces, 6 fields, 57 methods, and 2 extensions.
Represents a Text message received from Discord.
This represents messages received from MessageChannels.
This type is not updated. JDA does not keep track of changes to messages, it is advised to do this via events such as MessageUpdateEvent and similar.
Message Differences
There are 3 implementations of this interface in JDA.
- Received Message
Messages received through events or history query. These messages hold information of existing messages and can be modified or deleted. - System Message
Specification of Received Messages that are generated by Discord on certain events. Commonly this is used in groups or to indicate a pin within a MessageChannel. The different types can be found in the...
This description has been shortened as it was too long.
lol
tada
jokes aside. eclipse is actually useful for beginners way more than intellij
intellij gives u recommendations to switch a for loop to something else
๐คท
such as a simple assignment of copying an array
if you are trying to learn a for loop
but intellij gives you
fori + tab
Arrays.copyOf
๐
'cause thats how good intellij is ๐
?
not for new beginners*
notepad++ ๐ณ
netbeans
notepad
lmao
lmao
the thing is
lol
that intellij doesn't
took me about a month ๐คท
well you were new
at the time
i used eclipse for 3 years and switched to intellij and got used to it in a day
lmfao
my only complain is project strucutre. I wish intellij could have a project explorer
me too
or at least hide/show some
also the copy/pasting code feature
where u put code into these thingies
then u press a keybind to paste it
๐คท

ok
anyone think its possible to single/double click godbridge?
dev-general
Wtf is godbridge? Is that outdated software language?
Yeah
its also known as moonbridging
breezily bridging
etc
they are all similar
- Today Macroed and I show you how to Breezily Bridge! TOP 5: http://macroed.ml/
โค Current Subscriber Count: โค 59600
Macroed: https://www.youtube.com/channel/UC9UyO291M3QADTe5Rq8Z8Iw
+------------------------------SOCIAL MEDIA---------ยญยญ-----------------------------+
โบTwitter: https://twitter.com/Target3dGaming
โบSecond Channel: https://www.youtu...
Jesus wouldn't need a bridge, mad lad can just walk over it
true
What if Jesus sky bridges with water buckets

๐ง ๐
If it's raining can Jesus fly? 
๐ฎ
where is the troll face meme with water and oil
๐
no not that variation lmao
The one where you cover yourself with oil and fly
wait for it to oil
no
no
breezily bridging is slow
moonwalk is fast
godbridge is fastest
telly is fastest*
close tho 
tbh it doesnt matter at that point
its literally just clicking fast
not capping
it doesn't matter which method you use, its all the same
its all based on your cps

you can godbridge 8 cps
possibly even less
๐คท
you realize those people are actually clickbaiting. its 100x much harder
ik
if you cant have high cps
well ye its just for fun
ninjabridge*
Yea sure w/e
๐
lmao
๐ณ
Even if you're on really high cps, server only manages 20 blocks built per sec 
uh

20 blocks?
or 20 clicks
bc those are different
๐
bc theres a really noticeable difference between 20 and 40 cps rmb
Blocks...
I can jitterclick my mouse to 13 cps
If I really try I can squeeze the occasionaly 14 cps out of butterfly but I get a cool 10-12 on average. For bridging butterfly works really well but in pvp it's not as useful
But yeah normal speedbridge is usually enough
idk if I butterfly correctly, as I thought myself lol and then figured out that it was a common clicking method, but I get like 12 cps for that
but I started using schnellerbridge lately which is treating me well so far
schneller = ninja ;-;
haha yeah same
oh lol, didn't know
its just german for "fast"
I know
and they said in chat
Ich verstehe Deutsch
uh
nvm
opens up google translate
I understand German
thought it was a funny name
i think the bridge name came from a yt called lukaip
lol
but u can look up "eagle bridge" for the same bridge type
although for me it looks the same :p
haha probably is
its like "schneller breezily" and "breezily" ๐คฆ
I can't for the life of me breez though
you can move less 
kek
Oh that's a new one
lol
bridge-general
๐คฃ
also it turns out i can spawn entities async
wait
assuming my code is working which it probably isn't
Its not about 'can'
I have a system to "switch" from sync to async, and I don't think it works
You will have issues at some point
Pretty sure you'd get an error if you tried spawning it async
Correct. You can't spawn entities async
Unless you have a server that supports multithreading which probably doesn't have a public API
what about getLocation?
yayyy
intellij doesn't like me
I can't even see that 
Do I use bukkit consumer or java consumer?

I don't know why it does
d;spigot consumer
public interface Consumer```
Consumer has 1 methods.
Represents an operation that accepts a single input argument and returns no result.
Probably pre Java Consumer era? 
Assuming it's because it was made in Java 7
Consumer wasn't a thing in 7?
Don't think so
No but Bukkit was built on it


I am on Java 1.3
I have recently downgraded to java 0.6
You mean upgrade?
I have recently decided to make my own JVM using z80 assembly
Why lol
did you....believe me?
Found this code from someone and... good luck :)
ew
@quiet depot So I've got "modules" for certain things, stone cutter damage, phantoms not targeting players with a certain perm, now I need to add another one, however this one will also require a command and a papi class, should I switch to proper modules now, or should I just cram it into a package? (And if I were to switch to proper modules, would it make sense for some to be modules, and some not to be modules if they're smaller)
Hopefully that makes sense, current structure so you can see what I'm talking about
@surreal quarry looks hot, for pagination would be possible to add something like buttons to allow players to switch between pages and/or something to change pages on an interval?
ItemStackBuilder builder = new SkullBuilder()
.setPlayer(event.getPlayer())
.amount(3)
.option().setTitle("&aMy head").apply()
.nbt().set("Valid", true).apply();```
ItemStackBuilder builder2 = new ItemStackBuilder(Material.WHEAT)
.amount(1)
.option().setTitle("&aMy wheat").glow().apply()
.nbt().set("Valid", true).apply();```
What's your opinion 
The "apply" returns the Builder class
ItemStack finalStack = builder.build();``` ^ the finale here
Yea,
ItemStackBuilder builder2 = new ItemStackBuilder(Material.WHEAT)
.amount(1)
.option().setTitle("&aMy wheat").glow().apply() // <- Why have two, when you could just use it to build the itemstack at the end
.nbt().set("Valid", true).apply();
I might use more implemetation classes in the future, I will just leave it like that for now
Also, the PotionBuilder as well
Lol
Gl finding a CPU that can run that lol
I got an intel pentium 4 if you are interested :))
Any reason as to why PaginatedGui#update does absolutely nothing lol
I mean not really that hard just check what version the server package contains lol
Yeah guess that's true
@ocean quartz Why is there no CommandManger#unregister method :sad:
Making me use reflection smh
Its supposed to unregister itself on plugin disable frost
Altho I dont think that really works well atm from when I last used it
Yea not what I need, I need to unregister it when a condition is met
I see
Indeed
Can somebody help me understand the relation between HikariCP and Exposed?
From what I understand now after reading about them, HikariCP can create a connection pool and exposes a datasource for Exposed to use. Then I don't have to manage the pools myself and Hikari does that in the background - did I get that right?
Yes
Perfect. What I don't understand is how to create a new database and switch the datasource to use that. Is that even possible?
Can I connect Hikari to a server without specifying the database?
Googling it doesn't result in any useful pages, maybe I'm using wrong keywords
Oh, afaik that part isn't Hikari's responsibility. You handle that in the same way you normally create databases with jdbc. Hikari only manages the connection pool.
Can I connect Hikari to a server without specifying the database?
Yes
I honestly don't know why minecraft doesn't have this implemented
Hm this is a bit hazy then. So I have to connect to the server, create a database, close the connection and then connect Hikari to the db again and pass that DataSource to Exposed and do my stuff like I normally would?
From reading a bit more,
https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html#setCatalog-java.lang.String-
^ this is supposed to allow you to change the db context for subsequent queries, but may not work on all drivers apparently
Or can I connect Hikari, create the db, then switch to the db without closing the datasource and do my shit?
Yeah I saw that part too, but it doesn't work for connections that are open and being used aparently
So even idling connections are still connected to the old catalog
Are you sure?
It's what I read, haven't tried it and don't know nearly enough about jdbc to test it out.
Hm I'll take a break and come back to it with a refreshed mind
Only case mentioned that I could find was it not working on specific drivers altho which ones they mean was not specified
I guess give it a try when you are free
Exposed?
๐
when I hear Kotlin libraries that I absolutely adore and use all the time being mentioned, I awaken lol
Maybe you can help me out then, mind if I dm you when I get back home?
Do you need hikari when using exposed?
no, just better to have it
actually, thinking about it, I don't even use Hikari in the places I use Exposed lol
yep
Havent messed much with mysql and mc plugins
Exposed's DAO API might even be built in a way that allows you to add support for something like Mongo
Interesting
Mongo is smth special
I dont like they way you to queries or smth but .. xd
but I believe it's mostly built for relational databases so
yeah I can't stand anything about that shitty database
MittenORM
MORM
import elara/orm
I need to learn more about databases structures though
Elara has its own database implementation
let database= SQL()
No more mysql and shit
ElQL
H2 is especially good for testing, because it supports in-memory SQL databases
I have this table where a player (uuid) can have multiple entries but only one with a certain name
what's the I?
El-ara
el-QL isn't that bad to pronounce either
Elara Query Language
ahh
Al quaida
I like it
uh
๐คฃ
okay let's not talk about Al-Qaeda in this christian Discord server
:))
elara killed bin laden
Somebody teach me how to use .patch files
why
I want to modify essentials but still stay up to date with their changes
How can I remove a specific amount of items from an inventory? With /rankup
I don't think you usually generate them yourself
the way you generate patch files is by making changes and turning them into patch files
Iirc git can generate them automatically
also, you can stay up to date with the upstream by just forking and pulling when new changes happen
This Video is sponsored by Raid Shadow Legends
Wont that override my changes?
if they make changes to files you change then it might cause some weird merge errors
but apart from that you'll be fine
And what do I do when that happen lol xd
just a word of warning to everyone about making changes like this btw: Git hates merging 2 branches with different histories into one
not sure
what do you even want to do to essentials anyway?
Modify some commands and functions
Isn't that what merging (and git) is all about...?
eh, it's a pain
Kinda defeats the purpose if you say that
git won't auto merge 2 branches with different histories, so it's your job to go through and manual merge them
Well yeah, machines aren't that smart
I guess that's the name lol
yeah, they're a pain though
ยฏ_(ใ)_/ยฏ
hey bombardy
hello
can u check #general-plugins
is this a good interface name?
no
luck uses "Terminable"
hmm
i'm not sure if he has an init method though
i can't remember what Sxtanna used to use
oh maybe it was sx that used terminable
one way to find out
d;luckperms terminable
public enum Tristate
extends Enum<Tristate>```
Tristate has 3 fields, 3 all implementations, 4 methods, and 1 extensions.
maybe it's just not in the api
maybe not
state isn't an appropriate name imo
ez
Killable 
destroyable aint it chief
yeah ik lol
i cant think of anything else lmao
might do RequiresSetup and RequiresCleanup or something
what about init?
Initializable is fine
alr
and i'm basing my opinion on initializable being fine on google's supposed supporting of it being using in api
I've created an interface called Initializable, but according to Dictionary.com this is not a word. Searching Google only gives about 30k results and they are mostly API references.
Is there another
oh
misread that answer
thought it said google used it in their apis
whatever still use it
it's fine
yea ok
although im not sure terminate gives the right impression
it's more about cleaning things up
neither does destroyable
is that what it's doing?
kind of
it would be for making things that have resources that need cleaning up
so PlayerContainer for example holds active players and that needs to be cleaned up once the game ends
autocloseable?
i am definitely overthinking this but im getting paid to make it so i wanna make sure i do it right
hmm
isn't that more about IO?
for reference luck's terminable is an extension of autocloseable
I'll just go Closable and Initializable I guess
is it?
public interface Closeable
extends AutoCloseable```
Closeable has 1 super interfaces, 22 sub interfaces, 1 methods, 109 implementing classes, and 1 extensions.
A Closeable is a source or destination of data that can be closed. The close method is invoked to release resources that the object is holding (such as open files).
o
forgot about that
it didnt show up in IJ
... because i spelt it wrong
ok final idea, Resetable
abatable
i guess
it really depends on your method's contract
what are the requirements of this stop method?
hmm
I havent really thought that through much, but a Component would be required to cleanup any state before it's reused
would the initialization of a component have to be redone in order for a component to be reused after termination?
or would this reset method reset it to a point post-init
I havent put too much thought into this but I would say the first one
then simply don't reuse components
if we have a HungerGames class init would place any chests and fill them, destroy would unplace blocks, etc
hmm
im making this up as i go along so that's reasonable lol
anyone know a super performant http server for java?
apparently my http server is actually slower than my search algorithm
unless i'm looking at this wrong
Isn't that just IO being slow
I'm not sure there's much you can do there
well in other news my search algorithm is 50% faster
again
idek what I did this time
nice
@quiet depot What place should I be looking for to find the stuff for the default javadoc
for default javadoc you'd need to add a column to the servers table, and add a modification command (along with a console & bot impl)
How is it determined right now, just so I have a starting point
it's in the config.json
Piggy it's been 2 days lmao
?
I was gonna be excited about the class loader fix
I thought I already told you I didn't find anything
@hot hull for something similar, look at how the prefix is implemented
it should be basically an identical process for implementing the default javadoc into the storage system
wh
Because Bukkit is ass for unregistering commands, it's not an intended behavior
Even if you unregister it'll still "stay" like the tab complete stays but the command does nothing, it's super buggy
not sure that's bukkit's fault
iirc the tab completion options packet is sent when the player joins
Yeah i guess it's a minecraft thing
As far as i tried i could never get rid of it completely, remember trying that to see if i could help clip since he needed that for dm i think
Well something i can give a shot again
lol
idk where to go from here
What are you trynna do
@quiet depot JavadocCategory is what exactly?
This would be so much easier if you had atleast the basic components code documented ;C
๐ฅฒ
its java
i'll work on documentation soonโข๏ธ
categories are a wip feature
they're implemented in storage but you can't use them yet
Point me in the direction of identifying what javadoc is what
Disgusting, imagine not having an enum atleast
Makes sense
if you want to check if the javadoc exists when setting it via whatever command you make
then use the /javadocs route
check the JavadocsCommand for an example
Hey there, I wanted to ask if you could give me some feedback on the docs of a framework I made (for minecraft): https://art-framework.io
The main question: is it clear how to start and what it does?
I would greatly appreciate any feedback you can give me. Thanks a lot!
ooo interesting
@hot hull u shouldn't need to touch embeds for this
seems pretty robust @pallid sequoia
im not sure how i feel about the actual syntax but the documentation is good
Yea I know I'm just exploring Piggy
Thanks! The config (flow) syntax or java api?
It is implemented, but I got massive problems in combination with the acf (commands) library, so I disabled it for now.
what you using jackson for?
Config serialization and deserialization: https://jdocs.art-framework.io/io/artframework/annotations/Config.html
why jackson though
if this is for spigot exclusively, spigot shades in gson
additionally if that jackson yaml extension you've got there is what I think it is
you're shading in snakeyaml, which is already a spigot dependency
It is not spigot exclusive, just a very small part is for spigot. The platform can be changed freely
still might be worth using gson instead of jackson due to the fact spigot (and most other minecraft platforms) already use it
on another note, regarding your org.reflections issue
classpath scanning as a concept in general is finnicky, and org.reflections itself as a library isn't perfect
I recommend simply scanning the jar itself instead
an example of which can be seen here: https://github.com/PiggyPiglet/DocDex/blob/master/common/src/main/java/me/piggypiglet/docdex/scanning/implementations/ZISScanner.java
if you're not a fan of that you could also try classgraph
and guava also has a classpath scanning utility
I think I forgot to remove the reflections ref and I am using a scanner myself: https://github.com/art-framework/art-framework/blob/master/api/src/main/java/io/artframework/util/FileUtil.java
ah ok
The problem is that the acf has some static code parts and when I try to scan all plugins at load it throws security exceptions when the first player logs in. I did not debug it yet though.
Do you know a way around that?
Piggy, I think I managed to do it, just need to add the initialization setting the default javadoc and db stuff
Once I find where that is tho
The problem is that not my plugin throws, the acf does :/
@hot hull ServerCreator
pls test ur shit frosty
it's super easy to test
i'm assuming you have mysql installed
and for the docdex instance just point it to https://docdex.helpch.at in the config
I modified that already Piggy
However for the db stuff, Here you don't interact with db at all, unless there's some hidden shit underneath
in servercommand
it tells ServerAdapter to apply the object to the raw table objects
and then that'll save to mysql
Neato, meaning I don't need to interact with that at all
yep
if it worked the way I wanted it to you wouldn't have to touch ServerAdapter or the raw tables
but that was too hard to figure out
maybe in the future
yea i wanted to get it all working with just a method to switch stuff, but iโm adding features like that now. It has a #update() method and #showNextPage(vararg Player) as well as #showPreviousPage(vararg Player) so i figure itโs easy enough to create a runnable for updating it as well as flipping through pages on an interval in whatever plugin you are using jt in, but iโm definitely gonna add something to make the flipping through pages manually better.
What's with the prefix reset listener Piggy
Also I just need the discord module right?
@quiet depot
how to implement this
BM..
what
๐ฅฒ
because the source could also be a specific section
also why do u have a saveconfig ๐
you making that ORM?
nah this is a commission
to save things
but
this interface is supposed to wrap anywhere a section could come from - config.yml, another file, or a specific section in another source
so i need saveConfig defined
you would probably need to make a new fileconfiguration
then loop the config section writing those values to the fileconfiguration
sad
then save that
very ssad
ssad
sadd
slap some recursion in there
@hot hull ye just discord, and prefix reset listener allows u to reset ur prefix if u forget it
@ruby crater resetprefix
Successfully set the prefix to d;
๐
yo
my library can call events right
i don't need to actually have a plugin do i
no
nice
wot
i thought ur lib was a plugin
or is it something to shade?
you can use static Bukkit methods
ok thats kinda clean though
๐
what's that?
So this library is going to end up creating x amount of HologramLines, but the library doesn't actually do any storage or keeping of any Holograms that get made, that is up to the plugin to determine if their hologram needs to be persistent, needs to be saved somewhere, etc. Is there a way to easily get all the lines that exist, maybe with recursion or something
making a ConfigurationSection into a YamlConfiguration
what if you have a Hologram class
well i know what it is. but where is it from
i do
that has all the stuff
but i don't store that
my questions are bad
y
its up to the plugin to store whatever they need
like
in case they want holos that don't persist or something
afk
and if i have it persist, i gotta actually start saving stuff
my initial idea was it makes it easier to build a Hologram, and then if you want it to persist, you save it, then load it on enable and just call update again so all the people can see the pages they were looking at
damn idk what to work on. I guess its that time of the year where I check request-free
Service] Server Setup
k found what to do xD
idk i think it just should be Plugin stores Hologram that stores everything
damn
what the hell
:smiling_face_with_3_tears%
unanimated pfp ๐ฅถ
๐ฅฒ
i guess i can make a manager that they have to create for it to work and have the cache there, then they can choose when or if they want to save that cache
that way i will have all holos
:smiling_face_with_3_tears% should become an emoji
BM you hate mutability. what do you do for a cache that is just a MutableList<Blah>
or is mutability ok there
yes vague
I have a cachedHolograms MutableList<Hologram>, and every time a holo is created, it gets added. every time one is deleted, it gets removed. if they save stuff they may want to refresh it by removing stuff & adding it back
is it actaully possible to do this without mutability
alr lol
as long as you're encapsulating it properly mutability is fine
ok
what
lol
lol
Blitz having fun again
i hate you blitz
oh xD
lol
IJ good
um
your discord is broken
not anymore
@static zealot
Shutup
well its same as mine
nothing to be ashamed of xD
that's literally what I get and I have 1 Gbps cable but my network card in my laptop only takes 100 Mbps
xD
the fun thing is I have a 5G router but my phone is not even 5G xD
its weird tho because I thought that 100 Mbps would mean around 12.5 MB/s but its not
@quiet depot Could you check when you get the chance, idk how to test this badboy cause I small brain https://github.com/Frcsty/DocDex
imagine having the GitHub default profile picture for 4 years straight amirite
I literally only just updated it today
Burn the heretic
on the same day my GitHub Sponsors app got approved
github sposnors app? What's that
because even though literally no one's gonna sponsor me, I thought I might as well, on the off chance that someone actually does
ยป Give the helpers some details
ยป Ask suitable questions
ยป Be polite
ยป Wait
here we go
kek
wdym?
my pfp
discord has a limit to how many times you can change
and was stuck with the other one
lol
worth tho
James felt for it 2 times even when I had his pfp and name
lmao
he thought he typed something when I did xD
I think I should continue my java courses but I'm to lazy ๐ฆ
well
there are 5 courses in total
I took 2 of them so far
and no
I started with kotlin

there was that meme with java bad kotlin good and when I actually asked which which I should start people seriously told me kotlin so I did it.
I don't regret a lot tho
yeah
Java is noice
lmao
Somewhat prettier than kotlin ngl
I even use val sometimes
Lol in java?
yeah

it does exist tho
well in javascript as well like I literally did it a couple hours ago
Thatโs var
mhm
yeah that's the problem with me sometimes information just mixes together.
well one of my many problems
lmao
Bad Memory, Laziness, Bad Learner
Toyota
don't you know the meme?
seems like it was not that big of a meme. but it was like enumerate 3 bad things and then say Toyota. Like they usually name 3 good things about their car like Fast, Cheap, IDK - Toyota
im trying to fucking explain to a bunch of nons on why final is useful
just say it makes your code faster
lmao
That's not entirely untrue
Yeah
if foo => bar()
ew
Everyone cries cuz I pulled a joke
lmao
That reminds me of another great language
lmao
lmfao
Which floof do I buy!!!!
all
All
I don't have enough money for all
lmao
Lol nerd
Did you just call me a nerd

Oh god I need to go kill sentients
omgomgomg
Who?
Bruh

i need to figure out how to move the nametag over the body of the armor stand lmao
when you're 4 videos ahead of your course ๐ฆ
Looking good
ty
Now we tell you, start with Elara. Kotlin bad Elara good
๐ฅฒ
I wonder how hard it would be to make a .net Kotlin compiler 
I teached her how to dance
Subscribe for more content
Jokes aside tunuk tunuk is a bop
Whats tunuk tunuk?
Presenting โTunak Tunak Tunโ music video sung by the talented Daler Mehndi Song Name - Tunak Tunak Tun Album - Tunak Tunak Tun Singer - Daler Mehndi Music - Ravi Pawar Lyrics - Daler Mehndi, Sanjeev Anand, Yogesh & Shahab Allahabadi Music Label - Sony Music Entertainment India Pvt. Ltd. ยฉ 1998 Magnasound Media Pvt. Ltd. under exclusive licens...
tf is that xD
jesus the guy in #development
You've never heard it? xD
Nope xD
It's a big meme
welp xD
xD
smh pdm doesn't recognize mavenLocal
Well that makes sense xD
lol
lmao




