#dev-general
1 messages · Page 238 of 1
Yeah although factions has some interesting parts it does a lot right
I wouldn't be looking at factions for inspiration of anything
Like it was why I realised interfaces are cool
bad code
Yeah I mean likely just the interface use but still
About all it has going for it but still
Something I wasn’t using at the time so good to see
there's only like 2 projects in mc that have good code, that I can think of off the top of my head
sponge & luckperms
I still think my favourite development change I made was object oriented coding
It is so nice
it's old fashioned
I wouldn't get used to it
probably going to have to switch eventually
😢 to what?
idk
bm thinks functional is going to take over
or hopes it will
I personally don't care
i'll learn whatever I have to
I really like objects and being able to store lots of temporary data in one area
I like it too, but oop is the only paradigm I know, so there's nothing I can compare it to
Yeah I’m still debating whether to program my own game just for some change
game development is boring af
wouldn't recommend
although if ur wanting to learn a new paradigm ig it's fine
Yeah I kinda like optimising it’s quite fun
game dev is mostly dop/dod these days afaik
optimizing is a huge part of game dev don't get me wrong
but to get there, you've got to do a load of boring shit first
Yeah you can create games without any coding knowledge nowadays
like really really boring shit
Yeah sometimes it can be very tedious
@pallid gale u doing giveaways today or do I get to mess them up again?
Poor Barry
Ohh right yeah
I'll give you a shot at redemption
oh no
It’s funny you have a community of devs but you still use a public bot for giveaways
Less chance of being rigged
last time we got the community together to make something this abomination was produced https://github.com/HelpChat/HCCCE
never again
Lmao pig
🙄 what does it do?
idek
Exactly, nothing
That is a lot of rules
The community at it finest
yep
Of course
That is a very small commit limit ngl
I swear that is like 1 maybe 2 methods per commit
yeah it was meant to be difficult
=paste
Please use a paste service to share configs, errors, code and long logs.
• HelpChat Paste
My man zod wanting to watch the world burn
Like why!
Kotlin is neat with extended functions
Kotlin is awesome
d;methods player
org.bukkit.entity.Player#sendSignChange
org.bukkit.entity.Player#getLevel
org.bukkit.entity.Player#setPlayerTime
org.bukkit.entity.Player#getAllowFlight
org.bukkit.entity.Player#setPlayerListName
org.bukkit.entity.Player#getPlayerListName
org.bukkit.entity.Player#setDisplayName
org.bukkit.entity.Player#getHealthScale
org.bukkit.entity.Player#getPlayerListHeader
org.bukkit.entity.Player#isSprinting
org.bukkit.entity.Player#getAddress
org.bukkit.entity.Player#setAllowFlight
org.bukkit.entity.Player#setFoodLevel
org.bukkit.entity.Player#getFlySpeed
org.bukkit.entity.Player#playEffect
org.bukkit.entity.Player#setPlayerListHeader
org.bukkit.entity.Player#sendTitle
org.bukkit.entity.Player#isFlying
org.bukkit.entity.Player#resetPlayerWeather
org.bukkit.entity.Player#getPlayerTimeOffset```
Represents a player, connected or not
Weak
Imagine not making it so you can click a method in the embed and it shows details for that method
you'll have to do a new command lol
d;methods player
org.bukkit.entity.Player#setCompassTarget
org.bukkit.entity.Player#sendRawMessage
org.bukkit.entity.Player#setBedSpawnLocation
org.bukkit.entity.Player#getBedSpawnLocation
org.bukkit.entity.Player#resetTitle
org.bukkit.entity.Player#setSleepingIgnored
org.bukkit.entity.Player#isPlayerTimeRelative
org.bukkit.entity.Player#setHealthScaled
org.bukkit.entity.Player#updateInventory```
Represents a player, connected or not
For what you need doesn't really matter lol
Not like you'll be spamming the shit out of this tuff
d;help - this page.
d;test - test
d;extensions - get information on a specific component of a type.
d;sub_interfaces - get information on a specific component of a type.
d;super_interfaces - get information on a specific component of a type.
d;implementing_classes - get information on a specific component of a type.
d;all_implementations - get information on a specific component of a type.
d;methods - get information on a specific component of a type.
d;sub_classes - get information on a specific component of a type.
d;fields - get information on a specific component of a type.
d;implementations - get information on a specific component of a type.
d;doc - search a javadoc
Hey Piggy, guess what we're gonna do today
org.bukkit.entity.Entity#getFallDistance
org.bukkit.entity.Entity#addScoreboardTag
org.bukkit.entity.Entity#removeScoreboardTag
org.bukkit.entity.Entity#setPersistent
org.bukkit.entity.Entity#setPortalCooldown
org.bukkit.entity.Entity#setRotation
org.bukkit.entity.Entity#getWidth
org.bukkit.entity.Entity#isInsideVehicle
org.bukkit.entity.Entity#isSilent
org.bukkit.entity.Entity#isCustomNameVisible
org.bukkit.entity.Entity#spigot
org.bukkit.entity.Entity#getPose
org.bukkit.entity.Entity#getBoundingBox
org.bukkit.entity.Entity#getScoreboardTags
org.bukkit.entity.Entity#setSilent
org.bukkit.entity.Entity#isInvulnerable
org.bukkit.entity.Entity#getServer
org.bukkit.entity.Entity#getUniqueId
org.bukkit.entity.Entity#getPortalCooldown
org.bukkit.entity.Entity#isOnGround```
Represents a base entity in the world
i don't even think it's broken I think it's just loading
yeye we'll wait
eh
should've been done by now
for some reason jda isn't printing errors from listeners to my console
Just du if args == field and material return. Ezz
Cause it's JDA
it looks like jda magically suppresses them for some reason
and JDA gae
oh maybe they're on the debug log level
Amazing
doubt
nope frosty there's no hope
seems that jda suppresses them
and idk how to retrieve them
they're not even on debug log level
efefury i'm a native speaker and can barely pass high school english
Is your code even really t hrowing an error then 
it has to be
imagine sleeping
Imagine making a game where snowmans beat each other to death
I got like 3 hours of sleep
Couldn't be me
Just woke up
lol sleep
d;fields 1.16.4 material anyone got suggestions on how I can do pagination for this?
You have disallowed characters in your query. Allowed characters: a-zA-Z0-9.$%_#
fuck off bruh
sounds pretty WeAk to me
d;fields 1.16.4 material
org.bukkit.Material%LEGACY_MOSSY_COBBLESTONE
org.bukkit.Material%SPRUCE_PRESSURE_PLATE
org.bukkit.Material%ACACIA_WOOD
org.bukkit.Material%POTTED_DARK_OAK_SAPLING
org.bukkit.Material%NETHER_BRICK
org.bukkit.Material%FLINT_AND_STEEL
org.bukkit.Material%DEAD_BRAIN_CORAL_WALL_FAN
org.bukkit.Material%COAL
org.bukkit.Material%SPRUCE_LEAVES
org.bukkit.Material%BROWN_WOOL
org.bukkit.Material%DEAD_FIRE_CORAL_WALL_FAN
org.bukkit.Material%LEGACY_LOG
org.bukkit.Material%LEGACY_GOLD_HOE
org.bukkit.Material%SHEEP_SPAWN_EGG
org.bukkit.Material%TERRACOTTA
org.bukkit.Material%CAULDRON
org.bukkit.Material%SMOOTH_RED_SANDSTONE_STAIRS
org.bukkit.Material%POTTED_BIRCH_SAPLING
org.bukkit.Material%DONKEY_SPAWN_EGG
org.bukkit.Material%DEAD_TUBE_CORAL```
An enum of all material IDs accepted by the official server and client
anyone got suggestions on how I can do pagination for this?
cuz 9 emotes aren't enough
there's like 50 pages
add another button where you can then type in a page number
Yeah right add ➡️ to check next page or smth
could also do that
But that's poggers since noone is gonna wanna look through that
that's also true
Or you can do ⬅️ ➡️ instead of numbers
fair enough
I don't like arrows for pagination
more effort to implement
and slower to use
I've played it with friends
on localhost
oh you're talking about minecraft lol
I thought you meant gmod
i didn't know they made ttt in mc
d;methods 1.16.4 chat
I just turned it off
here i'll turn it back
i gotta go for dinner tho so don't make it die while i'm gone
lets see how it goes leaving it on for a while
Yea sure

d;methods 1.16.4 chat
org.bukkit.entity.Cat#setCollarColor
org.bukkit.entity.Cat#setCatType
org.bukkit.entity.Cat#getCatType
org.bukkit.entity.Cat#getCollarColor```
Meow.
oh.. xD
Was looking for related methods
ah
Challenge accepted
💀
Bootstrap 5 migration:
Renamed .ml-* and .mr-* to .ms-* and .me-*. why....
I dont doubt there being a reason but like why...
also what do i do if i want more than 5...
@static zealot Go contribute bish https://github.com/Frcsty/SnowmanBrawl
you want me to break what already is probably broken? xD
the code looks too nice for me to break it
There's nothing to break, if you don't try you won't learn. If you pr something breaking I'll fix it and let you know (or even if something can be cleaned)
It's currently only the base for the abilities made (not even tested) so there's really nothing you should be worried about
ye so what am I even suppose to PR... I have no ideas
Whatever you can think of that would suit the gamemode
Arena management and distribution would be nice
how even do you want this to work? Would it be a free4all? or 1v1 duels? or teams like Paintball?
idk I'll see what I can do and if I manage to do something I'll PR xD
4-12 players per arena
Randoms spawns free for all
Could eventually make a tdm but ffa as a start
I started making an NPC
i added the value and texture
But the top layer texture wont show
How would i fix that?
You have to specify in the Entity's DataWatcher that it has its skin parts visible in a PacketPlayOutEntityMetadata update.
Thanks
No it just shows the date you need through the packets
If you couldn't I am here to help
I have "showNPCToAll"
it shows the NPC to all players
how do i make it to just show for the person who spawned it
for (Player player : Bukkit.getOnlinePlayers()) {
this.showNPC(npc, player);
}
}```
wait
i might have a fix
That sends the npc packet to all players so everyone can see that npc
Sorted
i just did this XD
public void showNPC(NPC npc, Player player) {
npc.show(player);
}
Then onCommand /npc just do npc.spawn();
I got something ambitious (in my opinion)
is this possible
So when you do /npc it creates an npc of your skin
then for another person who does /npc it shows their skin
Yes so onCommand if there's no args[1] or the input of the skin just make that argument the player's name
There is no args
How do i make it the players name?
becuase i have to manualy add the texture and signature/value
name = p.getName();
thanks
np
yeah that could be it
ill move to support
Ok
btw that does not work 😦
#staff
#staff-payment
nah
doesn't exist
neither
neither
#cool-guys-chat
exists tho
Anyone here know of any good A* pathfinding API or something for Spigot
Looking up online I am finding mostly outdated stuff
Most of the libraries are from 2012 and the download links are dead
Doubt
Yep they don't lol
It probably just invokes vanilla with the target you indicate
If mobs in Minecraft don't have a very clear path of getting to you they won't know how to get to you
Or actually idk
It's very buggy
I'll try using the paper pathfinder and see how it behaves
It probably just invokes vanilla with the target you indicate
It's an API, not a whole library
An API to vanilla
Why did you ping matt for the pathfinding, does he know something about it?
And I assume the pathfinding won't work on an arrow
Just instances of LivingEntityI'd assume
Ah, I see what you mean by "A*"
Trying to have some form of homing arrow which actually avoids obstacles and such
What if I create a class implementing Pathfinder, that way I can get access to all the methods and apply them to stuff that ain't just living entities
Okay that's not how OOP works
Is there no way to have a mob go to a location without NMS
What's the point of having the pathfinder available with paper if you can't actually have a mob walk through the path found... 😂
Yeah but
You tell it where to go, not how
If you can't have a mob walk to a location without NMS
Why would they make the pathfinding available with paper
So you can change where the mobs are walking to
with pathfinder.findPath()
But there is no walkTo() method or anything
mob.getPathfinder().findPath(new Location(world, 0, 100, -10)); this is how I am trying to test it
You can set a target location/entity
Yes, but it doesn't do anything
Mate tf you on
The mob just sits there without going to the location
How would you do it then
All that mob.getPathfinder().findPath(new Location(world, 0, 100, -10)); does is give a list of locations basically
It does not have the mob go to that location
That's the problem
And you cannot have the mob go to that location without NMS

Hopefully it actually works
/**
* Calculates a destination for the Entity to navigate to, and sets it with default speed
* as the current target.
* @param loc Location to navigate to
* @return If the pathfinding was successfully started
*/
default boolean moveTo(@NotNull Location loc) {
return moveTo(loc, 1);
}```
That's the method I am tryina use, but it never starts successfully so it doesn't work : ')
(Always returns false)
I'd assume 1.0f 1.0f
I don't have any api, did everything with nms xD
Is NMS just coding but using code that spigot didn't make an API for?
weird wording, but yes
NMS (net.minecraft.server) is the actual server implementation
Player[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][].class
❔
i wouldn't use vsc for java
yes
where is the help chat plugin request chat ?
what
its not here anymore
????
because you've been muted
oh lmfao
<why
lmfao
?
A problem I've seen on people trying to work on a new totally blank project is that they kind of feel forced/encouraged to use static everywhere because the very starting point (main) is static
that's no excuse
and it feels strange to "break out of it"
i dont see the chat for the request plugin
Another problem I often see is "what do I do" because there is literally no prepared environment for you to work with and you have to make absolutely everything yourself :^) but.. that's the point lol
idk
because you've been muted
ok how do i unmute
idk talk to staff
and why i have mute
Oh yeah adding the main classpath to the manifest is something some people know nothing of when coming from things like spigot plugins
That's a reason why "it doesn't run"
lol
is it normal for the output of AES encryption to be a different length to the original byte array?
yikes
When making a java application, there is this thing called the Manifest, imagine it as some sort of plugin.yml but for bare jars, it contains basic information of your application such as version, the app creator and the "main" class
I guess so
https://stackoverflow.com/questions/35029499/aes-encryption-encryption-decryption-adding-extra-bytes
embeds aagh
Minecraft Server impl
have to encrypt packets
and the client is just totally ignoring any packets after the Play state starts
is the client receiving them at all?
Read the first one in detail, then the second one to actually make the shit work on maven lol
It should be - sometimes the client errors because of invalid data, sometimes it doesn't which is even more confusing
but if it doesn't error then it just times out after 30 secs
very
yeah
im pretty sure the NBT i'm sending is invalid, but i've literally copied it almost byte for byte from Minestom's impl which works fine
so my next guess was that encryption was corrupting it
Possibly, Did you compare with what they were doing?
Yeah it seems to be exactly the same
You can try a single class file efe
You dont need to use a ij project to start learning java
You still have to do the manifest shit 
You dont
You.. you do?
m tru
fefo new color 👀
My prof forces us to use sublime and command prompt only
just use Gradle application plugin
aye
Sadly the only cases I see myself using just a text editor and a terminal is for asm/c/cpp shit, adding every single import class in java, every single using class in c#, hell na
This should be helpful @obtuse gale
https://beginnersbook.com/2013/05/first-java-program/
In this tutorial, we will see how to write, compile and run a java program. I will also cover java syntax, code conventions and several ways to run a java
I just #include the crap I need and boom
Packet 0/72 (re) was larger than I expected, found 3 bytes extra whilst reading packet 72
and now i'm getting this??? im not even sending a packet with that id
yea this is a rewrite
it's currently hardcoded to my UUID atm lol
ooh a new error
same problem but a different message
xD
i have an idea here that im not too sure about
should the packets be using Cipher#doFinal or Cipher#update? because if they are encrypted, how can the client know where one packet starts and ends? so surely it should use update and just encrypt the bytes as they go?
my current approach is:
write the packet data, id, size into a buffer
encrypt the whole buffer
write the buffer's data
but minestom does it more continuously
continuously as in?
it adds an Encoder to the netty pipeline that encrypts all the readableBytes() with cipher.update
ah
idk enough about Netty to know if that's called per-packet or per-byte though
probably per-packet, in which case it should be the same outcome?
hmm, temporarily turned encryption off and the error is persisting, so it's probably the NBT still
and the error has now become consistent
How do I make like the kotlin DSL builder tihngy
Where its like
val thing = thing{
firstThing = x
otherThing = y
}```
just make some functions taking lambdas
or is that even a thing
inline fun thing(builder: TheThing.() -> Unit) : TheThing {
return TheThing().apply(builder)
}```
yeah, that's what your TheThing class is for
class TheThing {
var firstThing = 0
var otherThing = 1
}```
oh right, so if this is for an itemstack do i need to make a class that wraps the itemstack?
no just use ItemStack
not necessarily, you could use just use ItemStack
but I wanna just be able to pass in name = x
extension properties
then you will need a wrapper
use extentions
oh true
o
https://github.com/Jaimss/mcutils/blob/master/bukkit/src/main/kotlin/dev/jaims/mcutils/bukkit/item/ItemStackExtension.kt you can take a look at this if you want inspiration. its not the best but it gets the job done
If you want to hide the actual item, then a wrapper would be your choice tho
yeah im not tryna make likd a whole item builder, just a head builder...
wait
nvm
is this a weird way to do it?
inline fun head(init: Head.() -> Unit): Head = Head().apply(init)
data class Head(
var name:String = "",
var texture:String = ""
){
fun build():ItemStack{
val itemStack = ItemStack(Material.PLAYER_HEAD)
val meta = itemStack.itemMeta as SkullMeta
val profile = Bukkit.createProfile(UUID.fromString("4e64ea71-d8d0-4ba9-9de1-5e85f53dcc07"), texture)
profile.setProperty(ProfileProperty("textures", texture))
meta.playerProfile = profile
meta.setDisplayName(name.colour())
itemStack.itemMeta = meta
return itemStack
}
}```
if it were me i would probably make head return an ItemStack and just call the build method but it depends how you're using it
@obtuse gale Did you just want named parameters?
Currently you seem to be using it just for named parameters in a weird way
you can invoke functions with named parameters in kotlin without that
Head(name="Steve",texture="idkrggegeg")
is valid
oh yeah true but head { } looks nicer imo lol
but yeah I did change head to return an itemstack
then make it build erit
🤷♂️ oh ok
lol wot
lol what
there is nothing about that on the minecraft gamepedia other than this which.. the NBT is inherited from "mobs that can become angry"
so it's prolly that?
the AngerTime, idk
Ok so next question lol, how should i structure my code,
Im makiung a heads plugin and atm it just drops the mobs head for everything, however for few animals such as Bee, cat, fox, llama, mooshroom, sheep, vex, wither, wolf there are exceptions where the head is dependant on the state of the entity, ie, angry, colour, type etc, the messy way im doing it rn is just chucking it in a when statement and if its not any of those just do the normal head and if it is handle that, but thats getting messy quite quickly6
if a function is an internal fun does that mean that it won't be accessible outside of the package? how does that work
No, it means it won't be accessible outside of the module
Reflection?
ah ok perfect
Hm?
It's already accessible - internally it's just a compiler check and the function name gets scrambled with $'s to indicate you shouldn't use it
Which is a pretty messy way of doing things
Ah
But it works lol
For gradle, when should i be using implementation vs compileOnly or other dependency format things
compileOnly is when the dependency only needs to be on the classpath at compile time
So not at runtime
Implementation adds for both compile/runtime
yeah, implementation for stuff that should be shaded, compileOnly for provided dependencies
Wdym?
i see
so something like luckperms api would be compileOnly
Yes
say less
No
No?
api is different
What’s even the difference
Everything
api is like implementation, but the dependency is exposed for transitivity
It's with transitivity
Ah yeah always mix that
Implementation hides it because, it's the implementation not the API
what about compile when would i want to use that
Never
Deprecated
Compile is an outdated version of implementation
Oh
It’s very misleading as you might have noticed
mmm
Yeah I gotta say that's one of the few things Maven has - it's just shade, runtime and test - a lot simpler
BM I don’t know but I assume you’d need something special for bytecode manipulation for kotlin?
if I am making an API for a plugin, whats the best way to do it? should i make an API module with a lot of interfaces, then just implement those interfaces in my plugin
That works
yeah but it gets converted or whatever u say to java bytecode
Required by:
project : > com.comphenix.protocol:ProtocolLib:4.5.0```
Getting this when tryna add protocol lib to my project, idk why it just happened but it was fine a few days ago....
compileOnly "com.comphenix.protocol:ProtocolLib:4.5.0"
it downloaded protocol lib
Possible you don’t have the right repo
Exactly, so you won't need anything specific to modify it
but not the other thing
whos the imposter
Hmm so I can automatically use mixin with fabric without any conflict?
Hmm
and i cant find it as a seperate dependency

mixins are sometimes
I have no idea, but probably?
annoying
You
Lmao
@winter iron well it’s not protocollib but one of its dependencies
😦
piggy
maybe add the docdex cmd in the channel desc #bot-commands
or like the cmd prefix
ah lovely
epic color
ebico
nice !
i need to limit that to bot commanss
so guys, pls only use it in bot commands
it’s kinda spammy otherwise
@quiet depot xD
sorry for that. a guy was requesting and didn't know if he should get a confirmation message or not
Ok so next question lol, how should i structure my code,
Im makiung a heads plugin and atm it just drops the mobs head for everything, however for few animals such as Bee, cat, fox, llama, mooshroom, sheep, vex, wither, wolf there are exceptions where the head is dependant on the state of the entity, ie, angry, colour, type etc, the messy way im doing it rn is just chucking it in a when statement and if its not any of those just do the normal head and if it is handle that, but thats getting messy quite quickly6
Can someone help me to improve my code?
anyone know why my forward and back buttons dont show up all the time?
on shopguiplus?
Which method?
write down main and it ij should provide you a option to autocomplete the rest of the function
can also type psvm
live templates < 3
.soutv
soutv prints a value doesnt it
so it auto generates like the text inside the print
ie
val x = "Hello"
//soutv generates this
println("x = ${X}")```
something like that
aight
and then your curser is placed at the start of the first x in the println and the second one
so when you change one it changes both in the println
yeah it prints the variable / parameter name too
I hate how even if its just like one thing it generates with with the {} and then IJ yells at you for it lol
anyone that can help me a bit? So I made a github page. And I wanted to set the domain to blitzoffline.com to set it to www.blitzoffline.com was easy just point a CNAME record. https://i.imgur.com/XO7AI4e.png but I want to use the apex domain instead blitzoffline.com I've followed their instructions: https://i.imgur.com/oaFn4IV.png and I have this: https://i.imgur.com/ZPWY81R.png but when I go to blitzoffline.com it doesn't work. I've also set it as custom domain in github pages: https://i.imgur.com/XsciycD.png
just because
show whole screenshot
yes
you haven't made a run configuration
what are you trying to do
run what??
just click on the arrow?
a build task?
the jar?
if it's the app, then just click the arrow on line 17/3
call them with your human object
pro tip you can use "they" instead of "he/she" everywhere, sounds much more natural
not that that's important lol
yeah I should rly get used to that
I was told quite a few times to do that as well
yea it's much more practical imo
although even native speakers forget that they can be singular
¯_(ツ)_/¯
good thing I'm not a native speaker 
you can Character.toUpperCase the first char and then concatenate to a substring
that probably works
if it's for a spigot plugin though, commons lang should have a util
doesn't matter
keep it in mind for future reference
also pure java isn't always what you want
often the wheel already exists, and in a state far better than you'll ever be able to recreate it to
String#charAt
I'm not sure if you're asking for confirmation or being sarcastic
lol
oof i gotta make a decision
implement the needed features for docdex to scan the jdk
so I could've just done d;string#charat
or
watch the new nilered video
an index
help me choose pls
What an idiot
rude
Not you
Watch the new nilered video I suppose
uh no
it's built into the syntax of the language
Isn’t that concat
String#concat
^
and there is also that
fix your name
Ban them both
fixed it for you
For impersonation
wait is pulse actually an impostor?
i'm not sure
but I feel like he is
because he's using eclipse rn
ah that clears it up
for the other people who may not know what the usaco is
what is the usaco?
i definitely know what it is
united states of america computing olympiad
I find it more likely that you just don't know how to use intellij's debugger to it's maximum potential
British Informatics Olympiad >>
Yes
potato pc
lol
Pulse not saying kek
:(
Omg

Aww
@obtuse gale substring probably
😊
I have amd ryzen 5 3600 :(
Or replaceFirst
don't use replacefirst
But that's ew
Is it heavy?
Tbf
only use replacefirst on compiled regexes
Why not just work with char arrays all the time
assuming that's a method on them
Ag
fairly sure it is
dunno
String#format should be fairly light no?
probably not as bad
Since it's just replace with multiple params
Very simple!
idk i pretty much go by the rule that when in doubt, just remember compiled regex is faster
moral of the story: use compiled regex
Idk but fair enough
it's the same process
Make a new thread, sleep, ez claps
no
Yes yes
I don't think I've ever ran into a situation where making a new thread manually was warranted
thread pools are the way to go
Send it
I did ask you before that I would want you to send it to me
Sure
Put everything in it
Uuh yes? Why is that a question
Nice
yesn't
very hot
iNConSistent
it's a bit better now
because we figured it was unnecessary boilerplate
You need it for ifs without braces still
it's not 😉
hello
But originally we were gonna have optional parens and commas so ```
if function a b c print "Hello"
So we needed to separate the condition from the value
it's only ambiguous to the user
but if the user writes like that they're fucked anyway
obviously they'll use indentation to clear it up
or braces
it's ambiguous to the parser in that or doesn't know where the condition end and the values start
when the statement stops being a boolean, that's when it ends
and it starts after if
sorry
condition
not statement
It could be if(function) a(b, c, print, "Hello")
the statement starts once the condition ends
It doesnt know where the condition ends
It hasnt built the parse tree yet
But to accurately parse that we'd need full contextual knowledge of the code, types, functions on the classpath etc
Yea
This is in the parse stage
No knowledge of types
no need?
This is why we've mostly scrapped the infixes idea, it's cool in theory but pretty difficult to reliably parse
what's the thonking for
is there a question inferred by that screenshot?
there should be
"why is my login button there"
there you go
Question is why is Piggy so damn sexy
center it
wew
@onyx loom listened to under pressure and I'm fully convinced now
it's his best album
way better than no pressure
efefury ij has a gui designer
idk how to use it
but it's there
what library u using
javafx?
swing probably
JavaFX
javafx
it's the newer and better gui library
it's in the jdk
I think
depends what ver ur using
pretty sure it's in 8 at least
it was separated later
its separate in newer yea
yes
yea
colors
probs more
but I only know about colors off the top of my head
not irl
although gonna shave my head tomorrow probs, need a hair cut
no
@quiet depot Please don't shave your head
Cause just don't
Get started with JavaFX 2 by creating simple applications that introduce you to layouts, CSS, FXML, visual effects, animation, and deployment.
why??
yea i listened to it too. i agree
yeah no pressure has like 2 good songs
it aint nothing compared to under pressure which is like 90% good
can't remember how many i liked
btw
to answer your original question
@ocean quartz How far along is triump chat?
A chat ploogin made by Matt
message.create()
gonna circle back to this #dev-general message
jk
i can't help you
just kotlin in general pig
anyone know where the package-list is for the spigot docs
This @surreal quarry https://hub.spigotmc.org/javadocs/spigot/index.html ?
package index
i think there is a file called package-list that dokka needs to configure the external documentation stuff but i can't find it
i tried that but it didn't work
is there anyone who can help Takes 10 minutes maximum
Ahh
» Give the helpers some details
» Ask suitable questions
» Be polite
» Wait
@candid moth
yes
lol
Wonderful
Is there a room where I can open a support request or should I ask here
what's the support request related to?
deluxemenus
❤️
Nice
It's going, refactoring the config to be simpler
Not trump, Triumph xD
I see
trump chat
I'm so bad with configs, always feels like it's too clustered
okie, got any idea why Javadoc#getActualLink is printing this link
when this is the config
and this is the obj
Not yet, still haven't decided
i'm so confused
Is it up to date Piggy?
@distant sun Do you think i should do multiple files for the config?
Yea I was about to say lol
sorr it's late
That looks like the right one
Understandable
Why not have both be applicable Matt?
Since some people might have less complex configs and might not want that
Sounds to hard to do, since my configs are not nullable
Get gud Matt smh
@ocean quartz like split one config into multiple files?
Yeah, like, config, mentions, private message, channels, etc
only if its like super large or can get large
rn does it have support only for config.yml or smth?
Yeah
why lol 😄
like stuff where u can set infinite formats etc with each format having options should have a separate file
is not what you think @dry coral
probably
Wdym why?
Chat plugin
one config is good for me 👍
Gotcha, I'll see, if it gets too big I'll split
having each stuff in its own file might look "clean" but I find it annoying having to go through each file just to edit an option
but at the same time its annoying to look through a 600 line config
ye
so either make them all in config and be able to add them in separate files as well
@ocean quartz if you add channels could split them into multiple files tbh
channels/global.yml channels/staff.yml
^
only an idiot would spend their time doing that
loll
so stfu please
ehh
thanks
not really an option thing
xD
yea for DM its great lmao
it used to be an option
.
Scholtes
pretty sure he didn't removed the support for config menus just to have "backwards compatibility"
You're stoopid
my point still stands
ahhh
you mean 1 file for all formats?
thought you meant 1 file for each format
but you mean formats.yml or something right?
yes
ye but we don't offer support for that anymore. its true it still works.


