#dev-general
1 messages Β· Page 581 of 1
@static zealot
is there any way to use IIJ with two monitors, to like have the same project opened on both screens?
you can drag the tabs like in chrome to open a separate window
e.g. moving a class to another screen
why haven't I thought about that lmao
you can also detach docks from the main window
e.g. terminal
project view
click on the 3 dots -> view mode -> float
Oh god i entered presentation mode and left now it looks like this :kek:
oof
also happening to me, along with some other icons
have u just tried not being bad
this sometimes works ^
not always tho. I am the proof for that
Nice
do you hate yourself or something?
at least you can work on slimefun now ig
if that's something you were planning on working on
could be worth it
hacktoberfest soonβ’οΈ
Lmao
Oh yeah true hacktoberfest is getting close
yeah they keep emailing me
yet I still haven't got my t-shirt
Oh that looks cool
anyway whose project am I contributing to in october
no
why not
papi 3 will probs be 2023
okie dokie
πππ
Frozenjoin
i thought that was abandoned
Nah star took over
linkerino
Did jack shit so far, but anyways
ah yeah i get that
Check my gh
i took over a discord bot like 3 years ago
still haven't started working on it
one day
ew it's kotlin
oh i wrote this readme
okie
which is better performance wise? a bunch of 500x500 (or smaller) Slime Worlds (via SWM), or a single World with everything happening in it spaced out like 200 blocks apart?
(in this case, the latter requires re-coding the ender dragon to not always use 0, 0 as a center)
:kek:
Me:
Star there's a bug
Star:
PR
that's what Star is doing for the project xD
Mhm
With a 200$ budget total
and maybe payment
wtf is this new icon
Evil Half Life config
Lambda
I thought the same em lmao
?jdk
Fixed it
wait. java 17 came out right?
Yeah
If you're eager to get it ASAP Oracle ships archives/binaries already, but general suggestion is adoptium anyway
I mean it doesn't make a difference to us really..
Might as well get it lol
Oh isnt openjdk 17 out yet?
π
Fucking JS man

@lunar cypress Was it always possible to add buttons to ephemeral messages? ;o
I tried that but i don't think JDA lets you
yes it has always been possible
Dang it JDA
JDA should support it too
Huh, let me try again, last time it didn't show the action row
Ay nice, good to know
π₯²
jesus
Capable and Ergonomic IDE for the JVM Platform by @jetbrains
Tips: #IntelliJIDEATips
New Features: #NewInIntelliJIDEA
Our YT channel http://jb.gg/video
4013
109184
Good twitter account
PR or shuddup π
no u.
i keep getting this error when i try to run basic kotlin code does anyone know how to fix it?
**FAILURE: Build failed with an exception.
- What went wrong:
Could not open init generic class cache for initialization script 'C:\Users\arjan\AppData\Local\Temp\wrapper_init2.gradle' (C:\Users\arjan.gradle\caches\7.1\scripts\5g8a41gvqrxo32pc5g0mizz1r).
BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 61
- Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
BUILD FAILED in 2s**
Neither Kotlin nor Gradle properly support Java 17 afaik
oh damn didn't that come out like 2 days ago
yes
tell them it's great
"yeah dude it's great you should try it"
"Look, I don't know if you're talking about Java or drugs but I'll try both anyway"
"ketamine you say?"
reasonable
Is it exhaustive for sealed classes? Like Kotlin's when?
wdym by that?
For example, in Kotlin when you're working with sealed classes, you need to add all options to the when or add an else and if you add all you don't need an else
Or else you get a compile time error
I would expect default to cover "everything else"
And get a compile-time error if you tried to case for a class that is not in the extending classes
It's most definitely specified
I just cba to go check right now
actually I can and I will
I'm sure you also get that issue with switch expressions without a default, not necessarily with sealed classes
e.g. checking an int value or an enum constant
to be a valid expression it must return something
it's like having e.g.
int something(int i) {
if (i == 10 || i == 100) {
return i * 1000;
}
}
this does not compile
same principle
Ah yeah, good point, as an expression works differently
That would be the same with kt too right?
Yeah
Alright xD
Also the latest snapshot of MC contains the very first usage of record classes
Completely unrelated but yeah :^)
Oh shit they are actually using new features nice
https://github.com/Mojang/brigadier/pull/93
"Mmm yeah, I contributed to the Minecraft command manager library π"
like a certain person
breaking change 
π₯²
lol so TRUE
man, its literally test method names too lol
I actually have a better idea to contribute to the jdk
Let me PR to remove the "A" so i can put on my resume "official contributor to the jdk"
It's just there is a lot of things to do before you can actually contribute
man wth that class is literally 1167 lines of comments, jesus
And I have to read and do all those things 
what do u have in mind π
wait really?
in before they actually look and just find this π₯²
yeah you can't just make a pr on gh, there is a whole ass process
in reply to this
I actually have a better idea to contribute to the jdk
I was very, very, very disappointed to find there is not an Optional::mapToInt/mapToLong/variations that return an Optional* of that type (OptionalInt, OptionalLong, etc), unlike Stream and variations which do have them
There were actually two times I could have used that
And I thought the stream package had a lot of documentation already.. π₯²
MethodHandle (class jd): 395
VarHandle (class jd): 428
java.util.stream package-info: 726
(new) Vector (class jd): 1135
wow
Actually @ocean quartz I would expect you must have a default for pattern matching switch expressions
for one particular reason
null

