#dev-general
1 messages · Page 592 of 1
Ookay
with a plugin as large as LP, I wonder how long it usually takes to compile
running gradlew build will not add it to my maven repository right? Just compile a jar?
Similar to how maven package creates a jar only, whereas mvn install adds it to my repo
Correct
Well unless the build tasks group also has it so it installs to local lol but it doesn't by default, no
ahh aha, so ran luckperms fresh took 1m 47s, i assume running again will take much less time?
Running it again without cleaning will likely be sub 5s (given LPs size...)
Gradle does an amazing job at incremental builds
I got to admit
this is crazy that incremental shit is small
because maven would do entire cycle again, right?
so in this case, another ~2 mins
im mind blown that gradle does luckperms in 2mins, considering it supports a fuck ton of stuff
Maven has 0 support for incremental builds so yeah lol
lol really? Can't lie, I am genuinely impressed, I have only dived into gradle a tiny bit, so not that knowledable
but thats crazy
Gradle is a whole universe to learn
It's huge
I think there is a maven plugin for IB but it never left out of alpha stages
I have a good few projects I wanna migrate, majority will prob be easy, as they dont need shading
shading ain't that hard to do with shadowjar
There is this small set of "rules" for when gradle fully recompiles a class file https://docs.gradle.org/current/userguide/java_plugin.html#sec:incremental_compile
IMO very interesting stuff to read
oh really? I have a huge pom from my old spoof plugin, i wanted to gradle convert it, but its huge
thats my only frightening one
and will read that now
Is multi-module stuff easy to do with gradle? One old project is module based, just realised 😂
Yeah it's not hard I reckon
Now looking back, I don't know why I made it multi-module
always baffling looking at old code
https://github.com/heychazza/player-vouchers/blob/master/pom.xml
https://github.com/heychazza/player-vouchers/blob/master/Plugin/pom.xml
I find it much simpler in gradle than maven
Create a folder add build.gradle.kts, go to settings.gradle.kts, include("folder") refresh and boom you have module
Yeah
The thing is that, while maven has a concept of "parent module", gradle does not
A module doesn't need to know about a "parent module"
matt flexing his kts shit
Cuz kts gradle is better 
Gonna give this a go with the voucher one then, I wonder if the maven converter will auto do it
Probably not
Iirc @forest pecan converted a multi module project from maven and it didn't convert the modules
oh
Unsupported Java.
Your build is currently configured to use Java 17.0.1 and Gradle 7.1.
Possible solution:
- Use Java 16 as Gradle JVM: Open Gradle settings
- Upgrade Gradle wrapper to 6.7 version and re-import the project
o, LOL
ye im confused then why it tells me that lmao
if im using the built in gradle with intellij, any way to change the ver?
Mm no idea
ahh .gradle/gradle-wrapper
Oh i thought you meant how to change the version IJ uses by default lmao
oh sorry my bad 😂
lol wtf, it imported my multi module for me @ocean quartz
via gradlew init
Ah so it does do that, nice
Hi
The
DeluxeMenus-1.13.4-DEV-117.jar
doesn't load in 1.16.5
This server is running CraftBukkit version 2991-Spigot-018b9a0-f3f3094 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)
but now got this weird thing lol
change to https
it doesnt like http anymore
which is pretty reasonable imo
apart from when u need to use one of the ancient repos without TLS
It turned out the conversion moved my repo to some folder
I didn’t find until i did a global find
That made no sense, rip
I couldn’t see the issue until I did a global search and found it 😅
What is truly a nightmare
Is rewriting half my plugin from using string literals for messages display names scoreboards etc to TextComponents
i guess most people have gone through that right
No it absolutely is
At first I was a bit confused to why
But text components are just soo much better and cleaner
Yeah they might be lengthier
But they are so much clearer
Rewriting lore is an actual nightmare though
oml I hate everything about NBT, should've never tried to make it even simpler using generics and wildcards
Type erasure 🌞
2 point 1 has released sources for lba 1 & 2 https://github.com/2point21/lba1-classic
So much good memories on those games :')
So I have a question, I'm working with multiple projects so I'm trying to use modules, the thing is that I can't get the hierarchy as I want:
I want:
Project:
Module 1
Module 2
Module 3
I get:
Project
Module 1:
Module 2 and so
how can I?
using intelllij ofc
What are you doing that gets you that?
I mean it's just a matter of right clicking the project and "Add module" or whatever
just following the wizard
Can you show screenshots or something?
It's kinda hard to follow when:
You say "I did the thing and it didn't work"
And I say "I did the thing and it works" lmao
when following the normal wizard
Yeah? That's how it is
Chaos Universe is the root project, which has subprojects (a.k.a. modules)
@ocean quartz could you provide an example of interaction that doesn't work with Hopper GUIs (like, what kind of interactions doesn't trigger InventoryClickEvents)? I just tested the interaction prevention, and it seems to work just fine
This specifically https://github.com/TriumphTeam/triumph-gui/issues/11
https://i.imgur.com/u4Y92ja.png pro within 7 minutes 🥴
lol
Wait why is it because inventory holder is null? It works when using Bukkit.createInventory.
😮
Don't you love how they autoenabled it
I do
I was so confused at first. Then I realised. I think it's briliant as well.
im here
@leaden wraith
we want both durations to be in ticks, so that we can compare them properly (we could also use ms, it doesn't really matter)
you have the reward timer in ticks already, so that's good
now we just want the Duration result in ticks, so do getSeconds() * 20 - you've got this, resultInMilli (even though this is in ticks, not milliseconds)
then we can just compare resultInMilli and REWARD_TIMER_TO_TICKS
you still havent told me what MINEARCH_HOURLY_REWARD_TIMER is, but if it's in ticks, then the whole Duration bit is redundant
ffs I always use / and not *
your current code (although it's wrong) is trying to convert MINEARCH_HOURLY_REWARD_TIMER to seconds -> millis -> ticks, when it'd be easier to just store it in ticks in the first place
then you don't need those extra conversions
its the same as before. 20L605
so it's in ticks
right
so then you dont need the duration bit
you want both durations in ticks, you've already got 1 of them
final Duration result = Duration.between(Instant.ofEpochMilli(now), Instant.ofEpochMilli(last));
long resultInTicks = result.getSeconds() * 20;
if (resultInTicks > MINEARCH_HOURLY_REWARD_TIMER) // etc
this should be all you need
incidentally i think you should swap now and last, otherwise you're gonna get a negative duration
or just abs it
Duration#abs
what on earth is abs?
absolute aka |-1| => 1
Do you not have abs?
right
https://codeshare.io/Lw3zel Should be all good now. I'll try it
I've spent way too much time on this fkn thing
rewritten it three times now.
I love coding, and seeing things I make
but goddamn its stressful ahha
ok, looks fine apart from the weird if else thing i mentioned earlier
im giving it a try now
Just as I was about to say it didn't work.. it did
ok
guess ill go fuck myself then
lol
setting it to run in 10m
just so I can make sure its working correctly
it seems to be working correctly.
but my concern is for 10minutes, its saying its 12000 ticks.
it should be 10000, right?
@prisma wave
I was wrong
lol
10*60*20 = 12000
i did the math, yeah xP
Math at its finest
lmao
I test out if it big differences use nanoTime insted of currentTimeMillis (the later Is less accurate say others when google on it).
My testing is the differences pretty small.
For nanoTime 6.373 ms. and currentTimeMillis 7 ms.
I will say in most cases i think it will not mater to much and nanoTime are not threadsafe . The biggest difference are some most around 0.7 ms wrong (not a huge differences if you want to get some type of timing).
I meant afterward. but okay
Thought nanoTime was supposed to be consistent across threads
Lmao
Haha, to be fair the notch isnt that bad, in full screen mode it blends in
wtf is that
Just a sec
Because it's a stupid design lol
Apple fans literally eat anything they are given lol
The notch is very very hard to see, if you go full screen for dev it just looks like a normal laptop
But I think it’s a good way to maximise space
Shoving the menu bar above, and having full space for content, if you have a larger menu bar then go into settings
You can enable it per app to move the menu bar down
Ah i see, so you lose more of your screen then, meaning it could have literally not have a notch and it be perfect? You still believe that's not a stupid design?
Well, in full screen you don’t see menu items anyway
But I think it’s good; because so far I’ve never had a menu bar that long
And I’ve tried PHPStorm and IntelliJ
I admit, under screen would be nicer naturally
But same as the phone notch, I don’t pay attention to it
Same for phone notches, both are stupid
I just like that menu items are tucked out the way, I admit its a small saving, like x many pixels
I swear to god, apple could add a giant black circle to the middle of the screen and people would find a justification for it
but in this case, for how powerful apples new chips are, i'd take a notch as a sacrifice
lol
the new m1 max are more powerful than majority of cpus out rn
Ok
and thats been benchmarked, so "apple sheep" will take a notch for power
Ah yes, good old apple "the chip is faster than the competition" where the competition is very hidden
apple is basically doing a power move over you
apple showed the competition this time
in their keynote
they used a rtx 3080 iirc and some i9 cpu
ill try find it
"hey look at this notch that doesn't really need to be here, but we're leaving it here, because we can, and there's nothing you can do about it, but you'll still buy our product, kid"
sounds a lot like aperture science, at least they had portals though
this was the first year apple showed the pc they was comparing against
previous years they never did that
Can be hidden with a black bar that takes a part of your screen 🤷♂️ at least you dont see it anymore
this is something that doesn't affect your average iphone user in any way shape or form
a notch on the other hand
You should see my 150 performance
that definitely gets in the way
but you're paying every cent for that boost, plus whatever the apple premium is
id take a notch ill get used to, for some power
yes with apples premium, i do agree
but they're now powerful, prior I admit they were "eh" for the price
Ooor you could be smart not buy their shitty products so they learn to make better design while also having some power
but i want power
power will help my workflow, if i dont buy, I lose out
plus if it matters, just dock your mac up to a bigger screen, you never see the notch
win win
you get top notch power, and not worry about a notch
just realised, the pun
Yeah lmao
yes...?
Lmao pig
@quiet depot
just so I make my side clear chaz btwI am an iphone user and I don't regret it
If you close your eyes it's very hard to notice i promise
but I think apple is incredibly stupid and I'm an idiot for buying apple products
SheepSheeplet
bit of a love hate, mainly hate
If it makes me money, I can justify it
League of legends syndrome
I'm a fan of making lots of money
do they spin?
spin what?
fan...
more of an air conditioner guy
Below Deck is a good show xD
really haha
thing with phones is they're all owned by big evil corporations
so like
I may aswell go with apple
Missed the season finale of Below Deck: Med and you have to pay for it on peacock 😭
what's that
basically apple gonna start scanning your devices for child ---
oh
Everyone kicked up a stink, not because of the reason
but rather it breaches privacy
yeah not that bad compared to the australian government
Hoping that the Fairphone becomes good as people start buying it more
we don't have privacy anymore lol
if we allow them to scan our phones, they will allow governments to scan other stuff
it doesn't exist in australia
like terrorist stuff
not like you brits have it anyway either
thats the big fear
aus gov passed a bill that allows the federal police to hack into anyones devices, without warrant, to "view, create, modify, delete" evidence
wait really LOL
meant to be used for big drug dealers and child porn
but
in reality
there's literally no checks and balances to stop them from planting that shit on a guy they don't like
we're fucked
thats the fear everyone raised with apple doing this
they could give in to government requests
and start checking for terrorism
or anything like that
ok technically there is a warrant but the warrant is given out by the federal police or something
so like
ya know
I do think its good apple checks your message picture to stop kids receiving fucked up content from weirdos
fisa court basically
but i think the icloud scanning is just gonna end up with giving into requests
by china etc
don't you brits have more cameras looking at you than like anyone else in the world anyway
yes sadly
they say that no matter where you go outside
you always have a camera watching
yeah well that's not true
many houses here have cameras as well
ye lol
my mum got her ducky btw yesterday, she doesnt like it
shes getting rid of it
i wanna say why, lack of keys, she got the mini
typing is hot i cant lie
one of the best ive typed on
mini keyboards suck
but she bought the mini and has fuck all keys
not even up and down
this is it currently in our office space
I'd simply rather not work than work with my mum
Same lmao
why 😂 headphones in, bam
I wouldn't be able to work with my dad either
or my brother
or even my girlfriend (if I had one)
why?
I work best alone
The thing is, you're doing seperate things, like for me
my mums gonna wfh for a company soon, and im self employed
so we dont need to interact on same shit
it doesn't matter, another person in the room guarantees distraction at some point
oh
avoidable distraction
i see what you mean there
now even as I say this, I'd still rather work in a corporate office than at home, as setting is hugely important
Lol I just released a new ver of my site, realised it looks fucked on big screen, oops
at home, even if you're in your "home office", you're still at home
uh
see im opposite
when I was at the office, its constant distractions
phone calls, manager, people coming up to me etc
so basically here's the order of preference: working at corporate office alone > working at corporate office > working at home alone > working at shared home office
oh yes
id love an office space if i was there myself
i try have a routine at home now, I sleep by 11-11:30, wake up at 7:30, coffee, then at 8:00 to 8:45 i do my morning exercise
then shower, get ready and start work
Also, @quiet depot my aim by end of year is to migrate 44 damn mc plugins to gradle :( https://github.com/heychazza?tab=repositories&q=&type=&language=java&sort=
if you put your mind to it you could get it done in a week
You reckon?
quite probably less assuming the poms aren’t overly complex
if they were all simple you could do it in 3 days
2 days even
idk
1 project is nms based which will be a pain, as i wanna use a repo that has. nms stuff (if you still have yours), one is multi module
rest are simple i think
I never hosted nms
with gradle I recommend just using spigot jars in a folder and adding them as a dependency
codemc hosts nms if u want to use that instead
I recommend never using maven local for public projects
imo maven local is anti open source
yeah thats my pain
i dont wanna have to install every mc ver
it’s easier to get people to download a few spigot jars off a dodgy website that looks official than for them to run buildtools 69 times
ye thats the thing
even tho spoof is private on github, this is pom rn https://paste.helpch.at/guqunomuca.xml
its mainly the spigot jar stuff thats a pain for me
yea so just try codemc ig
codemc has the nms stuff?
believe so
@ocean quartz where did you take the idea behind your config library (triumph-cfg)? I'm super curious about the "beans" and "properties" ideas behind it
It's a fork of ConfigMe
piggy gonna try now then
do beans and properties stem from java ee?
I think so yeah
I second Matt's "I think so"
I know that the way to work with beans is using PropertyDescriptor so at least properties are coming from here, idk where beans come from
did you implement the "Path" annotation functionality, or was it already part of ConfigMe?
I did that one
adding codemc's repo, doesnt import weirdly
Oh I realised why, maven doesn't like multiple of the same package, even if its diff vers, does gradle do this?
How would I need to re-order it to do that? https://paste.helpch.at/ucayazasaf.makefile
is my current gradle file
1 module per nms version, it's a bit of a pain but it's the best way of making sure you dont get conflicts
Ah I see
Sx 😦
oh rip
im surprised u dont already have modules since im pretty sure maven is the exact same
Which event should I use to stop players from dragging and dropping items in their offhand slot
dropevent
Ok thanks I’ll give it a shot
been years since I dived in, I believe PlayerDropEvent or itemdropevent
something like that
oh
you can use the fileTree thing for directories
idk how to do that
someone else probably knows
yes. the gradle docs
ye worked, ty brist
np
One project down in my huge list 😂
i think most arent nms so thankfully should be an easy thing, and I use that shaded jar thing right for shaded libs?
shadowJar yeah
Yea not player dropevent
Anyone know which one for this
Which one?
Once I add shadowjar plugin, do I need to do anything else?
nope
well, configure relocations and minimizing
if necessary
apart from that, just make sure all the shaded dependencies are implementation rather than compileOnly and ur good
paste bins please 😦
o soz
thank you
oh wow
the docs say to add;
shadowJar {
relocate 'junit.framework', 'shadow.junit'
}
but shows up red
is this kts?
ye
then use
tasks.withType<ShadowJar> {
relocate("junit....", "shadow...")
}```
this is a way
you need to import shadowjar
weirdly doesnt see it as a dependency
plugins {
java
id("com.github.johnrengelman.shadow") version "7.1.0"
}
even tho i have this
ohh toolbar thing
@marble stream InventoryDragEvent
you might also want to use InventoryMoveItemEvent
just look thru the spigot api and you'll see all the events
play with them. see which does what
Ah wicked
tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
relocate("com.codeitforyou.lib", "{group}.spoof.lib")
}
is this how i use variables?
$
^^
before the {}
kotlin
ohh ty
same as js
everything does it different lmao
xD
and add an import for the shadowjar cuz that's gross
yeah ^^
creeper.getIgnited() should check if a creeper's about to blow up right
Cause it returns false no matter what state the creeper is in for some odd reason
no quotations
it's exactly the same syntax as java imports (almost)
ah wicked ty worked
and then $ for the interpolation
woohoo done
4:38:46 pm: Executing task 'build'...
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :jar UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE
BUILD SUCCESSFUL in 522ms
3 actionable tasks: 3 up-to-date
4:38:47 pm: Task execution finished 'build'.
does this look right?
oh so from now on id use shadowjar task
mhm
gradle shadowJar I assume?
yup
lit ty
weird thing
its showing a Shadow package
group = "gg.spoof"
version = "2.1.2"
description = "Spoof"
java.sourceCompatibility = JavaVersion.VERSION_1_8
tasks.withType<ShadowJar> {
relocate("com.codeitforyou.lib", "${group}.spoof.lib")
relocate("net.jafama", "${group}.spoof.math")
relocate("redis.clients", "${group}.spoof.redis")
}
it might need to be ${project.group}
wicked worked, ty, im really amazed how quick it did it
4:42:09 pm: Executing task 'shadowJar'...
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :shadowJar
BUILD SUCCESSFUL in 733ms
3 actionable tasks: 1 executed, 2 up-to-date
4:42:10 pm: Task execution finished 'shadowJar'.
not even 1s...
yea gradle is super fast
now having that gradle build file as a reference, should be much easier for me to do the others
With gradle, how can I replace variable stuff within resources? With maven I was able to do like ${version}
processResources task
I saw this online, from july but didnt work
processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}
that would work if u were using groovy
filesMatching("**/plugin.yml") {
expand("version" to version)
}
should work for kts
ah ty, do I have to manually add my replacements then?
I assume
name: ${plugin}
version: ${version}
for the variable then?
smth like that
might be {project.version}, cant remember
and ud need to expand again if u wanted anything else than just version ig, and change the path for different files etc etc
is this the right place to talk about compiling ?
sure
did you guys successfully bully another guy in to switching to the superior Gradle? gj
i downloaded an addon for skript, Disky, and I removed some lines of code that spams the console with errors. Now, i need to compile it
Skript doesn't need to be compiled
its an addon
ah
you can compile it with javac, though the most popular way to compile many source files in to a single JAR is with a build tool, such as the objectively superior Gradle, or the objectively inferior Maven
how to do that ?
is the project not already set up with something like this?
or did you download it and modify the extracted JAR source?
did they come with a pom.xml or build.gradle?
build.gradle
open that, scroll down and look for "shadowJar"
if it's in there, go out of it, open the terminal at the bottom, and run ./gradlew shadowJar
in intelij ?
what did it say?
BUILD FAILED in 11s
1 actionable task: 1 executed
idk
ScopeBotBuilder.lastBuilder.disableCache(CacheFlag.CLIENT_STATUS);
error: package info.itsthesky.disky.skript.scope.bot does not exist
a ton of these
and i have this error when i load the project
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
oml, I've been working for a few hours on setting NBT on entities in 1.12.2, which I now see isn't possible...
Does someone have a workaround?
manually track them
im pretty sure you can set nbt on entities
You can't, not in 1.12.2
I've found one solution though, storing the nbt on the entity helmet, and then just make the helmet a button or something to hide it
it might not work, idk tbh
The NBTInjector will not work with: 1.12.0, 1.12.1, 1.13.0 (Please just update to the final release of your chosen version)
rip
why 1.12 - 1.13, idk
Yeah I've tried looking into this also
1.12 is just bs
I'll just avoid NBT on entities in versions before 1.14
actually, 1.12.2 will work then
never had an issue with it, 100% setup error
Check in Settings -> Build, Execution, Deployment -> Build Tools -> Gradle
https://youtu.be/UVUjnzpQKUo interesting
A video taking a look at 16 programming language solutions (C++, Rust, D, Clojure, Ruby, Elixir, Raku [Perl 6], Haskell, Racket, Julia, Python, APL, J, BQN, Pharo Smalltalk & Fortran) to one problem.
ADSP Podcast: https://adspthepodcast.com/
Array Cast: https://www.arraycast.com/
Contest: 255
Problem Name: Find GCD of Array
Problem Link: https...
what the fuck is this
Raku [Perl 6]
Weird idk
Apl looks like all math symbols put together
BQN as well, how can people use that wtf
ok so I got fabric up and running, but how the heck I would setup my acc so I can play multiplayer?
what does that even mean?
just drop the mod into your mods folder and run mc as usual?
no, in intellij
those are arguments you pass to MC (which the launcher does automatically if you're logged in)
uh.. now which are they?
idk
Someone got a good static explanation? Trying to explain it to someone else, but I'm bad at explaining
The disadvantages etc.
seriously?
oh come on
Use implementation
"oh come on" it was removed for a good while now, and it was due to removal for MANY versions for a really long time too, yielding warnings
Static means the member belongs to the class not the instance
There's no advantages or disadvantages, it's the only use lol
Yeah, I meant the abuse disadvantages, it makes sense to me but I just don't know how to explain it, I'll try using what you wrote
can someone help with a hacked acccount?
contact discord support
¯_(ツ)_/¯
but there's no discord staff here or anything
they left
is there a way to mix mods and bukkit plugins?
I'm trying to get the repo for the jagrosh discordipc
Send your build script, that error tells me nothing
no i dont think so
actually yes
but is about to die
gosh, that much problem for just making a RPC in java?
fuck you discord and your Game SDK
Anybody know how to serialize a nullable Path field in Kotlin ?
Haha
LMAOOOOO
🤣 🤣 @quiet depot
yeah but theres a VERY GOOD chance you dont wanna do that
Explain, please
is there a way i can add a gif while editing a message?
add the link to it
K
you can't add attachments after you sent the message already
give me access to perms
cuz its not working
someone help
the link is just there
but the image is not showing
well that means embeds might be disabled in that server
what do you mean?
the msg is not an embed
neither the gid
gif
you're saying that you've put a link for a gif and it doesn't show the gif right? it just shows the link?
y
e
that means you don't have access to embed links
im the owner
of the server
😹
no idea them. maybe its one of those bad links? I know some links discord just doesn't let to be embeded bcz of their anti bad stuff scanner
no idea what its called
yes. they just block some links. it has false positives I guess
@obtuse gale please send me that emoji. thanks
there a way to fix this?
@static zealot
no idea
ohk
do you know anyone that could help?
no idea

oh god
Lmao
is there a method to get death cause? Like event.getCause()
I don't think so
at most there's getDeathMessage
in normal spigot
paper probably has a death cause
you can always get last damage cause
that too
@static zealot DMS!!!!
no
would anyone here have any idea why tests aren't re-compiling after a clean build? like Gradle is still executing the old broken tests that have been removed, and I've been getting results like this: BlockTests > initializationError FAILED java.lang.ExceptionInInitializerError at BlockTests.kt:-1 Caused by: org.kryptonmc.api.util.FactoryNotFoundException at BlockTests.kt:-1(notice the -1 for the line that causes the issue)
is there another Gradle cache somewhere that may be causing this BS?
actually, nvm
maybe just me being dumb
relocate 'net.kyori.adventure', 'me.fisher2911.enchantsexpansion.adventure'
Is this not the right way to shadowJar? I am using MiniMessage.
what's the issue?
are you shading the whole of adventure or just MM and using e.g. Paper's native adventure impl?
the issue is that I have an issue with my issue
Use https://paste.helpch.at/ for errors, logs and configs. So we don't spam the discord.
@sweet cipher here's a Barry Tip
Use https://paste.helpch.at/ for errors, logs and configs. So we don't spam the discord.
lol
use -api 4.9.2
not sure when compaction was introduced... likely in 4.9.0 cuz semver but still
Oh thanks
Yeah that's what it seems like
compileOnly 'net.kyori:adventure-api:4.9.0'?
?
relocate 'net.kyori.adventure', 'me.fisher2911.enchantsexpansion.adventure-text-minimessage'
relocate 'net.kyori.adventure', 'me.fisher2911.enchantsexpansion.adventure-platform-bukkit'
This doesn't relocate all of Adventure does it?
uh that's not
a proper
- is not a valid package identifier char
also lol @ relocating the same thing twice
answer my question
I'm not trying to relocate all of Adventure
relocation is not what i'm asking
i'm asking about what you want to shade, what you want to include in your jar
Oh
holy cow google spreadsheets are kinda good databases
I want to shade just minimessage and the bukkit minimessage platform
yes, nothing to do with MM lol
you'll want to relocate net.kyori.adventure.platform to ....adventure.platform and ...adventure.text.minimessage to ....adventure.minimessage or whatever, and yes, explicitly include adventure-api as compileOnly
Thank you!
Like this?
relocate 'net.kyori.adventure.text.minimessage', 'me.fisher2911.enchantsexpansion.adventure.minimessage'
relocate 'net.kyori.adventure.platform', 'me.fisher2911.enchantsexpansion.adventure.platform'
It's not working for me, I'm definitely doing something wrong.
yeah looks like it should be working
push the latest stuff to gh
maybe I can try fiddling with it a bit
Oh this is a different plugin build.gradle
I'm running it on paper, would that make a difference?
java.lang.NoSuchMethodError: 'net.kyori.adventure.text.Component net.kyori.adventure.text.Component.compact()'
that just looks line some binary incompats
uh well
what version of adventure are you depending on?
compileOnly 'net.kyori:adventure-api:4.9.2'
paper-1.17.1-165
update lmao
Epic
gitbook "just selected" this emoji when I wrote my library name, why does gitbook doesn't like my lib? :/
:))))
Lmao
🤣
is possible on gitbook to link tabs with same name (so if I switch to "Gradle (KTS)" for example, it switchs all tabs to it)?
I don't think so. but matt's wiki will be able to. right @ocean quartz ?
It used to do that but as a bug lmao
I could add it though
you should* add it
what is the gradle equivalent of this maven thing? xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.32</version> <optional>true</optional> <!-- case: when other logging implementation used or logging is not needed --> </dependency>
tf does optional mean
I have no idea, but this is inside https://github.com/ronmamo/reflections/blob/master/pom.xml
optional true seems to be what compileOnly/implementation is to compileOnlyApi/api? Or am I getting this wrong? https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html
Actually I've used that before 
I guess this? https://blog.gradle.org/optional-dependencies
but that's the way I used it for when I used it
for exposing (or not) transitive dependencies
probably wrong usage though lmao
when choosing a library, do you prefer to read the readme file (on Github), or you go directly to their wiki (when it's something lighter like Gitbooks)?
Imo add simple example on readme, then direct them to a wiki for the rest
is there an api for DeluxeMenus
I generally think of readme as containing the most substantial and necessary info
I see, I'm migrating most of my readme content to a separate wiki
no
yeah I like when people include, what the project aims to do, the repository maven, possible modules, maybe the license and a brief introduction
bruh
it could have a potential
I need a good gui plugin with a good api, CommandPanels has some downsides in their api so I won't use it
is it even open source?
nope
🍽️
they have a github, but the code itself is closed https://github.com/HelpChat/DeluxeMenus/
hmm quite unsure how I would fork and pr an api based on that
why do u need an api anyway?
what api should do in gui plugin?
yeah thats what i think lmao
I wanna connect to a gui plugin in my plugin
try and see, but yeah songoda isn't bad from what I heard
They have good plugins there
in what way
in reply to this
let's say it should open a gui after/before a game and that gui can connect to others that I have from CommandPanels.
I agree an api wouldn't harm
but I mean you can connect that with raw premade plugins
how if I can't open it without an api?
well you literally can
just use something like Server::dispatchCommand?
(if that was the name)
the stuff inside the gui are customized and have special functions with my plugin
at this point you may just want to write a custom gui
let me try using BetterGUI first
thanks
you can try this https://sagioto.github.io/maven2gradle/
ok no I gave up lol
I want to created an Android app, and I'm thinking of using a lib for the ui. I'm currently considering https://github.com/flutter/flutter. Any other suggestions?
Should I even be using a lib?
flutter is a bit more than just a library lol
Yeah, I realised after reading through further. Just a tiny bit :p
Yep. Gotta learn dart for that though.
Dart is good
It’s like kotlin and java but actually good
Not bloated with keywords and got null safety
I looked at it, and my first thought was Kotlin + Js
I'm reading up on it now, seems that it can compile to Js. Might learn it now, cause I wanted to learn Ts. Could now learn Dart instead of Ts
Wise choice
Well both are quite the meta right now
I know a decent amount of fart
Dart*
But yeah
Lol
Do you know if Dart is higher level than something like Java? Not that it'll change my perception much, just curius
Quite the same in my opinion
It has a gc for instance
It’s pass by value just like Java and some other similar things to Java
And it performs significantly better
Yeah, that's my first impression on reading the docs
It's Kotlin stuff but mostly Java syntax
Ya
Oh yeah
You’ll have to learn those syntax things but that’s not a big challenge for someone who knows Java decently 
Or kotlin for that part
Exciting. Will probably go learn it later.
Nice. Java + Kotlin experience should help lots then
👍
Dart is more like Java mixed with js than anything
Oo yeah async await for instance 
Idk if that was invented by JavaScript but yeah
Should my package name be io.github.(stuff) or com.github.(stuff)?
do you have a gh pages site on yourname.github.io?
No, I should though.
Okay thanks.
👋
Hi glare
What's up?
Is anyone here proficient with pupeteer? I wrote a little program lately that uses it to scrape NameMC to convert profiles -> MC UUID. Was wondering if anyone could give it a quick looksie (in the resolver.js) and let me know if anything outstanding shows. Trying to keep it fast and efficient, but I also need to ensure the XPATH I need is loaded before I go to the next in the list. https://github.com/darbyjack/namemc-skin-resolver
Couldn’t you just use a public api like CraftHead for that?
Oh just read why, it’s to get every skin
I cant seem to import PlaceholderAPI in maven. It all works and looks good in the POM, but when i try use PAPI in my code, the import goes red and it just dosent work.
don't crosspost
and this isn't the correct channel - but show ur pom.xml in #placeholder-api (since u already posted there)
done
@old wyvern currently trying to apply SlimJar in a KTS project, and I have the import for io.github.slimjar.func.slimjar, but trying to use implementation(slimjar("1.2.6")) yields: ```
org.gradle.internal.exceptions.LocationAwareException: Build file '/home/bombardygamer/IdeaProjects/data-link/bukkit/build.gradle.kts' line: 17
Extension with name 'slimjar' does not exist. Currently registered extension names: [ext]
Yea the repo is currently down, Its pointed to bm's repo atm
Your best option is to install it to your local repo
I'm trying to get in touch with oracle suppourt to reenable the vps
Worst comes worst, I'll submit it onto central and remove the mirror
alright
good old oracle
yugi is there anything you can change to make it use my repo for now ?
i can publish the slimjar artifacts if that's the problem
@old wyvern Actually that issue is not from it being down, it's the bug i fixed on that PR 😩
btw for paste.helpch.at, is there any size limit? (using the api)
or should i use hastebin since i dont need the paste any longer for a day
idk
¯_(ツ)_/¯
I mean there's people that have put like 200k lines in it xD
like logs for a month from their servers
o
but it will take a while to load xD
bad api
How many pastes have you created lol
not many
With Gradle (KTS), how can I copy the final jar to a location? I’m looking to copy it to a test server, so I can work from my IDE and test a plugin quickly
You can change the destination folder on shadowJar or create a copy task
@half harness host your own paste site 😎 I found out yesterday it can be free
on cloudflare workers
btw have u seen https://github.com/Spigot-MSPL/iron
Holy crap I didn’t even know this existed lmao, that’s super cool thank you, another option if I ever needed it
Aha I see, thank you, how do I get this to run after shadow?
omg its a monad, must be good!
How would I copy the jar (or even, move) after shadowJar is finished? (With Gradle KTS)
i mean, can't a copy task and intellij run do the same thing? besides automatically downloading the server jar
Yeah, I guess just another alternative, I personally would prob just have a single test server location and have it copy there
this is what i do (build.gradle, not kts): ```gradle
task removeBuildJars() {
//noinspection GrUnresolvedAccess
new File(project.rootDir, 'build/libs').deleteDir()
new File(project.rootDir, 'build/resources/main/plugin.yml').delete()
}
final server = '1.8'
final servers = [
'1.8',
'1.16',
'1.17'
]
task copyFile(type: Copy) {
if (!new File("../.TestServers/${server}/plugins/").exists()) {
return
}
new File("../.TestServers/${server}/plugins/${fileName}").delete()
from("build/libs/${fileName}")
into("../.TestServers/${server}/plugins")
include("*.jar")
}
task deleteAll() {
for (deleteServer in servers) {
for (file in new File("../.TestServers/${deleteServer}/plugins").listFiles()) {
if (file.name.startsWith(shadowJar.archiveBaseName.get())) {
file.delete()
}
}
}
}
``` then gradle removeBuildJars deleteAll shadowJar copyFile
¯_(ツ)_/¯
then i use intellij's jar configuration to run the server and build the jar
Oh super clean, thank you, may give that a shot, is there even much difference between the normal and kts version?
sort of
Only perk I think with that plugin version would be that if it’s open sourced others could test it, but I guess for a single project it doesn’t matter too much
I just don’t like that it downloads a jar to my root folder
this task checks if the directory exists
so that if others build the jar
they don't also have the jar copied
¯_(ツ)_/¯
Oh super cool approach
you'll have to change the directory though unless you have the same exact directory system as me
Yeah
Why do you remove the build files?
so that i dont have a bunch of jars there
and the plugin.yml is so that the version updates (idk why it doesn't automatically sometimes) since i have it setup to use the version in build.gradle
That's not how that works, if you want to remove just clean
But that's not needed either gradle handles all that
oh
but then it removes all the cache
You're deleting from the cache as well lol
i just deleted the plugin.yml
And how often do you update plugin.yml
Which btw if changed will be updated automatically
You never should need to remove anything
Is deluxemenus SRC available to the public?
No
And how often do you update plugin.yml
somewhere between every day to every week
Which btw if changed will be updated automatically
it didn't 🤷 it just randomly stopped updating
You never should need to remove anything
I don't know any other solution
sorry. what?
Why would you update plugin.yml everyday? 
Matt, what would be the KTS version of what Dkim has? To copy the jar after shadow, is there a way to automatically do it after shadow, or would I have to specify it?
After shadowJar in my CLI
_on phone rn so apologies _
you can use the copy task and call shadowjar from inside the copy task
just make a copy task
making a plugin for a server - either fixing bugs (usually ☹️) or adding new features
and then you call the copy task instead of the shadow task
tasks.register<Copy>("copyJarToServerPlugins") {
from(tasks.getByPath("shadowJar"))
into(layout.projectDirectory.dir("server/plugins"))
}
Cloudflare workers / sites 😎
it won't check if the dir exists tho :(
does it?
And this is then set to run after shadow?
All you need is a simple copy task or on shadow destinationDirectory.set(File("path"))
yes but you have to run it manually
gradle shadowJar copyJarToServerPlugins
Ohh I see so when you give something a name within the Gradle file, it becomes there via CLI
if that makes sense
a task*
Do shadowJar copy or shadowJarTask.finalizeBy(copy)
yeah a task
Ahh that’s super cool
shadowJar for ex is a task
Learning something new every day
@prisma wave Sir you should go see a doctor
Well its a bit complicated of a setup with both workers and pages.
But I think that domain explains some of it
Asked?
yes
your non-reproducible builds need to see a doctor
was it? because I Was literally talking to fred
https://github.com/LostLuma/starbin
You make the worker part a worker, and the static part a CF site
Excuse me sir
like there's so many opportunities (I talk alone a lot) but you chose the bad one

