#dev-general
1 messages ยท Page 613 of 1
sure
maybe someone can help you
just write the problem or google it!
how to get it??
because you are using lombok
idk how big trove4j and ur geoip dependency is but they sound pretty big
what u can do is create a shadowJar task and call minimize() to it
also this^
Ahhh I see, thank you, I think I have to move geoip to download on run sadly too, because of the rules
Only premium plugins have a size limit I believe
Ahh I see thank you, I wasn't sure ๐ I need to have it download geoip too i think their rules idk someoen flagged it to me
but been a while
GeoLite2 is provided in the src/main/resources folder of this repo, however, GeoLite2 prohibits this without attribution. https://blog.maxmind.com/2019/12/significant-changes-to-accessing-and-using...
I think if its over 5mb then ud have to have an external link to bypass the size limit but ye
Essentials just asks the users to download that file
oh does it :o interesting
Im not sure the best and easiest way to do it for people, happy to consider any PRs, I'm not sure where to start haha
They're right, you don't even provide a license
and does this service even have a privacy policy?
@lunar cypress not yet, looking to get one next once we're stable
Hey , does anyone how to do this : if anything is changed in a certain file in a spigot server , that thing will take effect in whole network
Hello
I need an idea for a project
So i can start do things and learn more about Bukkit api
stop sending this lol
then do the other 12
ok les do this
๐
oh
?
he knows xD