lol
Yeah as I thought, being null is (naturally) a possibility
If C is sealed, then the expression is guaranteed to have a value that is either (i) the null reference, (ii) an object whose class is C itself, or (iii) assignment compatible with one of the permitted direct subclasses of C (Β§8.1.6).
Not specific to switch expressions, but the "type of an expression"
whatever that means...
https://github.com/adoptium/adoptium/issues/74 wooo they started
π
I wonder how long it will take for gradle and ij to support Java 17 
They've been pretty fast recently i think
ok but what about aojdk itself π₯΄
you mean adoptium?
yea
Well it's already listed as an option in here https://adoptium.net/releases.html?variant=openjdk17&jvmVariant=hotspot
but builds^ aren't ready yet so there isn't actually anything
guys rate my web dev 
https://download.bentobox.world/thirdparty
Downloads Website for BentoBox & Addons
for the tabs (Third Party)
the underscore goes through the text
and it looks a bit off
Consider either making the box longer or choosing a shorter name
Also, add a bigger margin between the tabs and actual content
it will appeal better to the eyes
im on PC
its probably likely a responsive issue then
im on my school laptop and the screen isnt as big as a desktop
1440 x 900
Weird, seems responsive ehough
What browser?
Can't seem to get it xD
I tried that too lmao
maybe its zoomed in?
its based on rem though
so I think your browser is wierd
anyway I'll add a bit more space
Yeah perhaps
hi helpful
I'm fred
but anyway I meant in general about the site, not specificly that lmao
Happens to me too on mobile
thats a seperate issue
I'm waiting to update
for the fix
but I don't have access to the server
you buffoon
No
you're gonna start using let in kotlin
use lombok
you can't reassign const
lombok > craplin
but in some situations you need to reasign?
I don't have them
wierd
Immutability ftw π
I prefer const, but let is required sometimes
final doesnt always make stuff immutable tho
but its different in kotlin
im guessing
for const
Const in kotlin gets inlined
matt tell me if any of these Aren't required
https://github.com/BentoBoxWorld/Downloads/search?q=let
and don't point to the config one lmao
Ah ic
there are certain exceptions to const like to final in java. you cant make loop variables final as an example
or variables that are gonna be actively incremented
Uh idk, that's too many things to look at
You can with foreach
for (final String text : texts)
well thats different
i meant more like for loops with incrementing variables like
for (int i = 0; i < 5; i++)
theres only 4 lol
but fair
@obtuse gale
IntStream.iterate(0, i -> i < 5, i -> i + 1)
.forEach(i -> {
});
π
wait but how is that any different from the normal loop xD
immutable i
mhm
oh true
mutability bad
also the pre-increment lol
π
pre > post
looks kinda funky
and is the source of all those confusing questions where they do like 4 of those in a row and you have to figure out what the number is at each spot
hm wait would that even work? I believe lambda parameters are by default final
so in summary, delete prefix/postfix incrementors
definitely works now
hell yeah
there was some kid arguing in spigot discord saying to never use immutability cause its slow
and they like literally dont use it for that reason
it is true, its slow cause compiler doesnt optimize it (and you recreate objects)
but doesnt mean you should ignore it
lmfao
how tf is it slow???
well, its slower compared to some other langs cause it isnt optimized
but i dont consider that to be a con of immutability
cause that isnt the point
that's an issue with Java's design really
Yeah
or rather, with the library that handles whatever you're doing
Well for example for builders, ig those are pretty slow if you do a lot but tbh builders are usually one time use, not multiple times per second or smthing
so immutable good
I'd say it's safe to assume a library specifically designed for an FP degree of immutability system makes things work properly (e.g. vavr (I'd need to run performance checks), clojure (in the end it runs on the jvm, with the clojure stdlib backing it))
vavr is actually somewhat slow, but not a big deal
yeah
but you shouldnt pay close attention to the speed tbh unless you are calling the library like 25 times per second or something crazy
in that case just make your own algorithm or smthing lol
someone used jmh on it
Also this is quite interesting: https://github.com/jnr/jnr-ffi
some developers of bindings were starting to recommend it over JNA because it does pretty much the same thing but its faster
This is so annoying to work with
Finally starting to get it to work though
(the table of content in the right side changing color based on what you're looking at)
Looks good
I actually like it rather than a single title being highlighted
Header 2 lol
good cuz i gave up
xD
Not necessarily true, the compiler can avoid allocating objects on the heap. Though the escape analysis in hotspot isnβt as powerful as it could be in theory
Wait why did discord remove the message I was answering to
.
\β¨mobile experience\β¨
how did you know that
I'm built different
lol
Could not determine the dependencies of task ':actions-core:javadocJar'.
> Cannot convert class org.gradle.api.tasks.javadoc.Javadoc to a task.
The following types/formats are supported:
- A String or CharSequence task name or path
- A Task instance
- A TaskReference instance
- A Buildable instance
- A TaskDependency instance
- A Provider that represents a task output
- A Provider instance that returns any of these types
- A Closure instance that returns any of these types
- A Callable instance that returns any of these types
- An Iterable, Collection, Map or array instance that contains any of these types
Thank you gradle, everything worked just fine until now π
task javadocJar(type: Jar, dependsOn: Javadoc) {
archiveClassifier.set('javadoc')
}```
did you update gradle or java?
gradle to 7.0 because shadowjar 7.0.0 require that version
moved back to shadowjar 6.1.0 and it works, idk, with gradle 7.1.1 works fine
actually no, javadocs aren't generated π
and what java version do you use (and how is it defined)?
I think it is ok now
well that's not necessarily what gradle uses
but generally it's better to use a java version that reflects the java version you want to target
I want a higher version than 8 to have that search function for docs
I dislike java 8 docs π€£
then don't use Java 8 :p
I also need backwards compatibility .. π
laughs in docdex
laughs in docs
laughs in socks
?
lol
o
thanks. will try it now.
lol
nice
I mean I think everyone here already has it
If anyone wants the 1 month pack just dm me
π₯²
Oh you dont?
nah. but don't want it either.
ah alrighty
1 month π₯²
it will just make me want more
I dont really know if its one month to be honest
then get me to pay for it
Yea I did
because vim supremacy
Oh yeah. it is just 1 month Yugi. Thanks. By the time it ends maybe Uni finally starts so I can get it that way.
oh great lol
I'm rich now.
wowow
Emacs*
so you have chosen death

@steel heart Are you not gonna unprivate the repo? xD
skip me, i we havent worked much on it so not much to look at
been busy, sry
Show anyways
Sadge so many empty projects π’
π
π
better theme next time!
yeah the theme sucked, or well just was really abstract imo
whats the fastest way to convert gradle groovy to kts
File -> New Project
I don't think the theme sucked, I had a few pretty good ideas, but it was too open for interpretation
The theme was not concise enough imo
More of better time, didn't expect beginning of classes to be so busy for people
I remember my first weeks being petty chill
I mean I was on vacation first week so no clue how busy it was :kek:
is there a MOD that can help fix my other email unable to verify email issue ? urgent
i cant even unbind my numbre and no emails being received at all, regardless if i choose verity or forget password
please need urgent help
kotlin bad
!!
shouldn't be necessary
shouldn't be, but it also won't hurt here
kotlin
I don't need the damn nullcheck then
you do if you're using !!
^
if not just use ?. as usual
Elvis operator π
...
?:
I need a contract actually
@OptIn(ExperimentalContracts::class)
inline fun <R> R.applyIf(condition: Boolean, block: R.() -> Unit): R {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
if(condition) block()
return this
}
This is my applyIf function
I need to tell the compiler that if condition contains nullchecks, then they guarantee to hold in the block
if condition contains nullchecks
what?
how can a Boolean in and of itself "contain nullchecks"?
it's not a predicate
That makes sense, yeah, I was asking myself the same thing
How would this work with a predicate?
predicate: () -> Boolean
er that's not a predicate
Ah you mean a Predicate
yes, a predicate
probably something like R.() -> Boolean or (R) -> Boolean depending on how you want to do it exactly
well assuming the "applyIf" is based on a condition on R itself
Isnt that the same thing as mine? (R) -> Boolean
no it has nothing to do with R
predicate: () -> Boolean should work as well
but how do I formulate a non-null contract with that?
that is not what you sent lmao
and that's not a predicate, it doesn't take any objects to evaluate
but sure
smh
Does kotlin even take that condition into account so it knows that the object is not null?
so what if it's not a predicate?
for that matter just pass a Boolean only
it works with the if and when statement
instead of a boolean supplier
that's what I did and you said I needed a predicate
I never said you needed a predicate
[15:02] emilyy: >if condition contains nullchecks
what?
[15:02] emilyy: how can a Boolean in and of itself "contain nullchecks"?
[15:02] emilyy: it's not a predicate
right
whatever, my question isn't regarding the predcate
but regarding hte contract
Blocky wants his function to have the same effect as if (thing != null) thing.do()
since it doesn't take any object to evaluate it doesn't make any sense to delay the boolean evaluation, you can just pass it right through as a regular parameter
Thank you!
lmao
Which idk if it is possible, might ask on kotlin forum thingy
slack π€‘
Do they not use a jetbrains product?
inline fun <T> T.applyIf(predicate: T.() -> Boolean, block: T.() -> Unit): T { if (predicate(this)) block(this) }
Try this
Sorry if it is one line, phone clipboard acts weird
If it doesn't work they it probably means that what you want to do can't be done
"probably something like R.() -> Boolean or (R) -> Boolean depending on how you want to do it exactly"
"no it has nothing to do with R"
so no
Smh emily
smh you
See
I mean that's the same as thing?.let { it.do() }
lol
That would mean the predicate always has to tested with the applied object
You should probably explain what you're trying to accomplish, not the result your trying to get.
something something
https://xyproblem.info/
I don't want applyIf() to only be a fancy null-checker. It's supposed to apply if any condition I can come up with is true
I just want what they want to do, smh matt
I mean (predicate: T.() -> Boolean, block: T.() -> Unit) Does exactly that
applyIf({it.something == something}) { do something }
I thought I did?
I want to accomplish a contract with the compiler where it understands that the variables do not change between the condition and the block, thus any null-checks should still be upheld up until the start of the block execution and beyond until the variable doesn't change
really ugly syntax but that's how it works
({...}) is ugly tho
and not what I want
I'd rather keep the ?. operator instead of this
That's the only way to do it, you're trying to apply two functions in the same function
x != false it is just a boolean, it makes sense why it still wants you to do a null check inside the lambda
I know that
I know what I have isn't working and why it's not working
I am asking how to make it work without changing the syntax
Because if the compiler was smart, it would see that the code does not change at all and my applyIf(..) {} is equivalent to if(...) apply {}
if the compiler was smart
jvm language
Someone just told me that my code quality is A.
if he was to rate it from A to Z π₯²
I'm not sure I see the issue
Grades (at least in the US) are ranked A -> F with A being good and F being bad.
I'd say so.
Given that the A-F standard gives a decent large area where you could get an A
Typically 90-100%, but with 26 entire letters that skew is a lot finer.
So you're around the 98%+ area. Which is pretty stellar
actually with an A out of [A-Z] you're in the top 3.8%, or better than 96.2% other grades
Why is bungeecord logging shit like this?
Info, warn, error and fatal are all logged as "SEVERE"
bungeecord, lel
π
private fun NBTCompound.getArgs(): Map<String, String> {
return keys.associateBy { this.getString(it) }
}```
This would create a map with each `key` and its string from the compound, right?
keys is from the nbt compound, right?
wouldn't that return null for keys that don't map to strings?
well I don't know the full context of this so Β―_(γ)_/Β―
Basically a compound that store some arguments as key:value
Yeah what would be a better name than InventoryInterfaceFactoryFactory? I dislike the double Factory suffix
InventoryInterfaceFactoryFactoryFactory
π₯΄
AbstractInventoryInterfaceFactoryFactory.BuilderImpl
π
Anyone super against MRJars for any reason? Gradle seems to hate it but they didnt pose any points that seemed super important to me
I really dont wanna have multiple releases for different versions(which is what they suggest instead)...
Guys pls help me
Some folks took my ip and then get got my location , place, zip code and even the coordinates
So is it my exact location those idiots got ?
And can they hack my phone or devices which I am concerned abt
@everyone
The 'everyone' mention is disabled so you can't annoy people.
E isn't a grade in traditional American grades
wrong reply π₯²
Does anyone know how I can create my own help command?
i have a chestcommands menu and i would like it to open with /help
this isn't a support channel; please use #general-plugins
Hi
Hello
Hey
π :(
yeeaahhh, they will even hack your power and be able to turn it off at any time
decided to actually try a bit of web dev myself for the new Krypton site I'm working on, and I've heard a lot about frameworks and stuff, I've been looking at Vue and Nuxt.JS a lot, and they seem pretty good, but I've also heard about other frameworks like React, what would you guys recommend?
or does it not really matter?
I was thinking of going for Nuxt (Vue) with Bootstrap Vue on the frontend and probably Spring or Ktor on the backend
ELM
what's elm?
https://elm-lang.org/ this?
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
YEAH
HEAVEN
pff
Don't even try to claim that JS evil is "better" than this
Also React is functional and stateless too π
yeah
If it's bedwars, that's sad
i know D:
If no one responded yet, I got a plugin in my server which makes it possible to make custom commands. Also for overwriting /help command π
is that an ij thing? Where do you get that?
its a plugin u have t oadd
note that it only starts tracking once you install it
and set your API key
ah i see
kinda wish i had installed this 6 months ago, i probably have a couple hundred hours on this one project
π
Ive completely refactored it 3 times... so
oh
i'm probably not going to ever do that with bedwars π₯²
ive ran into so many issues and so i don't want to go through it a second time
oh whats the api key again?
uhh it should show once you install the plugin
its on wakatime website
forgot exactly where
k im good
annoying
why does it need me to confirm my email if i signed up with github???
Β―_(γ)_/Β―
Its saturday and i woke up at 6:40, i feel really dumb

that is hideous
you can't add something to the empty list
yes i see that now
How do i get a 1.17 version of deluxe chat is it available or did someone update it that i can fork.
You need to link your spigot account to the server
to gain access to the deluxechat channel to get the 1.17 version
What is the plugin?
If I have a int[] function, how do I create the int[] in the return statement? Like return [x,y,z];. I don't know how to explain better sorry :I
how can I overwrite the /help command?
I will send you one of my files!
new int[] {x, y, z}
spent probably the past few days trying to decide on what to even use to make the Krypton site, but I decided to just go with plain old HTML 5 with Bootstrap for now, got a prototype here: https://kryptonmc.github.io/site/
lemme know what you guys think
it's still a W.I.P, but that's the sort of design I'm thinking
it also seems like pages sucks a bit at rendering things
yeah it's not mobile optimised yet lol
Lmao ye but nice color
why
Why doesn't it mention that it is in kotlin? π¦
good point
But the front page looks pretty good. I love it.
And lightweight
I chose not to because I just feel it's not that important
Matt shouldn't you be reviewing code rn? I believe you have over 100k lines to go thru? xD
lol
Not right now π©
Similar to Sponge
yeah. only problem is that I'm pretty sure the wiki is very behind. xD
oh actually. looks updated. did u update bbg?
Looks like it, I'm interested to see how this project rolls out
yeah. bbg was very inspired by Sponge.
We all know sponge was designed by inspiration from krypton in reality 
true
Is krypton targeting vanilla only?
I really appreciate the irony in this
why does chrome suggest to translate from Portuguese when looking at guava javadoc? xD
Sorry, not Spanish*
Oui
I'm sure @ocean quartz has something to do with this...
Uh, probably some witchery
:ugh:
hmm... how do hypixel (bedwars) bridge eggs work?
I tried just setting the block at every tick at the egg's location but that didn't work :/
and in hypixel the blocks don't change exactly where the eggs where
its a bit less curved and lower than the actual egg
execute at @e[type=minecraft:snowball] unless entity @a[distance=..3] run fill ~ ~-2 ~ ~1 ~-2 ~1 minecraft:white_wool keep
I found this as the command, you can try just translating it to code, maybe it will work?
hmmm
umm im trying to test in single player world but when i press "Done" in command block it changes the type of the command block ._.
and "Cancel" toggles Conditional/Unconditional
what
What?
nvm if i press "Enter" it works
BUT IT WORKS
sorta
hm
i think i can modify it to work tho
Nice, totally worth forking
lol
10/10 bridge egg
Nice
not 10/10, didnt even make it half way to the next island smh...
π
main/resources π§
tbh i dont know why that happeend
ugh
why has no one made a gradle plugin for this
they are all out of date or not actually published
that is called "knowing how to use your build tools"
anyone know how to get a List<String> of every entry from a specific column in MySQL
eg I have a column in my sql db clans
how could I get a List<String> of these
What does sql return when you request a column of data?
ResultSet?
hm
reasonably sure thats not a thing
public List<String> getAllClans(Connection connection) throws SQLException {
List<String> clans = new ArrayList<>();
PreparedStatement statement = connection.prepareStatement("SELECT uuid FROM `table_name`");
ResultSet resultSet = statement.executeQuery();
return clans;
}
I don't really know where to go from here
Tryna get a list of all the uuids
lmao
waittt
while (resultSet.next()) {
final String uuidString = resultSet.getString(columnLabel);
final UUID uuid = UUID.fromString(uuidString);
}
Kts source sets work differently
is there a equivalent then?
public List<UUID> getAllClans(Connection connection) throws SQLException {
List<UUID> clans = new ArrayList<>();
PreparedStatement statement = connection.prepareStatement("SELECT * FROM `table_name`");
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
clans.add(UUID.fromString(resultSet.getString("uuid")));
}
return clans;
}
for kts?
that should do it
is there a work around?
reasonably sure its not in the groovy gradle either, its throwing errors when i try to use in there
I'm not sure sorry, never done that
Ah alright figure it out, took a while to clone it but well lmao
@obtuse gale That multirelease seems to be from Indra
tbh i wouldn't say that looks particularly ugly
and reading upon this https://blog.gradle.org/mrjars https://openjdk.java.net/jeps/238 (referencing this message <#developer-chat message>) it does seem like the "versioned" sources go under meta-inf/versions/{version} Β―_(γ)_/Β―
And reading that gradle blog it doesn't seem particularly hard to do either lol
Hey @ocean quartz, what project did you open source in order to get the open source license?
All my libs
So like mf-config?
Yeah
Cool stuff
Lol, ya idk y im struggling here
Alr well my main issue now isnt building the jar, its seperating the java9+ sources from everything else, if i create a whole new source set for it then it cant see packages that it needs to export or dependencies. Im pretty sure it makes sense for other java sources to be seperate source sets, but i dont know how to make them reference each other or something along those lines...
what?
ah I think I understand
I never played with any of this stuff, let me see if I can get something done, idk
Im pretty sure i can get it eventually, so dont worry about it, but thanks for the help so far
alternatively you can use indra π
i couldnt get it to work in the first 5 min, so no
Can I use a Multimap with Map<Key, Map<Key, Value>>?
and you've been with this all day already lol
err would Value be a Collection<Value> or just Value?
Just Value
because a multimap is really just a Map<K, Collection<V>>
Okay
Multimap<K, Map.Entry<K, V>> 
Would there even be a point of it?
I forget who told me, but someone said it was just used for garbage collection and things like that I think
Because it clears the collection and other things
wat
waaaat
never comes back
#development message
This conversation
operator fun Boolean.inc() = !this
class C {
var enabled: Boolean = false
}
fun main(args:Array<String>) {
var b = true
b++
println(b) // false
val c = C()
c.enabled++
println(c.enabled) // true
}```
π§
err.. from what I know none of that is true?
I assume you were talking about Multimap#removeAll(Object key)?
so you want to remove all entries for a key right?
No
??
I was just asking in general about advantages of multimap
It's just a Map<K, Collection<V>> with a lot of really handy methods and well implemented
It creates the collections for you etc
It's a whole framework on its own lol
So basically convenience?
why would you not use it?
guava is already part of MC anyway
I mean you could argue gson is a "convenience library to read/write from/to json files"
I thought the gc thing would happen with the Map with a Map, but you said that wasn't a thing
Yeah
Yeah that's what I was confused about
Conclure man I like you but many times you speak out of your ass for no good reason
lol
Also, the reason I am using a Map inside of a Map is for storing locations,
I am using Map<Long (Chunk key), Map<Location, Block)>> to store locations of things
I'm assuming it would be faster than Map<Location, Block>?
I would strongly advise against using bukkit Locations as keys
Okay
Should I create my own Location?
Is it because it stores a reference to World?
because it's mutable and the hashCode depends on the internal state
Oh
so something like this will fail
I forgot about that lol
what?
Triple<Integer, Integer, Integer>
I don't understand the question
Location location = new Location(null, 0, 0, 0);
map.put(location, whatever);
location.add(1, 1, 1);
map.containsKey(location); // false
assuming a HashMap
I should just create my own immutable Location then?
if you only care about the x, y and z, then this will be fine (assuming it's immutable)
I was joking about that lol
I would probably make a location with the coords, and the world as a string maybe
public record IntTriple(int first, int second, int third) { } π
I actually have never used records, would this be a good time to use it?
Because its just to store data?
Okay cool
val location : Location<World<W,L>,Location<W,L>>
Also I don't know if you saw this
#development message
π΅βπ«
I don't know what I can do to make it better
Are the indexes of each "linked" to one another?
like
The first in speedUpgrades is "linked"/related to the first in resourceLimitUpgrades, and in maxUpgradesUpgrade, etc
No they aren't
The ones with ints and floats have to be sorted, because they either
add / subtract / divide / multiply the number given to them, and I need
them to be in a certain order
**```java
final var map = new HashMap<Location, String>();
final var location = new Location(null, 0, 0, 0);
map.put(location, "Hello");
location.add(1, 1, 1);
getLog4JLogger().info(() -> "map.containsKey(location) = " + map.containsKey(location));
getLog4JLogger().info(() -> "map.get(location) = " + map.get(location));
**```
[00:37:39 INFO]: [TestPlugin] map.containsKey(location) = false
[00:37:39 INFO]: [TestPlugin] map.get(location) = null
```**

lol
How come?
hm?
How come you wanted to know if the indexes were linked?
Location being mutable is so stupid
I remember a while back trying to make some armor stand animation, not cloning the location, the add and teleport would make it move exponentially
because if they were you could use a record and just have a single List<Upgrades> (Upgrades being the record keeping track of them)
ah yes
clone!!
also you can finally use a single event for "armor equipped" on spigot 
but of course there is no one specific for it lol
fun Location.add(x, y, z) = clone().add(x, y, z) :kek:
Oh okay.
I tried figuring out how to make it so I could have one collection for all the upgrades, but they all do
different things, so I just couldn't think of a way to do it.
If you wanted I could add you to the repo and you could see what I mean
not really lmao
That's what I thought lol
what the fuck intellij
spigot bad lol
Jesus that's some sheer fucking stupidity
That's an option you can change
error: failed to push some refs to 'https://github.com/dkim19375/Bedwars.git'
To https://github.com/dkim19375/Bedwars.git
! refs/heads/master:refs/heads/master [remote rejected] (refusing to allow an OAuth App to create or update workflow `.github/workflows/gradle_11.yml` without `workflow` scope)
```how do I fix this?
everything i google is changing the token perms.. but I'm not using a token, I just log in through intellij
Github was about to remove auth with email/password for commits
Might be that
Try switching to a token
ye i have a token that said it was used in the past 2 weeks but it has all perms
edit: it still works even if i regenerate the token, so it's not using that one
ill just log out and use a token
Β―_(γ)_/Β―
idk
(in the one at Settings -> Developer settings -> Personal access tokens)
wait a minute
im confused ;-;
It does?
It kept warning me about email/password auth for a bit now
Intellij I mean
pretty sure ij does just generate a token and uses that
i might be wrong
hmm
Welp no idea, I didnt for me
but pretty sure that's how it works
Maybe thats only from a newer version
I have a habit of not updating for a few months
ah
e.g. gitkraken, or maybe it only does it if u have 2fa
oh probably
wait a sec
when I do Git -> Push
in intellij
does it use the account in settings?
since it appears to just run the git command
if so, how do i change the token with the git command π
idk im very very confused
nvm fixed
had to go in windows credential manager
ew windows
What is up with all the windows hate?
I wonder if you could use method interception to actually make that work
Maybe that only works with interfaces
I think it would work
Let me test
Hmm it doesn't let it, damn
immutableAdd :kek:
Mostly im just kidding, but I used to use it and it constantly annoyed me, just little inconsistenties that alot of unix based operating system dont have
Like i havent restarted my mac in probably atleast 3 months, where as in windows the computer would probably be smoking by that point
lol
I've gone months without restarting my computer and still works perfectly fine
has nothing to do with your jdk
but with the version of ASM shadowjar uses
if I remove minimize
it seems to work
I guess it's the same issue here
What shadow version are you using?
suprising, i used to have to restart mine every night or literally the windows home button the would just not work. Im not kidding
though to be fair that was a pretty bad computer
that makes sense, for minimize it definitely reads the bytecode using ASM
That wont work right?
Extensions cant override actual methods or something
Yeah it doesn't work
π
just make it operator fun Location.plus instead
π΅βπ«
@half harness u sleeping?
anyone here?
K well i got that working, except that it cant find the dependencies, which i kinda need.... Is there a special way to declare dependencies for Indra or something?
This could be kinda off topic but I have a question regarding discord nitro purchase 
wrong server
Helllloooo
Blitz
Yes?
Ban or give me it
I'll give you it
Is it just me or github has been a bit slow? Like browsing through classes in a repo
not alone
Wtf

@obtuse gale I got it, not using Kyori becuase i couldnt get dependency stuff working in it...
sourceSets {
create("java9") {
java.srcDir("src/main/java9")
}
}
tasks.named<JavaCompile>("compileJava9Java") {
options.compilerArgs.addAll(
listOf(
"--patch-module",
"yakclient.mixins.base=${sourceSets.main.get().java.destinationDirectory.get().asFile.absolutePath}"
)
)
}
fun DependencyHandlerScope.modularDependency(dependency: Any, configuration: String = "implementation") {
add(configuration, dependency)
add("java9${configuration.capitalize()}" /* Sucks but i cant be bothered to do something better */, dependency)
}
dependencies {
modularDependency("net.bytebuddy:byte-buddy-agent:1.11.15")
modularDependency("org.jetbrains.kotlin:kotlin-reflect:1.5.30")
modularDependency(project(":api"), "api")
modularDependency("org.ow2.asm:asm:9.2", "api")
modularDependency("org.ow2.asm:asm-util:9.2", "api")
}
tasks.jar {
into("META-INF/versions/9") {
from(sourceSets["java9"].output)
}
}
Only 7 hours spent on it!
(im dying inside)
well i would hope not
lol
sigh
deep sigh
100% tests dont work
yup...
sigh
Nice
I need someone to help me complete the offers to take Google Play cards
What 


