#dev-general
1 messages ยท Page 99 of 1
oh lol
@static zealot how is it going with your advanced cooke clicker game?
well its the same as it has been last time I've sent it
xD
I've tried adding a max upgrade for the auto clicker but gave up
oh why
my math is the worst
I couldn't figure out a math formula for it so after 2 days just gave up
What exactly do you need @unreal briar
Conclure is a booly
xD
Well Frosty it's all karma
Anyhow it's 11pm, and the fact that I drank a redbull like an hour ago doesn't help..
return isBeacon && isCorner1 && isCorner2 && isCorner3 && isCorner4 && isBookshelf1 && isBookshelf2 && isBookshelf3 && isBookshelf4 && isBookshelf5 && isBookshelf6 && isBookshelf7 && isBookshelf8 && isBookshelf9 && isBookshelf10 && isBookshelf11 && isBookshelf12;
Perhaps if you wouldn't have sent me this 
jfc
(I've surprisingly not fucked my sleep schedule within these 3 months)
And that sounds wrong..
My sleep schedule is fucked for a long time now
I waske up at like 2pm
and sleep at 4-5 am

What's the point of sleeping anyways
true
Where did blitzie go
died
I c you're using intellij idea community version 
I have some DM menus to do
Why don't you start with java?
because I have no time
if it was for me
the question
Well it's like javascript
I will. I rly want to start to learn it
well some of it
but its a lot more complex
and hard to learn and I don't rly have time this next 3-4 weeks
I mean wouldn't mind to waste my time trying to teach you some
blitz, i dont have time and im still learning <o/
ok ok but spam me whenever you're going to
@onyx loom good for you xD
literally take the time that you waste into dm menus and put it into java learning
I mean if I would just try a bit I would have enough time but I am a bit lazy
literally take the time that you waste into dm menus and put it into java learning
this
I am making 2 menus for Gianluca they are not for me
haven't made a menu for myself in like 2-3 weeks
Do you have intellij idea?
no, hes an eclipse user 
ah yes ofc
I have that and eclipse but never used any of them
delete eclipse
okay let's say that you should probably open intellij now
let the circlejerk begin
lmao true
๐
innit like some cyber attack event today
ยฏ_(ใ)_/ยฏ
pridefall?
wasn't that supposed to be on june 1st
๐ฎ
๐ code ๐ review 
well if anyone wants to https://paste.helpch.at/xadowivopa.cs
๐
pretty good
make things like number1 and input val instead of var, and possibly extract the random number making to a separate function (eg createRandomNumber).
Might be reading this wrong, but couldn't you just get 1 random number between 0 and 100 instead of 2?
Also, you can use repeat(n) instead of for(i in 0..n)
does val work? as its being reassigned in the for loop each time? or am i misunderstanding how val works
i need 2 random numbers as theyre being multiplied together as a sort of times table quiz challenge
val for number1, number2 and input will work fine
ok so im guessing val cannot be reassigned within the same function procedure. but it can be reassigned if the function is being repeated?
its hard to explain my logic behind what i mean ๐
ill try out val tomorrow. i just didnt think it would work
also with creating a seperate function for the random numbers. is that really an improvement as its only 1 line currently. or is it just for more tidiness
tidiness mostly
๐
i enjoyed this code review
there was little to say. which is a good sign ๐
not that the stuff im doing is hard anyway ๐
do it as a reaction bardy
u cant do it here ๐
where can I do it?
go offtopic
https://s3.amazonaws.com/baeldung.com/Building+a+REST+API+with+Spring.pdf?__s=gyzc9zj01n5ilkecaozc someone rate this eBook on how to create a rest API in Spring please ๐
Looks fine I guess
Rest APIs in spring are ridiculously easy so just a small tutorial will probably do just enough
I ain't watching no low-budget eclipse youtube tutorial
lol
anyway, probably gonna be going off for the night now
see you lot tomorrow
how do u add a library to an Eclipse project
You first start by downloading IntelliJ ;p
Pft, your loss
lol
@verbal relic No but seriously though, do yourself a favour, and download IntelliJ
Download IJ, then use gradle and you'll never need to ask about how to add a lib to your project
yea, nah
boutta re attempt making a massive bedwars plugin

Frosty the framerate on that gif hurts me
It's perfectly fine for me?
Its like 30
When you jump its so juddery
Might just be me, but eh
I demand 4k 1m fps gifs (โฏยฐโกยฐ๏ผโฏ๏ธต โปโโป
It might look like that due to the bedrock background
@heady birch get outta my shit kid
Mildly simmering now
idek why I made it that
Lol
Is there a way I can make intellijs console support chat colours or naa
no
ANSI colours are a thing but I'm not sure if Intellij registers them properly
The IJ terminal will, not sure about anything else
you can link a custom terminal with intellij
I don't think the intellij default one supports those things
so cani like set it to git bash?
hm
well I set it to git-cmd.exe
Does that just change the terminal thing in intellij, or will it change the the "build" terminal
Why would there be chat colors there?
cos why not lol
because its not a terminal
Its... a log...
Which does support ansi colors
Also, I'm pretty sure using paper from IJ the colors work
im not using the paper api, i am using a paper jar tho
lol what
it's a log, not a terminal, sx is right
you won't get any colours in there
but why do you need colours in there anyway?
Some plugins have colors on their prefix though, idk how the log works
they send a message instead of using the logger
Bukkit.getConsoleServer().sendMessage(
ew console sender
idk
looking for a plugin with which i can edit every drops from the game, such as dropedit2 (but this one has really bad looting / fortune support and lacks a lot of support for some blocks)
Best API out there
oshit
github has a dark theme?
yes?
oo
oh god uve been using light theme all this time?
It's a chrome addon
o
Been buggy as hell lately tho
is it not a github thing?>
I don't think they have a dark theme no
Like maven or npm registry @obtuse gale
You can upload a maven package to there
Or npm or fuck knows what it supports
Who's fuck
A cool guy
Neat
Yes
can anyone help? people cannot place creepers ontop of spawners without getting a msg saying they cant change the spawner with an egg
so its impossible to cegg spawners
I'm assuming you're using SS, I think you're gonna have to fork it and change that yourself
@prisma wave Got any threads which I could reference to when making an API for my plugin?
I'm afraid that searching through spigot forums I'm gonna get misslead, and turn out like all the other idiots who make apis
for an API, I'd suggest just putting in what you need to, and then refining it later
you'll never, ever get it right the first time
Bardy, not the issue, I've no clue how to make it
imo the best way to go is just an interface as the main endpoint (possibly service manager)
as long as you're properly encapsulating the implementation you can't really go wrong
@hot hull try to get a vague idea of what information people might want to get from your API
It's a private API
why you making an API if it's private?
Making it so I have an easier time hooking up plugins together
ah okay
(So I don't have to copy certain classes etc, cleaner)
why you making it private?
Because it's for private plugins?
as long as it's very generic and doesn't depend on any plugins, you shouldn't need to make it private, but if you want to make it private, guess that's your choice
???
also, if it's for use in other plugins, I'd call it a framework or a library
Why would I make it public?
there's no point in making a public api for a private plugin
there's no point in making a public api for a private plugin
fair point
And no, it's not a lib/framework, since it only contains events from the plugin, etc
so you're using this api to have one plugin hook in to another
Sort of yes
what is the plugin that you're trying to make an API to be able to hook in to?
I'm guessing you don't fully understand what I mean
not quite, no
APIs are for one thing hooking in to another, usually so others can hook in to your creation
Exactly what I said yes..
why don't you just have the plugin hook in directly?
Future proof
no point spending time making an API if you're gonna be the only one using it...?
okay
well, as I said, if you're making an API, just think about what you want to hook in to
if you want to future proof it, think about what others might want to hook in to as well
Future proof
^^^
making an abstraction makes it a lot easier to change the implementation in the future without breaking things
an API can be as simple as 1 interface
an API can be literally anything
APIs are designed around ease of use and functionality
neither of which you really have to worry about for a private API
Why not, why would I make my life harder, when I can give it like 30min more of thinking and making it clean beforehand?
as I said, you probably won't get it right the first time, nobody really does, just try and make something that works and refine it later
within reason ofc, yeah
for an API I'd suggest modelling how you want each thing to interact with each other, if you really want to make sure it's going to work well
Imma look into Spring to learn that
I never said that
it was a completely random message not related to anything anyone here ever said
xD
ah okay
yeah I would only suggest using Spring for larger projects since it's such a large framework
What else do you use in java lol
Making a tik tac toe game
I don't really use any frameworks, never used one before
#development btw ๐
obviously I use a plethora of libraries and a few APIs here and there
Lol
I really only use spigot-related libraries right now
Though I'm considering making a Discord bot in java again
Been a few years since I done so
just make sure its not barry 
Kotlin ๐
https://github.com/JesseCorbett/Diskord this doesn't look too bad
no where near as advanced as JDA from what I've seen but it looks like it'll do
Fuck kotlin
Kotlin says fuck you too
Kotlin (> * โ) Java
Ite time to make a test commit to see if I configured everything properly
Which tbf I prolly didn't
spring is worth it
spring is worth it for larger projects
Which SuppresWarning is for this?
for every
@SuppressWarnings("ResultOfMethodIgnored") I think
something like that
or just Alt+Enter
I believe there's an option for it
"Suppress warning for whole class" or something like that
ResultOfMethodCallIgnored :))
Am I safe to ignore this NPE warning, since I am creating the section above if it doesn't exist?
So should I reassign it aswell?
yeah it will still be null
you need to reassign it yeah
section = manager.createFileSection() probably
Nah
Still gives me the warning, but I can safely ignore it now, correct?
have you checked all the cases for section?
so if it's null you need to reassign it if you're creating it, if it's not null then you can just use it
I mean yea, that's what the check is for
if you make sure that there is absolutely no way that it can be null then the error will go away
I mean
Is it not your code?
It is yes
So change it...
aye aye sir
yeah he's right
took me a bit of time to process that wow
also I think I know the issue with that other code: you're using the same method for the second time, which I imagine can return null, so IntelliJ sees that as it can be null for the second time
if you understand any of what I just said lol
I don't, no
get is nullable
^^^^
You are never actually resolving the nullability
^^^^^^^^
Why in gods name do you have an async option for saving a config file...
that as well
Someone said I should do it async
async file transfer is dangerous as it can lead to data loss from what I remember
it's why we don't transfer packets async
because it can cause corruption
idk
Thats not true
it's true for packets, maybe not so true for files though
theres no reason to save these files async, theyre absolutely tiny
It is also not true for packets
I heard you should never transfer packets async
The entire minecraft protocol is asynchronous
hmm okay then
That doesnt even make sense
netty uses several threads
You can even customize how many threads it uses
isn't splitting packets between threads a bad idea though?
other than that, yeah I agree
What makes you think you need to split packets over threads?
packets are tiny pieces of data
ik
just heard once that this guy said you can't transfer packets asynchronously
ยฏ_(ใ)_/ยฏ
suppose this is the same guy who told me I should support plain text, YAML and JSON in my Punishments plugin
"You can't send packets on an async thread because spigot handles it"
that's the message he sent me
ยฏ_(ใ)_/ยฏ
maybe I just understood what he said wrong
also this is the same guy that said futures cause blocking
Futures block
wrong
futures can block
CompletableFutures in their default state which are not completed block if you try to get the value
using .get
I'm more concerned about this packet nonsense
You never specified, so I used what you gave me... .get() XD
@topaz bay Irrelavent
Different conversation
That.... is literally the entire conversation
Packets are not related
He only just now mentioned what you said about futures
The future thing is not relavent to the packets thing in this context
I dont give a shit about the futures
The conversation was about packets not futures @hallow crane
I pinged you because of what you said about packets
^
??
look at the picture yako
You said packets cant be sent async?
The argument is not "you can't send packets over async" it's the specific context
What was the "specific context"?
the context here is he was trying to update a holographic scoreboard with data every so often
and it was causing about a 5-10 second freeze on the main thread because he was transferring ~5MB of data
๐
@jovial warren suggested something to do with tranferring large data over packets and I said you couldn't do that because of lag implications
Anyways, I don't really care, this was a long time ago and I've solved the issue
I suggested you use futures to update the data
No idea why you dragged me int othis @jovial warren
I didn't intentionally drag you in
What "lag implications" were there tho?
I just said where my source of information about packets not being able to be transferred asynchronously came from
I don't really remember anything about the argument or my specific arguments because it was a while ago
Ping RickyB98, i'm pretty sure he told me something related
discord has a search feature
I have a life, I don't have time to search for this information right now.
you can literally search for async and it's the latest result
I honestly do not care, I am really busy right now ๐
okay let me explain it to the crowd then
basically, this was on the Skycade KitPvP server, and we had a few holographic leaderboards that would display information about top kills, deaths, etc.
the problem was that updating the scoreboard would cause the server to freeze for a few seconds whilst the data was being transferred to the leaderboards
I spoke to yako about it because I thought it was an easy fix, and he told me that 1. Futures block, and 2. that you can't multithread packet sending
that's basically it summarised
both of those statements are false
https://img.bardy.me/numbertwo.png that's some more of our conversation (before the original message I sent)
Actually, I remember now. I just said "packets are handled by spigot on the main thread" because I needed a filler argument so you'd stop asking about the details, because we have some private stuff with the data that relies on non-asynchronous calculations.
Packets actually do not relate at all to the argument because packets are handled elsewhere completely
okay, so maybe it would've been a better idea if you had told me that in the first place ๐ค
I was in a pinch, in some calls, etc.
Packets actually do not relate at all to the argument because packets are handled elsewhere completely
if they were handled completely separate, then why did they block the main server thread?
๐ค
Packets didn't block the main server thread, other operations did
okay
the only operations I can think of that would block the main thread for a few seconds are database operations
there's probably a lot more operations than that though that if not done right will cause issues
Again we are going full circle here- doesn't matter what the operations are; they block the main thread
It doesn't have to do with packets so it doesn't matter

NDA, my dude
so basically what you're telling me here is that what you told me is complete and utter bullshit?
Nah, the Futures blocking the main thread was legit. Packets are irrelavent.
That's not true though
Futures don't block
That's the point
Unless you do ConpletableFuture#get or something
you told me you can't transfer packets async, so that was complete bullshit then?
in our situation they block because we need the data on the main thread
Unless you do ConpletableFuture#get or something
which defeats the whole purpose of using futures may I add
Callbacks are a thing
you sent me that a while ago
yako
in our situation
but with completablefutures you can wait until they are completed
doesn't matter what it was or how it worked, it would've blocked the main thread
not wait I mean check
Yeah sure you can check
Why would you not use a callback
^
That operation could still theoretically block for a long time
Because of continuous operations happening at the same time
We ended up not even using futures and looking at it from a different angle
That's just how the system was designed before i got there
in our situation they block because we need the data on the main thread
Ew
I...
Enslaved race conditions
I can't breathe
I don't get to change 250k+ lines of code to just fix one issue
also how exactly do you expect to run code async and have it return to the main thread without blocking it?
We ended up not even using futures and looking at it from a different angle
you don't
any chance of you elaborating?
No chance, NDA
so you either didn't run any code async, or you ran some code async and didn't return sync
those are the two options I can think of
I know you are smart, so I think you can figure out the solution to your problem
you can't figure out a solution with only half of the problem
it was that the KitPvP server was freezing up due to the updating of the leaderboards
basically
that was your issue?
that was the issue you had
Does an NDA really extend to not revealing what concurrency model you use? It's hardly a state secret
Fair enough
You can use a middle man like PlaceholderAPI
and provide updated data in a callback
run everything async
Or just callback and modify some static instance somewhere and use your own framework to get it
modify some static instance
ew
Your turn to suggest something @prisma wave
Why not just cache the data so you don't need to query every time
That's my suggestion
that's pretty much the model I was going after
Ngl I don't really know what you're talking about
In my problem we also had something different to take into account- hooks in 25 different plugins that had to be called each time there needed to be an update
PlaceholderAPI seems like the way to go here
a leaderboard that has 25 different plugins hook in to it
Kotlin
what about it
KOTLIN
That's literally what it is
COROUTINES
I was just @ ing you but I didn't want to type it all out
xD
But we used our own system for hooks because Papi doesn't have support for maps of sorted data
I'm pretty sure the way you get PAPI data is that you only get it one at a time
like one placeholder returns one thing
Anytime there is a placeholder request it calls the method nested inside the external plugin
that's what we do, but it is called to retrieve data
I'm guessing you were updating every single leaderboard at once
also, those leaderboards only had like 30 entries max from what I saw
I believe I said it in the argument we had, but we post each operation to new threads and stuff
The leaderboards had 30 entries, but all of the data that needed to be sorted had 200-300k+ entries from all the players who've joined
so you take the data from the players database, sort it by a certain field, then send that over to the leaderboard and hay presto, no?
Sort of yeah
that's one way of doing it
Im not going to say exactly how we did it but it's similar
"how we did it" is that before or after?
before and after but with changes to the sorting process
how were you sorting the data originally?
Me after violating the whole Us navy contract after posting my question on stackoverflow
surely stuff that isn't used any more isn't covered by an NDA
They usually terminate after a certain time
ยฏ_(ใ)_/ยฏ
we sorted with a sorting algorithm
you know that's not what I'm asking
No I don't
what about concurrency
what about
was the data sorted sync or async?
async
then how did the data get to the leaderboard?
well we cached
and then the data was just retrieved from the leaderboards plugin beacuse it manages holograms
so what part of that was causing the freeze?
before the freeze was happening when we were sorting on all of the hook plugins direct from sql
we moved it to the leaderboards plugin using an algorithm
you were sorting on all the other hook plugins via SQL? was that done async?
- direct from sql
i don't remember the details but it was freezing for some reason relating to the amount of data idk
wherever bottlenecks occurred it probably happened there
can you update holograms asynchronously?
couldn't you have filtered the data down to what was absolutely necessary asynchronously?
well you can update them with packets which can be async (not hypocritical because I didn't mean it)
so you wouldn't even need to touch the main thread in that process then
async get data from db -> async sort data -> async update hologram
well if you were updating states inside the world
it would have to be sync
We filtered the data to be put into leaderboards but we still have to sort every entry because what if the person at the very bottom of the list got 100 kills? it might offset everything
but don't you sort the list first and then filter it down?
sort then filter
sort and filter async, then push the minimum amount of data required via packets to the holograms
the only issue then is sending that updated data to clients
I imagine Minecraft does that itself, but I don't imagine it does it very well
You aren't really....using packets to send data
You just intercept the player's packets when they view the hologram and replace theoretical placeholders with the correct text
wouldn't you just be able to do the replacement after the filtering and then push that data?
then the hologram won't have placeholders on it, which means you won't have to intercept player packets
Sort -> filter -> cache
then sometime elsewhere
Packet to see hologram sent by player -> intercept -> replace text -> continue
which the interception of all online player's packets at the same time seems like the reason it would cause lag
what about for the main thread?
Still would be fine
updating every single player's packets all at the same time has got to cause some lag no?
Lots of anticheats are lag-free but they intercept every type of packet- not just view ones
The view packet only comes in once when they join I think
the lag was caused by the way we did sorting in relation to the plugins that hooked in (as I said before, I think)
how were the plugins sorting data? async?
how am I doing what?
Well your problem was update the holos, right?
I never had an issue in the first place, I just took your word for it about packets not being able to be transferred async and brought that up here
Well your problem was update the holos, right?
that was your issue wasn't it?
actually we've been over this now, it wasn't really
No, my issue was lag from sorting
also, why were the plugins doing their own sorting?
Because the data was in relation to those specific plugins, not the leaderboards plugin. a matter of structure and consistency. We changed it anyway
so the leaderboard plugin is the one that does all the sorting, then pushes it to the plugins
No
The plugins that hook into are called when needed which send the data to the leaderboards plugin to be sorted and holos are handled there
data doesn't go from leaderboards to external plugins
ah okay
also, why did you have that many different plugins doing that many simple tasks?
the only tasks I can think of are: log when a player kills another, log when a player dies, calculate a player's K/D ratio, and there were some other things you had on those leaderboards like most coins
custom stats
kill, death, killstreak, kit usages, coins, gang points, gang coins, etc
hundreds including other gamemodes
it provides a framework to be used in any situation we can think of
It's used on SB, factions, kitpvp, prisons, and all others I think
gang points and gang coins should be in the same plugin
kills, deaths, and kill streaks should be in the same plugin
coins and kit usages should probably be on the same plugin
you guys should wait for a multi
lol
You would get to like #10 easily
so you had the same leaderboard plugin for all the servers? okay that makes sense why there is so many plugins hooking in to it
doesn't depend on anything? how does it update spigot then?
papi
you know what I mean
Did someone say daddy ๐
I love papi
The leaderboards plugin is an abstract framework that provides infastructure for creating holographic leaderboards by the plugins using it- it doesn't manage any statistics itself
...just like papi
okay
I think you've answered most of it so yeah I guess so
also technically I own skycade now because dwayne/space are gone ๐
Server owner role ๐ ?
you don't own it, you just run it
no wonder it's all gone to shit then
- only in the past day they left
- why so toxic lol
I'm messing with you
Go argue in DMs :))
@hot hull how do I get xp fast
shut up frosty
and free
I love this song
You should've waited for a multiplier yako, then had the above convo :p
lol
do multipliers just get randomly applied? xD
no
No, when someone boosts there's a multi
And if any of the admins are feeling generous
oh
#off-topic
lol
anyone know where the API is for ezblocks?
go through that I guess
why's it on Maxim Van de Wynckel's GitHub then?
god knows
Probably fork
also what is that project structure?
its not a fork
if it was a fork it would say it was a fork
I got that from someone who forked it
since when was EZBlocks open source?
you know that project doesn't even use build automation
it isn't BM
well, it kinda is and it kinda isn't
this isn't the latest
I didnt use build automation until a few years ago
ok?
And even then I only used it on some projects I intended to distribute
this must've been back in Maxim's eclipse days lol
pushing .settings, .classpath and .project
disgraceful
6 years
At least its not application-prod.properties
lol
why are none of clip's plugins open-source by the way? does anyone actually know?
also he definitely didn't think about how his profile picture would scale to a larger size https://github.com/extendedclip
also is it just me or do none of the people who post in #716864121043419167 have any idea about how much something should cost
I mean, $7 for a plugin that modifies 1.12 knockback values to be more like 1.8
now that's stupid money
and the one above is maximum $100
now I understand why I went in to programming
ยฏ_(ใ)_/ยฏ
wtf player spoofing for 40$
yep
that's what I mean
okay you have to modify it via the proxypingevent I think
I should really start doing some of these
I mean, I've got plenty of time for it lol
just edited my post again in #716864120410079322
lol
recommendations for UI framework?
UI? what kinda UI?
idk just a gui application that i can make n shit
Swing?
yeah good point
JavaFX ?
u stupid
https://www.youtube.com/watch?v=_AHpRNJLamc that kid is you rn @old wyvern
JavaFX
get yo ass outta here
ok?
I'm messing with you lol
i dont need it for anything complex, just more for getting the hang of events and hooking into a framework etc etc
im moving up into the big leagues ๐
why did you started with the worse league, kotlin?
NetBeans does well to make good GUIs
NetBeans
:)
not personally
Hello guys, i was wondering... does EzBlocks has an API to take the amount of mined blocks for a specific pickaxe ?
%ezblocks_broken%
thats outdated yugi
oh
No idea
Yeah i already have that, but i can't find the method, do you have any examples ?
Not sure man. I dont think its supposed to store per pickaxe/item.
That's strange
@onyx loom Swing
U got unlimited support from me
Except making ui's, i'm bad at that
thanks ๐
anyone use autosell plugin and able to help me fix mutlipliers? they broken
How can a server recource pack only change certain items and keep the players default texture pack on certain items
Like if i make a crackshot pack I only want to change guns not anything else
A resource pack only changes the textures you provide
so if i just make a mcpatcher folder, it will only change those items?
You do have the ability to test this
@topaz bay Are Coroutine schedulers done only with delay(time)?
difference between swing and javafx sx?
๐
@obtuse gale thats hot
xD
So I had to bind like P1 to Cntrl Alt Shift ]
๐ฎ
Then set shadowjar to CntrlAltShift]
What's the spigot one? Javadocs?
Fires up my spigot server in IJ
So when I wanna restart my server with an updated jar I just do
P1 P5 P2
Damn
Still tryna think of a good generator JSON format, this is the best ive got atm
Dont love it tho
Why not have the tiers be a list as well?
Damn just counted, and I've got a total of 57 spigot plugins made in my IJ folder :oshit:
@onyx loom please dont use swing
@topaz bay
Theres no issue with swing
@onyx loom What one did you choose
Javafx looks nicer to be fair
Javafx is literally the replacement for swing
There is an issue with swing
Its not modern, its been replaced, and its fucking trash
There is no reason to start a new project with swing
4 blocked messages
lol
4 blocked messages
@heady birch :)))
@topaz bay Java fx doesnt have native L&F
no
7
Maybe when someone releases a decent docking framework for it
Considering your brain leads you to believe that swing is a better solution than JFX
Yes
Yes I do think you didn't

