#dev-general
1 messages · Page 76 of 1
WHAT
Your jealous now
what does it infer?
You know when we use Spring repositorys Jpa Data
yeah
It infers the nice methods in our interfaces
I was gonna ask is it like that?
Like that, but it is capable of everything
I feel like if I tried making a language it'd look too similar to Kotlin
it's very hard to not copy kotlin lol
Ikr, like was just thinking about how i would do variable declarations and val foo = Bar() is already so good lol
the only way I could think of to improve it would just be foo = Bar() and the val is inferred
I like having val or var though, makes it easier to read
indeed
If I were to seriously design a language I'd add variable size integers and floats, as well as unsigned types
Although bet that's pretty hard to implement
not particularly
I've defined number sizes for mine
Int32, UInt16, etc
not entirely sure how I'll implement them
bit arrays perhaps
so we found something i coded at 3 am to annoy sxtanna with
the overcomplicating piece of work
The naming of variables smh
What about c? xD
just name all your variables x,y,z regardless of what they are
simple
then x1,y1,z1, and so on
Oorr you could have named it character xD
too long hehe
No such thing as too long variables ;p
true
but do you think naming it characterFromStringThatIsInForLoop is a good naming?
Ofc
very descriptive
@chilly jungle
That's really nice
but why do you clear 1.0-SNAPHSOT to write 1.0.0
It's just an example
It's like so close to being done. I just have to figure out why it's not pushing the authors correctly.
oh rip
Alrighty gradle works now too
Until spigot shades in Kotlin on the main jar i don't think it's worth making Kotlin expansions, that'd be like 1.6MB expansions for very small changes
Though a nice idea would be for the Minecraft plugin to have a Kotlin template as well ;o
hmm yeah
Really wish MD would just add Kotlin to the jar already
Ayy nice, working fine, multiple prefixes, like aliases but all in the same annotation
Looking at my framework as a guide for writing this one and noticing so many mistakes I made writing it wow
So you going to go back through and clean it up?
Yeah, it's really dumb mistakes
😛
Just got a notification that all 6 builds failed and it turns out I forgot to lint.
When I looked there were 4 that didn't pass
Only 2 left!
Also if I do string.split(' ') if there is no spaces the list will still have 1 index right?
Oof got pretty far today in this
Alrighty so we have a yes and no for this PR.
Yes, it can be implemented but no, not in it's current format. There's another PR coming soon for McDev which will revamp a lot of the project.
I can then rebase the PR off this and design a single creator step that can be called by the platforms
So you'll have to wait, then change a bunch of stuff?
Not too much
But the initial logic is done.
It works
Going to create an updated showcase video.
Oh okay, a little better than i thought
Alrighty, I posted a full showcase of initial testing in #showcase
I actually finished this way sooner than I planned to.
yes
Ooh nice!
Bm showed a bit of his earlier and had some cool features
I swear this is like the 5th time ive spent 20 minutes tryna work out why my plugins not working then realising i forgot to call Gui#open
@ocean quartz is your site down? I can't get onto it or the MF docs
fine for me
Can you link it? I'm probably looking at the wrong page
^
Most of Matts things seem to be nice
^
Any1 good with hoppers are slow?
I already change it too this
but they are still slow
@ocean quartz u making another framework?
@frigid badge Or there was this I came up with earlier:
CriteriaRegister criteriaRegister = kiteBoard.getCriteriaRegister();
CriteriaProvider<MyAssignmentCriteria> myCriteriaProvider = MyAssignmentCriteria::new;
try {
criteriaRegister.registerProvider("MY_ASSIGNMENT", myCriteriaProvider);
} catch (CriteriaConflictException e) {
e.printStackTrace();
}
@quiet depot Kinda, making a bot for my discord server, so thought it be easier to have a small command system for JDA so basically remaking what i did for my main framework but to work with JDA, if it works well and people like it i might publish though ;p
AAAAAAAAAAAAAA MY FUCKING BRAIN
ERROR 500
THIS SHIT ISN'T WORKING AND I CAN'T FUCKING FIGURE OUT WHY
THERE IS ABSOLUTELY NO FUCKING REASON FOR IT NOT TO WORK
caps pls
Haha bet your using php
Lol
oh
i am
fucking
stupid
I FUCKING KNEW it was a stupid mistake
IT ALWAYS IS
:caps:
reeeeeeeeeee
if you wanted to get values from different areas of your java project, is it better to make a mini-api?
It's just being annoying by not sharing the values around 😄
don't pass values around
get them when you need to
through an api
ideally an interface
different components shouldn't know how the other components work
Lesson of the day: don't use - in sql
Writing to interfaces is nice
interfaces are cool
fun fact: trying to get the vault economy before initilizing it causes too many fucking NPE's to talk about.
soz.
these?
Idiot
Why didnt you show that earlier
I was trying to make a similar generic method
But didnt know how to ask google
@ocean quartz abstract your api to be platform independent, don’t have two separate libraries that have the same function, for different platforms
<T> CriteriaRegistration<T> getCriteriaRegistration(Class<T extends Criteria> criteriaClass);
This is what I need to figure out
what u tryna do?
What I posted
gee thanks for the context
that’s cuz u can only use that syntax on ?
move it to the type variable declaration
<T extends Blah> methodName
okay now let's figure out how to make this command system for my bot 🤔
Magic
Eh, i think i broke my plugin and I have no clue where to start on fixing it 🤔 https://i.imgur.com/qB8hrhZ.png
Looks like dodgy colour codes
like what the actual fuck causes that
oof
What are you using for colour codes
Ah
That's what causes that
I know what the issue is
1.8
^
no !
@quiet depot Yeah BM also suggested that, i don't know if it'd be worth it though
Plus i don't really know how to make the maven modules independent like that, i guess I could look how ACF does it
and yes maven not gradle because dealing with maven central with gradle is much more complicated
i lost the code so i hate to decompile it and it didn't decompile well
CEO of losing code
Tbh hmm, it wouldn't be that hard to make it platform independent
I've lost 3 projects before
Because a hard drive failure
backups?
ez just deploy via maven
I do now
do everything else gradle
I have an external hd for that
that’s what I do for rpf, although purely because I haven’t bothered to look at gradle’s deploy plugin
It can't be that bad
Oh yeah, i could easily have the project set with maven and gradle, one for deploying other for working right?
take a look at my structure if you wish
I’ve got poms in a maven folder
then gradle everywhere else
deploying is actually done via maven cli
Sure thing will do
And gradle deploy plugin has one downside, it only stages doesn't release (as far as my testing went)
i dont know what im doing anymore
Matt
i may have to steal that command framework :)
Ooh nice nice
I should be done with it soon
Gotta figure how I'll make this work with my main one first xD
i previously yeeted jda utilities source code in my bot
and it's such a mess to work with
Making any slight change takes forever so i might aswell just recode it all]
Another vote:
Yes
When people irl think you're good at coding and you just put on a smile knowing all the stress it brings. (:
Update on the command handler: I deleted it
a tragic loss
My role application hasn't been rejected yet
🤔
I just wanted to bring pain to Piggy and Glare, having to look through my awful code
it took a solid like
2/3 weeks for them to do it
Piggy ended up looking at the one plugin I haven't touched in a long time
1st one imo
yeah first
Gonna add a 3rd option
commandManager.setPrefixes("!", "?")
@Command("test")
class TestCommand : CommandBase()
that is the best I think
Easier to customize i think
The last ones the best
So sad to need to rewrite the bot code in Java 😢
@ocean quartz oo that's smexy
Yes
I like th efirst one
same
@FunctionalInterface
interface Provider<T extends Criteria> {
/**
* Supply a new criteria instance from the provided Configuration Section.
* @param configurationSection criteria configuration section
* @return Criteria
*/
T provideInstance(ConfigurationSection configurationSection);
}
I feel I could change the name Provider
Is that documentation on an API :oshit:
To something more appropriate
what is that indentation though
discord
AssignmentRegistry assignmentRegistry;
//opt 1
assignmentRegistry.registerCriteria("IDENTIFIER", MyCriteria.class, MyCritiria::new);
//opt 2
assignmentRegistry.registerCriteria(new AbstractCriteriaRegistration<MyCriteria>("IDENTIFIER", MyCriteria.class, MyCriteria::new));
//opt 3
assignmentRegistry.registerCriteria(
Criteria.createRegistration("IDENTIFIER", MyCriteria.class, MyCriteria::new));
@quiet depot For my API which option do you think is best
Better to keep the registration not exposed my passing the arguments directly to registerCriteria?
first one seems nicer imo
definitely not option 3
@frigid badge Really, why not?
a registration is what creates a Criteria
True
so you create a registration from a criteria which in turns gets created by the registration
AbstractCriteriaRegistration
I kind of deleted that
public interface AssignmentRegistration<T extends Criteria> {
/**
* Get the criteria type's unique identifier.
* @return ID
*/
String getIdentifier();
/**
* Get the criteria class
* @return class.
*/
Class<T> getCriteriaClass();
/**
* Get the supplier
* @return supplier.
*/
Criteria.Provider<T> getProvider();
}```
and the registerCriteria method?
to be really honest
you are overthinking this
making it way harder than it should be
@Override
public <T extends Criteria> void registerCriteria(String identifier, Class<T> clazz, Criteria.Provider<T> provider) {
AssignmentRegistration<T> registration =
new AssignmentRegistrationImpl<>(identifier, clazz, provider);
registeredCriteria.put(identifier, registration);
}
All the T does is make sure a user doesnt try to register the wrong types together
this way is extensible though
why do you need the class and the provider though
actually good point
that was so you could get a provider from the class, but i actually removed that
so identifier and provider only would be fine
then I wouldn't need the registration class
not too shabby
I'd say neat, but no clue what's going on
@hot hull its my language
Yea I got that part
pull::[Int]("Please provide a number")
@hot hull what do you not get then?
😕
WHAT
I'm.... confused
Capital P for please
Isn't pull in that situation a function?
Oh okok
That is really cool though sxtanna
I mean if it's a keyword it makes more sense to be lowercase
bro this aint an array
one may think that is pushing to an array 😐
How are you doing it?
Written like a parser in kotlin?
sx ur gay
Theres a lexer that tokenizes the raw string
Then a typer (parser) that transforms the tokens into commands
the commands run linearly pushing and pulling values through a stack
with references to a context that stores properties, functions, traits and classes
sounds scary
Its not
Heres how properties work
It gets defined, then the expression to the right of the = is evaluated (in this case its just a single value, so the parser just makes it a literal), then the property gets assigned that value
Since the type isnt defined on the property, its none at first, but after the value is evaluated, the type is defined to Int
specifying the type gives it a value immediatly
which allows for strict typing
:D
how you going to implement.. if/else when and all that though?
I wouldn't know how to start but sounds like an awesome challenge
All you have to do is think about it logically
if (condition)
if, (, bit, )
Here, I'll do it rn actually
Actually, I think I'm going to replace if with when as the condition keyword
because why not
😕
true
All I have to do is define more constants in the word enum
and then implement the branch of parsing for it
I might have ago at this 🙂
@topaz bay when would this be thrown?
If the value that gets pulled from the stack is anything other than Value
Its just a piece of data that contains its type
void restartScoreboard();
void restartTablist();
void resetScoreboardGroup();
void resetTablistGroup();
//opt 2 GroupType.TABLIST or GroupType.SCOREBOARD
void restart(GroupType groupType);
void resetGroup(GroupType groupType);
As a developer which api would you prefer to use
I dont plan to add any more GroupType values.. but..
@topaz bay @prisma wave
bro which one
@heady birch the second
Open closed principle
@topaz bay so that exception would essentially never happen?
@prisma wave No
It happened before I fixed the command for pull
This was originally stack.push(data)
ah ok
Already prepared for 1.16 eeee
deprecated?
yes
@frail glade how to make this ? https://prnt.sc/sfghn8
nice job glare boy
Except for the fact that I have to rewrite it again
Sorry beta- did not mean to tag you
the spigot too?
but that means we will have access to hex colors on chat? 😮
It's a plugin for IIJ, Chryster
it already has the other options, except papi
what is this plugin ?
Minecraft Development
what
@distant sun he not found https://prnt.sc/sfgjag
maybe without space, but type just Minecraft and it should show up
i dl it on the jetbrain website
nice
ok, i'm at the point of being hella bored due to lockdown. I made myself a joke api with one event only:
private void onCrash(AntiCrashServer crashServer) {
crashServer.setCancelled(true);
}
Would it work 🤔
@topaz bay how did you do the syntax highlighting?
@pale shell setCancelled(false)
?
@prisma wave you can create custom languages in IntelliJ
o
better alex?
With a plugin?
No... its built in
idk how on earth you even make the custom languages..
and parsing
Odin Programming Language @pale shell
lexing
why didnt u tell us?
You start with lexing tho
?
I think I might add a transpiler
to what?
Make it transpile to kotlin
ABSOLUTELY fucking not
why not
I mean, to be i'm fucking amazing AF that sx made that language. i always see it as a super complex thing to make lol
It's not simple
Its not like its my first time making a language
but it's not as hard as you might imagine
lex, parse, run
i always see it as something real hard
have you ever tried?
I wouldnt say its particularly hard
I guess once you made one it's easier for the second, then third etc.
Its just tedious
Precisely
Once you know what youre doing
Lexing and parsing are not particularly difficult tasks, just annoying
I'd say its difficult to do it right
Probably
But it in itself, isnt
The base idea is simple
You could say the same about everything
True
but splitting text into different symbols isn't particularly complex
or rather complicated
With that said I've never properly made a language before
tried antlr once and got bored so gave up
Well I mean
you can make a language parsed
Making your own compiled language, well 😬
Lol
Why aren't you using . for concatenation?
Why would I use a period?
how do I reading your code know your not adding "Hello" + 5 together?
You should adopt the superior approach using a period (seen in some extremely mature programming languages, for example, PHP)
But does it have string interp?
That should be priority number 1
Absolutely
Lol, I was messing with you
Can't think of a good way to implement the prefix and the command in the manager ugh
If I want to create custom mob loot tables using .json files, would I then use gson to import it? Or what would I do to import that json information?
probably gson would do
you could either make a DTO, or deserialize & serialize the nms objects directly (could be error prone)
okay, I've seen a video on deserialization and serialization, cool! Thanks!
Would you use gson though?
okay awesome
Hmm, should the @Prefix annotation take a char or a string?
Do people that make bots go with prefixes like: !!?
String
Your turning into me
Have fun
Finish your last project before its too late
You're*
Now a fun situation, prefixes ! and !! using message.startsWith(prefix) will trigger only the first one, so it'll ignore if the characters are the same
Gotta think of something else
Eh i'll leave it like that xD
Regex?
It'd still always trigger the first one no? As !! starts with !
No :/
I mean with the startsWith
Get the first string, get each char, iterrate, get ! amount, ez claps
@ocean quartz I guess since you know it will be !!commandName you could try !{1}\w+ or something similar
but it's a bit of a hack
You should think for two months about how you will design the solution
or possibly a lookahead
then implement it and find out it misses something and repeat
Got a work around it
https://i.imgur.com/jm5nyZj.png
https://i.imgur.com/xSeeUoS.png The difference
LOL
@signal tinsel i see no difference?
@pale shell you ferry drunk
Can't say I'm surprised
i'm attempting to code drunk too
;D
i somehow have photoshop now idfk how that happened lmfao
....
i also have photoshop now so i can make drunk photo edits >:)
Bhad idea
@signal tinsel some people could get confused by the left and right click, you should add a confirmation before it actually performs the action
And what's the difference of removing the punishment and unbanning? Unban will keep it on their record while removing will unban and clear it from their record?
Right
So I'd suggest adding another gui
When you try to unban or remove
"Are you sure you want to unban/remove?"
"yes / no"
Cause if you think about it, when people get familiar with things they tend to just speed through it
And left and right clicking are very similar since they're right next to each other on the mouse and they both just require a click, so I'd imagine some people (like me) would get hella confused sometimes and accidentally remove the punishment when I just wanted to unban them lol
Yeah
I have a settings GUI in the main GUI
Mostly
🌟🌟🌟🌟🌟 from me already then
Only the GUI isn't configurable
Do you plan in adding that
Idk if it's just me but when I have a plugin I like to fully customize it
Yeah I get the point
Because no offense to devs but some developers choose the most horrid color scheme in the world
I like the red but for my instance I'd want it to be blue to match server colors
You know?
Or match the entire theme of the server where all staff things have the prefix Staff>
Yeah
I'm sure it's probably Hella work for you, but you could definitely make that plugin premium and make people love it if you have all that
Red matches the best with the plugins purpose
So I just chose red
But I might add it
Also its already a premium plugin and released into the wild
https://songoda.com/marketplace/product/premiumpunishments-the-best-punishments-plugin-out-there.392
The one stop marketplace for all the Minecraft plugins you will ever need.
Someone removed it from #showcase
Idk who or why
I agree with that it's just people like to match things because when everything matches and follows a theme
It makes everything feel more clean, organised, and professional
Oh sweet
Yeah
because it's on Songoda marketplace
@remote goblet so because mods don't like songoda they remove it?
That's kinda odd
No
it should be if its on there tho :)
Songoda is worse
It was removed for now because showcase is getting very advertisy
Ah
Idk anything about songoda but I despise spigot
Btw I actually have better experiences with Songoda than Spigot rn
I can't say the same
@ocean quartz its only advertisy if you view it that way
@ocean quartz I might make an imgur album for it sometime
I can post that right?
As long as its not the direct link
People post plugins there hoping to get reviews on how the presentation is, the idea, and the entire plugin in general
@remote goblet explain ur songoda hate
I know i know, was just explaining why it was removed
Because to be honest with you nobody really gets any benefit of gain from posting their spigot link in showcase lol
Ori, matt doesn't care if you say why you dislike songoda
Half the people just click the +1 and -1 because they see a bunch of others who did
Nah, you can say whatever
If you can't explain why you hate songoda, don't say you hate it
@floral basin lol ye
I never do that bullshit
Want me to show you why i hate songoda lmao
Ya
Admins won't like it and i might get murdered but if you're consistent
O.o
Lol the second you said that clip went offline
I already explained to matt some of the reasons why but sure lets throw in the rest
No need to post images like that wtf
Yikes
what the
owner of songoda
I'd say this is pretty off-topic.
they asked for it sooo
We don't need to discuss stuff like that here.
don't blame me lmao
Anyways I still just despise spigot cause of MD5
What'd md5 do
What'd he do
He just has a shitty attitude
He's in it for the money and nothing else
Also the spigot jar is just so far off from optimized but that's another thing
Make your own then
wdym hes in it for the money?
in other news
@hot hull ive been using IJ for a few days now, I like this a lot better
lemme load up Island.java
how do i see all the spigot plugins on one page\
not
Not what
cannot
do u no how to make a sentence
so your saying that there is no way i can see a list of plugins on there website
You can, but its paginated
What that mean
I no no how to make a sentence
It means there's multiple pages
Long story short if they put all plugins onto 1 page the server and your computer would crash
Its at the bottom of the plugins page
Took me longer than I'd like to admit
Time for the most wonderful part, the arguments
oooo
Keep find unnecessary code in my framework as I look at it to make this one lol
Literally a block of 20 lines that could probably be removed
lul
@signal tinsel you need plugin idea?
I solved that dumb code block i had with 3 lines..
lol I just realised I cant even use paypal webhooks since I dont have a business account
F
How do people make "basic" coding languages? I wanna make a basic one so I can just learn how people do it
Woahhh, how the hell did you guys add that like hint thing for when someone joins!?
When I joined it gave me a list of things I can check out
how would someone go about creating an image uploading server (like funnycube uses) or the custom hastebin upload server type deal?
(ping me if answer)
I use sharex
oh?
do you use the screencapture from them as well? i'm trying to use snagit for that as well
so same server but using different capturer
ShareX does all the capturing and uploading
Hey Funnycube how'd you make it so when someone joins a screen pops up and has like a list of what you can join and stuff
never seen that before, its crazy
Public server? bruhh, thats so cool
Do you have to have like x amount of members for it or?
Verified/Partnered/Discord Dev have access to it
Ahhh, I was thinking about buying Discord Dev as well, needed some of their freedom to make my bots & server more official
@obtuse gale buy discord dev? You mean to sell games?
@pallid gale how did you setup your sharex?
@deft ivy https://chevereto.com/
Idk how everyone does it
I bought a domain and a Web server and I can't work out how to do it. Also how do you host your server @pallid gale
its just a ubuntu server
what are you trying to do untouched?
you mean for a minecraft server?
@dry sage would that work with snagit do you think?
@pale shell so you want to have your own self-hosted version of what ShareX does by quick access links? sorry for my confusion lol
Like funny has i.funnycube.com or something
@deft ivy Sorry im confused mate, you want to have a server that you can upload pictures to? like a pastebin but for pictures?
server i can upload pictures to using TechSmith's Snagit tool
So you want a domain name? GoDaddy.com @pale shell
Well VPS's are cheap. $3.50 (USD) ish on OVH.com
so you just need a website to host pictures?
That's a portal not a website
Maybe
So you want to run pterodactyl and a website on the same VPS?
sure?
pterodactyl and your image site
website was coming later on but i wanted to get the image site setup first
Bear with me, I don't have a linux VM open in front of me so im going off of memory
okay so inside of your NGINX www-sites-enabled config.... you should be able to open a different port and have that port link to a different website. I can look for a piece of software that can host your image server but I'm not to sure about the config for your NGINX or Apache on your VPS
https://chevereto.com/ + docker looks like your best bet
i can probably handle the config, all i need is the software to hold the server so i can ftp transfer it to it
docker is already in use by pterodactyl so should be fine
okay so try chevereto but bind a different port for your image svr
would you prefer chevereto over sharex?
i notice that sharex is the favorite around here lol
yeah?
this is a little out of my league though. So i'm not too sure exactly
hmm alright
Wow look at that, a fully functioning program
@prisma wave
And now for the transpiler
Imagine having to be 21 to drink :kek:
^ xD
You have to be 21 to drink in public
Your parents are able to give you permission to drink in your home at any age.
Here it's 18
16 here lol
yeah in america its 21 or on private property with parental supervision
i swear to god if some poor little misinformed developer posts saying “gradle confusing” im gon rage
And I quote PiggyPiglet - "gradle confusing"
piggy fancy helping me a little?
ManaDrop sounds cool 😮
Gradle is complex and confusing
99% of its users copy their build configurations from somewhere and have a hard time doing own stuff independently
Including myself
for real haha
Gaby
Frosty
You got plans on adding those delays already or am I seriously gonna have to put a lil effort into it
I started using blossom with gradle, and it's been so nice
I will look into it this weekend, I want to make it not create a new runnable every time and such
I don't have to specify versions in two spots anymore
I might as well change everything xd
I mean yea just have on runnable starting from startup
what
@topaz bay what is Maper
99% of its users copy their build configurations from somewhere and have a hard time doing own stuff independently
@lunar cypress this applies to literally everything lmao. People copy and paste, or they learn the system, and once you learn the system, I promise gradle will seem less confusing than maven. Side note, you say 99% of gradle users copy and paste. 100% of maven users copy and paste. I’d be extremely surprised if people actually wrote their poms from start to finish by hand.
Prove me wrong, type out the xml header thing for a pom that you’d see at the top from memory
@lunar cypress this applies to literally everything lmao. People copy and paste, or they learn the system, and once you learn the system, I promise gradle will seem less confusing than maven. Side note, you say 99% of gradle users copy and paste. 100% of maven users copy and paste. I’d be extremely surprised if people actually wrote their poms from start to finish by hand.
@quiet depot you missed the point. I am not saying that maven is any better
Yes, people copy for everything, but they also learn. And how many people actually learn the gradle dsl, not to mention know what exactly they're doing in their build scripts?
Build tools are for some reason some of the most complex applications when they should not be
Yeah but this is not an argument lol. You can't just move the entire responsibility to the user. It should be designed in a simple way
you’re right, but in my honest opinion, gradle is fairly simple
Look at some of the build tools for other languages. Cargo, Leiningen, ...
Those are simple, easy and great at their job
maybe I’m inexperienced, idk
That may be the problem, I don’t have experience with other build tos
tools*
The problem is just that build tools are very important, they're integral to a developer's workflow
Optimally, they should be designed in a simple way so that beginners don't have a hard time getting into it and need to copy & paste everything and you still have more advanced options
How about we all just stop using maven and gradle, problem solved :))
intellij artifacts
Well that sucks too, but for other reasons
Nice, I added a debug command to my chat plugin
It generates a hastebin link
With the configuration and a list of all required placeholderapi expansions (and whether they are installed or not)
It was very late
lmao
Gradle is not even slightly complex
It's complex but not complicated
Can't be that hard
This is a christian server, watch your profanity!!
OH YOU THINK SO?!?!?!
Recursion or something
Alex.
I know how to do it
I've done it before
That doesn't make it any less annoying
I also can't fucking see right now
I think Im dehydrated
My vision is blurry
choke
no whats a line
Okay bm its ok to not like semi colons but it gives readability in my opinion
I don't dislike then
them*
but saying that no semicolons makes "scripting" code is stupid
https://img.bristermitten.me/21.52.35-2020.png how does he do it @topaz bay
@prisma wave ?
but saying that no semicolons makes "scripting" code isstupid
True but thing is I am so used to it so I am mostly for it because of the personal preference and I like to go random on these types of arguments
semicolons are stupid.
You get used to it, like in a few weeks of Kotlin i was so used that i'd forget to do it in java
I hate it when people don't use semicolons in JS
although it's not required, is still lowkey annoying
True yeah
i'm jealous of people who have Webstorm
OS license ;p
anyone here know why some YAML configurations use |- instead of | (by specification) for multilines?
https://img.bristermitten.me/23.36.12-2020.png this is genuinely hideous
https://img.bristermitten.me/23.36.26-2020.png works though
As long as it works ;p
Also doing some nice progress
@Default
public void def(final String argument) {
System.out.println("This is being printed on the default method, arg - " + argument);
}
@SubCommand("testing")
public void testingCommand(final String argument) {
System.out.println("This is being printed on the sub command method, arg - " + argument);
}
Would it make sense to always pass down the User that typed the command? Like I do with the command sender?
public void command(final User user, final String argument)
Or maybe the entire message? Hmm
I just finished my CommandHandler
Nice! How does it look like?
these are all the settings ive got so far
I was using JDA Utilities previously
and oh boi
the difference sweat
@ocean quartz I think having the user would be a nice option but you shouldn't need it
Quite nice @remote goblet
You should add things like the User and the Channel to the execute method I think
Yeah i might make a new event that's exactly like that includes stuff in there
@prisma wave Hmm, to be optional then I might do like this:
public void command(final String argument) {
getMessage();
}
That way the sent message is always available, with the channel, user, etc
That's an option. Are you not using reflection? You could just pass the User if there's a user parameter
Yeah but for example if they want you to introduce a user as an argument, putting one user will get the current one, it'd just create a bit of confusion imo
Oh yeah good point
I guess you could use an annotation but that would probably get messy
Yeah, I might just add it to the abstract class when ever the command is executed
In real life you don't listen for an event
why do we call them event listeners
maybe we could call them EventAttenders
Maybe the event term is flawed?
When in real life, we visit the event, why in software does the event visit us?
I guess event waiter would make the most sense? Since it's waiting for the event to trigger it
@heady birch youre using the wrong definition of event
**Event: **a thing that happens, especially one of importance.
Events happen around us all the time, and we are reactive to them.
@prisma wave
Is that odin?
No, its some random other language I started working on @pale shell
That is pretty cool though ;o
Yeah! The push reminds me of github
Kinda wanna join the custom programming language thing, but i shouldn't xD
Seems fun yeah i kinda wanna give it a shot

SafetyCheck extends AbstractCheck implements Check
public SafetyCheck(SafetyCheckingStrategy strategy) {
}
What?
CEO of enterprise
terrible
just found out on npmjs' website if you click the heart in the top left the little message changes - I found this xD
@topaz bay that's pretty cool
It looks like newer java versions are starting to copy kotlin features
namely the enhanced switch and automatic casting
automatic casting?
if you mean smart casts, java doesn't have that and won't get it
also switch expressions are not like when
I was referring to niall
pattern matching and smart casts are not the same
or similar, even
How would 1 go about compacting 3 for loops
for (int x = (int) location.getX() - 1; x < location.getX() + 1; x++) {
for (int y = (int) location.getY() - 1; y < location.getY() + 2; y++) {
for (int z = (int) location.getZ() - 1; z < location.getZ() + 1; z++) {
final Location l = new Location(location.getWorld(), x, y, z);
final Block block = location.getWorld().getBlockAt(l);
for (Material mat : blacklisted) {
if (block.getType() == mat) {
safe = false;
}
}
}
}
}
1 wouldn't really
automatic castings just what i called it, seems like a suitable name but yeah it was Pattern matching i was refering to
Although you could make the innermost for loop prettier
well now that I think about it
couldn't you break; if safe = false?
the entire thing, i mean
probably
also why are you casting to int
either use getBlockX or just use double directly
btw, Location has a method getBlock()
and World has a method getBlockAt(int, int, int)
It's not bukkit's location
What is it
WarpLocation, not relevant tho
Who's plugin would it be 
1.15 seems to be the poorly made version of spigot 😬 pure issues since trying to update to it
Yea cause you refuse to change your shit lol
getBukkit down? edit: found it in my cache ;D edit 2: gradle to the rescue
use buildtools