you are aware that's illegal?
Thanks for your awareness :)
by eu and by extension uk law, you need a privacy policy if you collect information
Which we want to get done properly, rather than some random templated one
Which the majority use
Nobody is going to come after us, considering we've just launched haha, its planned, we're doing things the right way ๐
Hence registering a business, etc
doing things the right way
that is not doing things the right way
No worries
so i generated the coordinates and teleported the player there i need to fix something and its done ig
fixed
amazing
from 2.9999999E7 coordinates to a min and max
lol
i will make a config about min and max
great idea
im trying to random tp the player in a selected world but the command wont load lol
final loadded
YESYY
ITS WORKD
nice
ok now i need to revamp the command cuz its trash lol
classic trash command moment
depends on the context
i made a fun for load my config thing
and now i want to import in other fun
(kotlin)
cuz i know how to do in java
again, depends on the context
val prefix = config.getString("messages.prefix")
val rtp = config.getString("messages.rtp")
val rtpw = config.getString("messages.rtpw")
val spefworld = config.getString("messages.spefworld")
val wrongworld = config.getString("messages.wrongworld")
val min = config.getInt("rtp.min")
val max = config.getInt("rtp.max")
}```
this
yea
instance members probably
with java was easy
its the same as java if youre using a class
same in an object except basically static
class RandomTeleport
yes it a class
uhm
so like val prefix: String ??
cuz its not owrk
tbh i would move this out into its own class
create access methods for each property
oh ok but there are many thing on the OnCommands fun
Any good libs these days for requests that is light? Needs to be java 8 compatible sadly
okhttp is pretty much a staple before java 11 for that stuff
Funny enough I just installed that, thank you, just need something for java 8+, I hate supporting old stuff but have to here
fixed
but cmd in console have error
i give up to fix
i copied and paste past work and still have the same problem wtf
wtf
val rx = random.nextInt(max - min) + min val rz = random.nextInt(max - min) + min
i dont know
nvm maybe
typo error lol
that seems fine
can you show the actual teleport bit maybe a bit before too?
:nokotlin:

fixed type error lol
i put rz and rz
and not rx and rz

kotlin is sexy
anyway done, i dont know how to set spawn i tried but didnt work lol
val rx = (min..max).random()
val rz = (min..max).random()
this is better?
kotlin is an interesting language to say the least
It's the same, but easier
oh but why give me errors?
Which error?
kotlin users deserve the electric chair
thats a touch extreme dont you think?
Well ofc lol, you need to add the min and max values, the same way you would with random.nextInt
fixed lol
finally done
simple and fast
my friend say kotlin is sht and java its the best
so i dont know to make plugin in kotlin or back in java
kotlin

Java
Yes lad
btw a couple suggestions:
- don't ever ever ever ever ever ever ever use
!!- in line 19, use?instead, that just means callsetExecutorifgetCommandis not null - in
onCommandcheck if thesenderis a player - instead of making the variable at line 36, combine the declaration and assignment (so
val worldTarget = ...) playerinstead ofp๐- don't use
cmd.name- no point if that's the only command you register (and if you have multiple commands you should probably register them in separate classes) - use
JavaPlugin#getLoggerinstead ofprintln:logger.log(Level.INFO/SEVERE/WARNING, "Message")orlogger.info("text")
oh and
lable
๐ฅฒ
(use IntelliJ to generate onCommand)
wtf
lol
elara soon
|| gradle ๐ฅบ ||
- instead of making the variable at line 36, combine the declaration and assignment (so val worldTarget = ...)
what i need to do cuz i dont understand
anyway thanks for the tip of !! and of logger cuz i didnt know that lol
so instead of ```kt
val worldTarget: World?
worldTarget = Bukkit.getWorld(args[0])
do kt
val worldTarget = Bukkit.getWorld(args[0])
- the thing of cmd.name.equals("cmd")
done updated check it again
other things to fix or make it better?
nice ๐
it'll still throw an error in console if you try sending the command without being a player, so do ```kt
override fun onCommand(sender: CommandSender, cmd: Command, label: String, args: Array<String>): Boolean {
if (sender !is Player) {
sender.sendMessage(prefix + "You cant send message on console")
return true // exits onCommand method, so below won't run
}
// val player = sender as Player - kotlin already knows that it's a Player so this variable isn't needed anymore
}
and you can remove this: if (cmd.name.equals("rtp")) {
wdym?
its ok val player = sender as Player?
with this code you don't need the player variable at all
i mean for
kotlin will know that the sender is a Player, so you can just do sender.location for example
player.getworld ect
yep, that'll work too
oh
ok so no player?
nope
u can remove it ๐
also note that saveConfig() removes all comments from the config, and since it doesn't seem like you're writing to the config I'd remove that (bottom of the class)
and some naming conventions: ```
rtpw -> rtpW (I don't know what the w means, but it probably has to be capitalized)
spefworld -> spefWorld
wrongworld -> wrongWorld
minc -> minC
maxc -> maxC
variablesShouldBeNamedLikeThis
yea i know
alr
And they should be clear to other people what they mean
the code isnt commented
its just for test
if that work
cuz i spent many hours at pc doing things that doesnt work lol
ideally name your variables a little more descriptively
Good obfuscation
oof ๐ฅฒ
Commented code is a myth
It should be self-descriptive
does anybody here know the vehiclesplus api?
Hi
Good
hi.
Absolutely terrible
How are you?
hi.
I'm good ๐
Hi
hi.
aw โน๏ธ
Good
hi
whatever was the ping in the bot commands section for some reason i can't see it.
You leveled up
ah ok.
anybody know the vehiclesplus plugin? just asking.
Sorry what do you need help with?
i'm just asking if anybody knows the vehiclesplus api.
i always comment tf i do
i'm just trynna make a script one off for something, since i've tried before but for some reason no plugins i make work, but if i send them to somebody else who sends them back to me they do...
or if its clean i dont
What are you trying to make?
done now should be more clean i think lol
i'm trying to make a java script to spawn in a custom vehicle from that plugin, since currently ppl can only access them via gui, but i'm just trying to do a command that spawns the vehicle instead.
do you know how to use api to spawn in custom stuff from other plugins?
yeah i think so, i'll send you a link to it.
Ok
That is java, not javascript
oh ok.
is there any noticable difference?
A significant one yes, java and javascript are very different
think car vs carpet
ok so if i wanted to use java to make a script how'd i do that? would i need to use something different?
ok cool.
Well you wouldn't be making a script really, it sounds like what you want to do is use the API to make a command
Which would be very simple
yeah.
ah nice.
so what would i have to do to do that? would i still have to use intellij and stuff like that?
Yes
what stuff would i have to change?
does it make a difference that the command isn't built into the plugin? i'm just trying to spawn in something from a plugin, without going through the gui.
No not really
ah nice ok.
so how'd i get that to work?
like are there any things i'd need to download?
You ping a lot ๐
oh ok sorry :/
If you don't know any java, you should probably start there
how'd i find the documentation or wiki or whatever for that? also do i put it in just like a normal plugin?
Then just look through the javadocs, if you want a nice command library to make things easier, i'd recommend https://mf.mattstudios.me/mf/mf-1/getting-started
Yes it would be a plugin
ah ok, so is it like an alternative way of making plugins, or like a more basic language that is more difficult to use?
I guess something like skript exists but I wouldn't recommend it
i've used skript for some things but i don't think it would work bc i'm trying to edit a plugin that's basically never used and everything in skript has to be already made by other people.
Yeah, your best bet is gonna be making a simple plugin
its a layer on top of the bukkit api
do i have to go through the pain of downloading gradle and getting api and pox.xml stuff setup still?
Pom.xml & Gradle 
ok still.
No
Just dont do it if you cant
And hire somebody
We have butiful channels here
how much would a really simple command cost.
You can also suggest it to the author of the plugin
wouldn't that just take way too long though?
it should spawn in something in the plugin that usually can only be spawned through a gui.
it's the vehiclesplus plugin.
It's literally just spawning a vehicle with a command
i want to be able to spawn vehicles using commands, not gui.
Things look easy, some of them aren't
yeah but apparently it doesn't work with javascript or whatever.
Yep
That isnt supposed to work tho
yeah ik.
Link ples
If I felt like opening intellij, i could probably do it and I barely know java
it's a great plugin but the gui is horrible and idk why you can't just use commands.
I'm just saying it's simple enough the author should implement it
All fun things until theres no documentation at all
ah ok i'll tell him.
cough Minecraft
that's true, theres no docs on any of that stuff since it's barely used and mostly not in english.
that's java not javascript.
Yes that is what I said earlier
ik yeah.
bc thats how the developer imagined the plugin
and made the whole system to fit that
ik yeah.
its not that easy (sometimes) change the whole thing to "add a command"
it's annoying yeah.
i know i've tried quite a few times and it is really difficult still.
If you are smart it is
You should have one class
That is managing vehicles
You are not the author tho
Would be nice if the vehicle plugin was open source
Yeap
ah yeah.
yeahhh this is not a "if he's smart or not"
is there any way you could sort of jump your way around it? like forcing the player to click somewhere in the gui really quickly?
this is a "system was made like that, if i ever add that, it might take time and i currently dont have time" thing
๐
perfectly said.
Yep
You can always (not always) access to it using the api the dev created
even if not, you can even try playing around with some reflections or something
however, asking the dev is usually easier (sadly, not all devs have time for breaking changes)
and thats a reality people need to learn to accept
If developers would open source their plugins than most of these things wouldn't be an issue
i'll probably just try to think of some weird inefficient way around it then, that usually works.
yeah, probably, but dealing with pull requests and that stuff for a couple of plugins needs time (and as mentioned before, many dont have time enough for that)
now imagine with 4, 5 or more plugins
Or people can just fork it and use the fork for themselves
additionally, some are not "familiarized" with github enviroment
exactly, but thats not how life works
I'm not the only one who does this
people start with "but add this"
"hey i made many changes in the code, check them out"
"hey, this is better doing it this way for this this and that"
and not everyone has time for that
additonally, many people dont even like sharing the code
I don't see how that could be an issue, it is probably easier to click "merge PR" than to code something
no when you dont even know how to check all changes, or even read them correctly
(me for example)
But it's just reading code?
click to read
- requires time
- know where to click to read the code (yes, im that dumb even for that)
i wish i could open source my plugins
but time isnt enough for that
open source something = time to manage it
nice cap
I can agree open sourcing comes with the burden of managing issues, pull requests etc (mainly when your thing is larger, is when you have to deal with it?
@static zealot
well cj has no moderation perms
lol
trusted is moderator, support is literally just support
ah
I was very confused
understand now
I thought you were trying to tell me to open source all my shit or soemthing
Should still do that ๐


New windows 11 notepad 
They fixed the minecraft icon!
notepad 
Yay
I just changed it to the old one xD
If your project is large enough that people are creating multiple issues, then its likely that there are people who want to help fix them.
Accepting a pull request is in a lot of cases much quicker than having to write all the code to fix it yourself.
i mean, kinda cute
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
java -jar BuildTools.jar --rev 1.16.5
*** The version you have requested to build requires Java versions between [Java 8, Java 16], but you are using Java 17
*** Please rerun BuildTools using an appropriate Java version. For obvious reasons outdated MC versions do not support Java versions that did not exist at their release.
use a diff java version
i personally just have different env variables for each (8, 14, 16, 17)
ยฏ_(ใ)_/ยฏ
I know how to make environment variables, but how would I use them when doing the buildtools command?
this is JAVA_8: C:\Program Files\Eclipse Adoptium\jdk-8.0.312.7-hotspot
so I'd do "%JAVA_8%\bin\java.exe" -jar BuildTools.jar --rev 1.16.5
Awesome, thanks
np ๐
I think my PC is going to explode running 3 different buildtools at once ๐
1.18.1, 1.17.1, and 1.16.5
(make sure they're in different directories btw)
Yeah I made 3 different ones
alr
ik i've asked this already
but
i forget
but
how does paper take like half a minute but buildtools takes like 5-10 mins
Paper weighs less than tools
paperclip patches the server jar itself (it contains the .patch of the jars)
buildtools has to remap, unzip, decompile sources, patch sources, recompile, remap, zip
basically the entire development process
ohhhhh
wait what
how
on github theres the .patch files of the source
yes, for development you patch the sources
but when you go ahead and build paperclip, it compiles it, jars it and takes the diff of the jars
i also didn't know you could .patch binary files ๐
it's just the difference between two files
well, it can be many but in this case it's the diff between two files
difference?
how not..
because
I mean yeah patches are literally git diff files
nono thats not what i meant
.. ?
lmao
๐
Failed to execute goal on project NexEngineCompat_V1_17_R1: Could not resolve dependencies for project su.nexmedia:NexEngineCompat_V1_17_R1:jar:2.1.1: org.spigotmc:spigot:jar:remapped-mojang:1.17.1-R0.1-SNAPSHOT was not found in https://hub.spigotmc.org/nexus/content/repositories/snapshots/ during a previous attempt
Any idea how to fix this?
I'm more confused as to why for some reason the 1.16 worked fine but not the others
tried 1 by 1?
I was just using mvn clean install
I don't know much about NMS, all i'm trying to do is add one tiny little feature to this plugin ๐
1.17+ spigot added remapped-obf and and remapped-mojang which you need to specify
https://www.spigotmc.org/threads/spigot-bungeecord-1-17-1-17-1.510208/#post-4184317
Don't think so
Can anyone enlighten me on the pros and cons of the library loader? (plugin.yml)
Well for once it breaks Central's ToS, forge did a similar thing ages ago and they got a cease & desist letter from them
You also can't specify other repos
Now I haven't really used it myself but it introduced a bunch of class loading issues and random, sporadic bugs in spigot, somehow managing to close some plugin's classloader so they just start erroring at random, even when not using it (the system is active still)
use the latest gradle version
how 
YES and then edit the version in gradle/wrapper/gradle-wrapper.properties
Say no more. I shall be using it from today onwards
๐ฅด
uh.... someone turned skript into an actual language?!
what the
ye....
it actually looks quite solid in some ways
but whatever, you can't do much with it anyways but props to the guy
is there a quick way to check allocated and remaining storage space for pterodactyl?
HmmโฆSettings
yeah. found out that in the node settings it shows how much I allocated. And to get remaining I Just need to add up all the servers and subtract
Yepp
who?
your mom asked
IG it would
well turns out I have 35 GB of storage left
it shows allocated space only. which is not used space
oop
i ran out of space on my ptero machine once
was very awkward
it fucked up my cron jobs too
how can you possibly run out of space nowadays? like storage is so cheap atm
VMs and lots of backups
we stored 5 backups of each server, each of which was like 10GB
then I moved it to the server where the node was on and that solved a lot of problems lol
but the managing server just had a web server on it and like 128GB of storage
so it filled up pretty quick
hello
my lovers
how to setspawn after 5s?
and send title while the player isnt moving and if the player move the setspawn should stop
(too much?)
i need to storage my xyzyp?
les try and see
Use BukkitScheduler
ok thanks
how i can use bukkit scheduler for save my config after 2s? onCommand fun
found fun but tf i can do in kotlin if there are so many error
nvm
fun run() {
config.set("spawnpoint.x", sender.location.x)
config.set("spawnpoint.y", sender.location.y)
config.set("spawnpoint.z", sender.location.z)
config.set("spawnpoint.world", sender.location.world)
saveConfig()
sender.sendMessage(prefix + spawnSetted)
}
}, 20L)```
this dont want to start
i didnt put something in main?
but with the guide this is correct lol
this variable in onCommand fun
oh
i fixed it
remove "fun"
and now work
org.yaml.snakeyaml.error.YAMLException: Unable to find getter for property 'noTickViewDistance' on object CraftWorld{name=test}:java.lang.reflect.InvocationTargetException```
wtf
config.set("spawnpoint", sender.location)
its like dont want write on the file
i made a good version where its save name and world
yes
its not write or change nothing in the config
here the file
public void save(@NotNull String file)
throws IllegalArgumentException, IOException```
Saves this FileConfiguration to the specified location.
If the file does not exist, it will be created. If already exists, it will be overwritten. If it cannot be overwritten or created, an exception will be thrown.
This method will save using the system default encoding, or possibly using UTF8.
file - File to save to.
IllegalArgumentException - Thrown when file is null.
IOException - Thrown when the given file cannot be written to for any reason.
if you need the data from config, make sure you also call reloadConfig
where i need to call it?
after save
which save>
?
wtf
now its say nullnull
๐
please check my class in github
i just added new things
i give up this config its bugged asf
i dont know tf is wrong
is it tho?
talking about it being bugged af
yes
i dont know
now dont read the config
dont save
like wtf
6h 34m for that plugin
i dont really understand wtf is wrong
my 16h of bukkit dont help me much xd
please help me
well I mean please send the code. we can't really just guess what's going wrong
also send the errors if there are any
https://github.com/Zrips/Jobs/blob/master/src/main/java/com/gamingmesh/jobs/PermissionHandler.java man, what the fuck is this code style?? where is the first ident
also #development LOL
@distant sun mind pointing out specifically what u mean
I don't see anything wrong with the indentation
what the fuck
also on chrome
but on edge it looks ok
what addon is that, pig?
or is the font function from github
what addon
gaby u should fix ur computer
(apart from the indentation)
used to be
pretty sure I used to have it set to fira code
idk why it changed
probs because I'm using the official github theme now
I remember they added a way to set a custom font but can't find it anymore
have not heard of EnumSet?
Also, I think the comment can be added above the enum entry to have it as a javadoc
nope kek
@static zealot this refined github looks nice
that's bcz it is nice
ok. what about this isn't working and do you get any errors?
also why? java private val cfgFile = File("plugins/RandomTeleport", "config.yml") private val cfg = YamlConfiguration.loadConfiguration(cfgFile)
config dont "work"
i mean dont want to load and update with new thing in.
well why not use JavaPlugin#getConfig and JavaPlugin#saveConfig tho?
i dont know i just checked some tut about config
i was using the default one
well you are not using it rn.
because i was testing other.
@static zealot for compile the jar (kotlin) i always need to do "mvn install" or there are other commands?
I believe mvn package also works. I've never used maven myself so not sure how they all work and what they all do
what you use?
gradle?
The cool kids use gradle
i always use it but now i use maven cuz there are more thing lol
config still old
lemme test gradle
with kotlin
you might want to saveDefaultCOnfig first on enable
then register the commands and event
listeners
pretty sure this will throw an error when someone uses the command from console
and why do you randomize the yaw and pitch really?
also if you want to store something for a player, I'd recommend you use the uuid as an identifier not the name.
also. might want to null check your options. or have default values
the config options I mean
cuz its funny hheheh
and how to get UUID ?
how you know that?????
Hey...need a bit of help with regex....or what ever it takes it to ๐
I would like to know the language after a given codeblocks
https://imgur.com/9ATOeVq ... so what i want is i want to get that its Java thats present after the code blocks... How can it be done?
oh bruh
need parameter T something like that
if(!config.getStringList("SpawnPoints" + ".").contains(player.uniqueId)) {
here
```(\w+)[^`]+``` @primal crystal maybe this
almost there gaby xD
because of "uniqueId"
Discord formatting, ssh blitz :))
paste in somewhere like paste bin or so ๐
know what?
It should be good now alex
i dont even know if the if value its right lol
get__String__List contains player.uniqueId
weird...the website throws me error
uh
so how i can get UUID?
ah, looks differently on mobile
didnt read what the thing do lol
https://regex101.com/r/44eWs1/1 @primal crystal
you should start doing that @rugged spear
didnt read what the thing do lol
hm
yes
but its boring open every time the broswer and search tf do xd
but if you say it i will
I don't want to be rude, but if reading what stuff does is "boring", why do you expect us to point you to the right direction?
your right xd
that's how we learn things...everyone you speak acquire the knowledge same way
anyway you know how to have high priority on win?
cuz ij idea dont make me upload plugin when the server is on
yea
yes but in main main disk i can
in D i cant
like tf
nvm will stop and start server
oh no...
wrong chat
Any devs here integrated GeoIP into your plugin? If so, how have you configured it?
Iโm considering the option at downloading GeoIP on first boot instead of compiling (apparently the terms require this) - just not sure where to start with it.
Thanks ๐
You need an account to their website, do what Essentials does and just have the users download the file themselves.
or you could just ask for their api token like some other plugins do
Ah do they? The plugin works without it, just didnโt want it to be too confusing to an average guy.
I saw they have api access just wasnโt sure if only the developer needed to do it (for downloading)
Any plug-ins you know of that are open sourced that do this?
if you use spigot command registration you literally just check the first arg.
i know
then do something different for each one you want
authmereloaded does it 
Wait really? Thank ya will peep that then
you need to check length of arguments before getting an argument
right now you're probably getting args[1] somewhere
while your commands has only 1 argument
It has a main command and a sub
chazza, he's doing this to learn. so copy pasting won't really be helpful here
Oh
Why not just add attribution?
I didnโt know he was learning
I thought the issue was not attributing maxmind
anyways. chazza if you want to take a look: https://github.com/AuthMe/AuthMeReloaded no idea what classes or how this plugin works internally so you'll have to find it
Apparently for GeoIP you canโt self host it someone told me (like compile within plugin)
But maybe they are wrong
Tysm will take a peep
maybe they're wrong but plugins like essentials, plan and authmereloaded both downlaod it after. well essentials makes you download it manually, authme and plan take in a key I beleive
the api key
Ah, they need to you to use their license
or wait no
Itโs just been so confusing, I can do api key if needed I suppose
it used to be that you could've just used it but now they require you to have an account to get a license and then use that license key
when (args.size) {
0 -> {
// something
}
1 -> {
// tp to world with args[1]
}
}
if(args[0].equals("reload') {
// reload thing
} else {
// message wrong world or wrong typo command
}
}```
its that right?
Oh interesting :o
nvm thats the old license
However, these new legislative measures place restrictions that impact our ability to continue distributing our GeoLite2 databases on a public page under the Creative Commons Attribution-ShareAlike 4.0 International License.
cuz that give me problems xd

@rugged spear use #development for help
in the when args size 1 branch you add the checks for the subcommand
not after
and yes #development
oh ok
new end-user license agreement nice xD
So does this mean you canโt now?
neula
mood
Looking for discord support?
HelpChat is a Minecraft plugin and development support server and is not affiliated with discord in any way.
If you require support from discord, we recommend you to visit their official support website at https://support.discord.com
On this website, you can read their FAQs, or open a support ticket if necessary.
gaby why do you say IIJ?
idk, I guess I didn't read it properly at first and I got used
whats plugin is for??
lower case l looks like capital I Intel__lIJ__
i can replace its with this?
in external classes
oh i know whats is plugin stand for
this represents the current class
and if you are outside the main class, this won't longer be a Plugin
don't
don't use static access until you know how it should be used
static is for use the method in other classes, right?
no
without importing the static method in the class
oh
and tf static do lol
googled now i know lol
Seems like it
Been working on some new stuff for MCBanners lately. I have Modrinth support ~98% done.
Spring Boot is a bitch to debug sometimes.
Reminds me of Discord's activity stuff
Hmm?
I didn't read the text on the right and just assumed it was a discord activity thing xD
and thought maybe you're doing a discord bot for the banners or something
was paying attention to something else so yeah... xD
I'd like to make a discord bot for it at some point
Also more custom ability over banners, adding your own images, etc.
what characters would you guys recommend for placeholders?
%placeholder%? $placeholder$? {placeholder}?
% is the standard
fair enough thx
also for placeholders, I am aware that using #replace isn't the ideal thing, what should I use instead?
papi
would StrSubstitutor be a good alternative?
no point reinventing the wheel
and it's meant for plugin use only, making the placeholders public wouldn't really do much
why is replace not ideal
unless u have lots of placeholders, replace is fine
Since I made a pattern based gui system, I want users to customize the max of it. Some things need to have custom placeholders in the menus for that to work.
I don't see the point of using PAPI if the placeholders aren't meant to be used like that
that is true
no harm including it anyway though, your users might want to include external placeholders
For public/general placeholders, I will add PAPI sure.
I plan to do so.
But for gui configuration, I want to have my own system
since some placeholders are specific to these guis, and won't be available in papi
and as said, I don't really want to depend on any plugins.
I can add support for it, but I don't really want to rely on it.
can you specify "lots"? what would be a starting number?
didn't think about that, but unsure if they will have to.
like hundreds
okay ye, not going to be hundreds lol
uh what's polymart?
plugin marketplace
oh suppose it's new
checking it out rn and it looks really good
like 20x better than spigot
yes
Savage
if you say that, please elaborate xd
Polymart is as bad as spigot, if not worse. It has less consumer protection in terms of DRM.
Hopefully Hangar will come along with a good amount of protection against DRM.
Hangar?
an incoming paper's marketplace
wait made by the paper team?
hangar will have no premium resources if that's what you are talking about @cursive jolt
yees
I don't care about paid plugins, I'm talking about how much obfuscation is allowed
that sounds interesting
aight
freemium implies the plugin to be premium but OS
Will DeluxeChat be on here then? /s
(Not talking about the DRM stuff)
not necessarily
the plugin can be entirely free but support or other extra feats paid

^^
aight
Every plugin should legally be open source, so it shouldn't be a big deal to plugin authors.
I think CoreProtect works this way
which is a reasonable model tbh
wait, what if I used the paper api to make a plugin? can I still publish it in spigotmc? loal
(totally random and unrelated question)
if it's exclusive paper plugin, no
If you break spigot compatibility, no
if it has like fallback compat features then yes, as it works on spigot
I suppose I can use paper api if it still works on spigot?
Just make it so if they use spigot they can only use it for 5h a day, or no limit on paper
Kappa
genius.
technically works
did someone just get hammerd?
yes
poggers
๐
tf?
since when does paper (idk if spigot has it) a cooldown system builtin?
or am I just misunderstanding things lol
d;1.18 HumanEntity#setCooldown
void setCooldown(@NotNull Material material, int ticks)```
Set a cooldown on the specified material for a certain amount of ticks. ticks. 0 ticks will result in the removal of the cooldown.
Cooldowns are used by the server for items such as ender pearls and shields to prevent them from being used repeatedly.
Note that cooldowns will not by themselves stop an item from being used for attacking.
material - the material to set the cooldown for
ticks - the amount of ticks to set or 0 to remove
ender pearls and shields
understood thx
it can be used on any item tho
annoying that it is for materials and not items, but cool
like, when you use an ender pearl, it applies to all ender pearls, rather than one item instance (you'd be able to rename it and bypass the cooldown then)
oof
yeah that's just how minecraft works lol
We got any Docker gurus in the house?
Got an issue with SpringBoot inside a docker container throwing a 403 error when sending a POST request to an external URL. Doesn't occur in URL in the container and outside of the container.
๐
Lemmo ping might be needed
I ended up backtracking it out of the deployment because I've been on this issue way too long.
Anyways. Got what I needed out.
Dropped the 3 new banner bacckground templates. Hopefully people will find those useful for a bit.
Looks great!
thats dynamic for any resource?
How would I create balloons similar to these? https://www.spigotmc.org/resources/procosmetics-300-cosmetics-treasurechests-eula-compliant-1-8-1-18-support.49106/
oh wait nevermind that's not a real git repo :(
Very annoying when people do that
packets or armorstand
if you are using pure packets that's not hard
Ok thanks, I just needed a basic idea of how it was done
https://prnt.sc/2p-a_CEVZWwQ
Hey guys, how can i set lore with colors?
Or the translate method of ChatColor
Or use adventure (:
or live with white text
shadowJar {
relocate("dev.triumphteam.gui", "io.github.fisher2911.hmccosmetics.gui")
relocate("me.mattstudios.mf", "io.github.fisher2911.hmccosmetics.mf")
relocate("net.kyori.adventure", "io.github.fisher2911.hmccosmetics.adventure")
relocate("org.spongepowered.configurate", "io.github.fisher2911.hmccosmetics.configurate")
relocate("org.bstats", "io.github.fisher2911.hmccosmetics.bstats")
relocate("com.zaxxer.hikaricp", "io.github.fisher2911.hmccosmetics.hikaricp")
relocate("com.j256.ormlite", "io.github.fisher2911.hmccosmetics.ormlite")
}
How do I exclude snakeyml? My resource got rejected because it contains unnecessary depends.
Oh it needs a โ:โ?
read the guide
yeah for some reason they're two separate things
idk what the "outer" excludes does
I think it's files passed to the jar task rather than whole dependencies?
Now I have to wait another three weeks lol
a
Oh thanks
I'm fairly certain you can also do group only, group + module too
and regex stuff as well
Thatโs cool
I saw you can use regex yeah
Do you know if it is because of Configurate?
Thatโs what Iโm asssuming
if you have configurate-yaml then yeah, it adds it to the runtime classpath; you can confirm with gradlew dependencies --configuration runtimeClasspath
Oh cool thanks
like this? https://prnt.sc/eB8gAYj6weTs
you can just do ChatColor.WHATEVER + "Your String"
How can a plugin violate it's own license? I decompiled something, and it has a license file with GPL-v3 in it, but they won't provide access to the source
you can thank socioeconomic enormities for that
they shaded in license from another plugin accidentally
how obfuscated is it?
Not at all
yeah, just dump it with luyten
Oh no, they shaded in GPL code!
That's illegal
that's a very funny way to get caught for copyright infringement lol, to shade in someone else's GPL license and claim your plugin isn't gpl
i do use Extras.getColor() to return ChatColor
you just want to add chat colors to a string right?
if I'm remembering bukkit right you should just be able to pop the ChatColor.BLUE (for example) in front of the string you want colored
if you want to return ChatColor just don't include the string and return the ChatColor.WHATEVER, right?
oh i'm blind lol
you should be able to use Bukkit.translateAlternativeColorCodes(Discriminator, String)
per google
Is Luyten gonna work better than JD-GUI?
just iterate through the elements in the array and translate them, assuming they have color codes like "&cLight Red"
oka it work
tysm
yuh
Yes, luyten is more modern than JD-GUI
Awesome thanks
if that doesn't work http://www.javadecompilers.com/ has a bunch of decompilers
One of them should work fine.
The plugin isn't anything special so i imagine any tool will work well enough
Yeah, sometimes there's errors. Then I try multiple decompilers and try and combine the best classes from each.
If a decompiler messes up a class or two, then using another decompiler to paste it over is helpful
Alright, design question. How would you structure an idle game where you have multiple scenes and the values from different scenes are used in other scenes. For instance, you have a dude that generates xp but you also have an items tab that can boost the xp he generates and you have a potions tab that also provides bonuses, etc, etc
And structured to easily be expanded on
Does it make more sense to have the dudes object calculate the bonuses based on the values from the other sources or have each source report somehow how much bonus it should give




nothing work