InfoNode Java Components
Old, but gold
No
Obvisouly havnt tried the demos
I don't need to try demos to know that using software that is a decade old in a new project is fucking stupid
especially when there are direct replacements
Oh, maybe you could link me one as feature packed as that then
Docking
Tabbed docking
Info & Jide are state of the art in my eyes
A feat of human engineering
nerds, i dont even know what that is
This literally has both of those
There are docks
And there are docks with tabs
?
I cant really use java fx anyway
i Have a fix for launcher not able to log in PLZ DM me for INfo
^
The Play button sometimes will not work or ever work no more unless restore your entire comptuer well i found a way to fix in 5 mins
Why dm tho
Ive never had that issue
THe Operation to do it is too long
nope
none of that works i have microsoft REmote my computer they could not fix it unstall install miecraft tons of times did a restore keeping files nothing
Seems like user error
Microsoft still do remote support?
๐ฅ ๐จ
๐ฆ ๐ฉ
i clicked a json file to open with something els well my mess up
after that everything broke'
Ah yes when you wonder why shit doesn't work, and you forgot to throw in the plugin ,-,
How would I change someone's nametag? (Above player)
I can't seem to figure it out
nms iirc
What in the world is that?
net.minecraft.server
How do I use that?
set name in GameProfile to needed name via reflection. Then remove-readd the player to playerlist and respawn him with destroy and namedspawn packets
this is so depressing
๐ฎ
R :omegalul:
But the statistics are kind of useless if they aren't relative to their users
Should I bother making a DB for this? or is it fine if I store it in a file, just so it persists reloads (at load it's loaded into maps, and saved on stop)
file is probably fine
If it only is that data then file is your bet
Also, should I still be learning py now 
Cause idk anymore
K, I'll keep it in file for now, but gonna move to a central database after all the plugins are finished (so it's all stored in the same place)
hmm
hmm what
Also, is learning a new language by looking at examples then copy from it and tried to understand it times by times a bad practice?
I think it might
probably not
Thats pretty much how the brain gathers new information
what ever works for you
I mean, there're a gang who straight up coding a discord bot with py without even have any tutorials or any understanding on that language
All the c family languages are basically the same
Its pretty easy to jump between them
;C
Test one analysis: Generators started spewing out blocks at an alarming pace
That doesn't seem like an issue
main issue is this bad boys giving null
fun killGenerators():Boolean?{
val coolTask69 = task ?: return null
coolTask69?.cancel()
return true
}```
Nice var
@obtuse gale fun killGenerators(): Boolean = task?.cancel() != null
lmfao
Why would you even return null in your original code
instead of just returning false
4head
on an unrelated note
is there some way you can do this lol, I keep naturally typing this
val x = whatever ?:{
// stuff if its null
}```
run
just dont let it be null
Is the code supposed to return after that block? Or keep going?
It depends on the context
Where are you assigning the task?
fun createGenerators(world:World){
readGenerators().forEach{generator->
generator.locations.forEach locationForEach@{location->
if(!plugin.holoGrams) return@locationForEach
val holo = HologramsAPI.createHologram(plugin, location.toLocation(world).add(0.0,4.0, 2.0))
holo.appendTextLine("&aGenerator: &b${generator.name}".colour())
holo.appendTextLine("&aTier: &b1".colour())
holo.appendTextLine("&aTime until next tier: &b${generator.secondsToTier1 / 60} minutes".colour())
task = object : BukkitRunnable() {
override fun run() {
world.dropItemNaturally(location.toLocation(world).add(0.0, 2.0,0.0), ItemStack(generator.item).setName(generator.displayName))
}
}.runTaskTimer(plugin, 0L, generator.secondsToTier1.toLong())
}
}
}```
in here
@onyx loomWhat desktop app are you making
er
Do I make a list of them? Like what should i do now
then cancel all in the list
If I were to combine multiple plugins into one, how should I seperate them
Do I just make packages which represent each plugin, or?
(And how would I properly seperate the configs for them)
@obtuse gale why are you making 1 task per location
You should have 1 task per generator
just thought aobut that
Sx, I need your wisdom
?
If I were to combine multiple plugins into one, how should I seperate them
Do I just make packages which represent each plugin, or?
(And how would I properly seperate the configs for them)
fun createGenerators(world:World){
readGenerators().forEach{generator->
generator.locations.forEach locationForEach@{location->
if(!plugin.holoGrams) return@locationForEach
val holo = HologramsAPI.createHologram(plugin, location.toLocation(world).add(0.0,4.0, 2.0))
holo.appendTextLine("&aGenerator: &b${generator.name}".colour())
holo.appendTextLine("&aTier: &b1".colour())
holo.appendTextLine("&aTime until next tier: &b${generator.secondsToTier1 / 60} minutes".colour())
}
tasks.add(object : BukkitRunnable() {
override fun run() {
generator.locations.forEach{
world.dropItemNaturally(it.toLocation(world).add(0.0, 2.0,0.0), ItemStack(generator.item).setName(generator.displayName))
}
}
}.runTaskTimer(plugin, 0L, generator.secondsToTier1.toLong()))
}
}```
That should fix it right?
It depends on what you mean by "combining plugins"
I've got 5 custom plugins, tokens, tools, etc,
I'd like to combine them all into a core plugin
eh
Would package seperation fine, or is there a cleaner way?
probably
How should I make seperate configs?, should I just make files representing each plugin with <plugin>-config.yml or should I seperate them using directories?
(Some plugins have their own files)
You would want to redefine them as modules
fun killGenerators() = tasks.forEach{it.cancel()} Just does nothing lol
https://paste.helpch.at/dikabocuzi.cs
mk
Is it not cancelling the tasks?
ye
adding some debug printlns now
these macro keys ive got setup are nice
hm
It would imply nothings in the list, I added a thingy in the forEach and it didnt print anything out
its the same instance right?
should be, its a global/local/idk wtf to call it variable
its defined right at the top of the class
Send the entire class
Full class
ye, the items are spawning
Where are you calling kill from?
@SubCommand("kill")
fun kill(player:Player){
val gm = GeneratorManager(plugin)
"Calling method".debug()
gm.killGenerators()
}```
dude
I get that debug message
How in the hell are you supposed to cancel the tasks
i