#help-development
1 messages · Page 702 of 1
the pom that gradle generates is a joke
completely ignoring transitive dependencies
not specifying the repositories etc
one literally has to write a script to make gradle create a proper pom
asking for recommendations, what should i use to make the cracking time to access someone else bank account, They have a password and everything (saved as a SHA256 so i can see them with salt) but the "cracking" is not real (so users password are not displayed lol). How should i manage it (i want to make it dynamic), some ideas i had
- Getting the password without salt and estimating the time of cracking by that (i cannot see the user password or reverse them so that's why)
- Getting the password length without the salt and making it random so it could be a year or Minutes
- saving the password and estimating the time inside with the password so the real password time is estimated and not the hashed one
eh yeah no what
so do you want to crack a password or just estimate how long you would need
and for what purpose
as i said for "hacking" someone else bank account to steal their money
Is it roleplay or nefarious
roleplay lol (i explained it simply but there are other mechanics in-game so that's why, its not used only for banks but even for users bases)
oh i thought of a real bank lmao
sha256 cracking is like impossible if you dont have a quantum computer though
wtf i don't need to do a bank heist
unless you get very lucky
i mean i don't really need that, its simple like that is fiction lol (and users don't see the database in real time so how they know how they are)
i would suggest to advice the players to not enter any real real password and save either the blank password (not recommended, users are dumb) or how many symbols, numbers lower- and uppercase letters are used and base your estimation on that
wait tf u want to do exactly
the base password is really hard i calculated "mine" and its really really hard like 10 years but you can change it and already made sure about that
estimate the time to crack a sha256 passsord?
probably the time to brute force a password
for "hacking" someone else bank account to steal their money (in-game)
yes
im gonna do a bank heist in minecraft
dantes type shit w the in game
but like you want the time
to know the exact cracking time you would need the exact password
yes duration like in years, minutes
well "exact"
i mean i have to save them, so when the input it i can save the time estimated and the hashed password
depends on how fast you are
what you mean?
how fast you can type to brute force a password lmao duh
then do that
faster computers will brute force it faster
it wont change anyways
crack the password yourself and store how many tries it took 
yes obv i already thought about that
if this is just for a minigame come up with something
yes it is
How long would it be to crack your password? Try out our quick tool to find out how secure your password is.
damn
theres a website for this
if i should input the "password" for my base then 1 seconds its "uwu"
nothing else
probably i will estimate it before hashing it (and making it harder so password like mine "uwu" are not really fast but inflating the time like 3/4 minutes)
Nothaveapassword tooks 32365987337 years, 1 month 💀
that has to be in a lookup table somewhere
too bad its an invalid password almost everywhere
probably inside rockme.txt
rockme_amadeus
nothaveapassw0rd!
nothave1passwOrd!
0passw0rds!
wait how do you know my password
cracked it using my quantum computer
just asking a general question, how do i change now my password on my bank account
thanks what is it now
The "time to crack" is usually just a time to bruteforce
1passw0rd!
if you just repeat the same word over and over it gets into uncrackable territory pretty quick too like penispenispenispenispenis
yeah ik theres like terabyte lookup tables for common shit
🗿
but if you do some lastpass type shit thats basically uncrackable
($!+#81?#+$!ajjsheiwnzhd
thats the plan
Probably just assign some "difficulty" rating to each character
And do a weird exponential formula
theres like some entropy thing right
theres an app which calculates the entropy for ur password
guys who wants 10 millions, i robed a bank by your recommendation in minecraft
then multiply with length
yeye
send it to godcipher ill manage the money for him
by that then every password would be shitty
ok man, here you 10 milions
ez
Your password can be hacked in at the most
609 years, 11 months
false
manage to do it "uwu = 0" but other password much longer
like "!()!UWIUWDHUJWHUJF" 7 Bilions of years
yeah
so it works
no the in-game password estimate
something if the password is 0 i should inflate it but how much is 3/4 minutes as a long value?
the code im using translates it to BigDecimal
BigDecimal guess_per_second = BigDecimal.valueOf((Long)result.getConfiguration().getGuessTypes().get(guess_type));
return result.getGuesses().divide(guess_per_second, 0, 3);
original code: https://github.com/GoSimpleLLC/nbvcxz
should be in seconds ig
i was joking is "2319561,499639162794" decades
why the comma there lmao
ask google
or is it fractional
don't know
google like this "seconds into years" and pasted this "7314969145262064"
k its fractional
so like 2 million decades
i thought for a sec 2 quintillion decades
Bukkit.broadcastMessage(effect.getType().toString());
Bukkit.broadcastMessage(Boolean.toString(effect.getType() == PotionEffectType.SLOW_DIGGING));
has output
yea
what were u expecting it to print
true if the type is slow_digging
Hi is there a way i can commit a method that is being run on a .jar plugin [no src]?
its from a friend plugin he does not have the src ..
he asked me to fix it for him but well .. its not fixable [bcz no src]so iam just gonna remove the method that is being called..
decompile time 😄
i did using recaf
but the entire plugin was broken
ik what libs he used but all broken ..
wdym by "broken"
My guess would be that it's a problem with mappings
trying to disable this method :
but
i tried with recaf
is there better alternative?
i used to decompile the class, import the jar and other dependencies
and then compile the class and paste it into the jar
probably the worst way but it worked
you could use patches nowdays
Use assembler
any good free ones?
Again Recaf does work and is the proper solution for one-off solutions but you need to use the assembler
The core fundemental problem of Recaf's userbase is that they shy away from using the obviously superior assembler
This leads to frighteningly stupid situations such as "How do I save with errors?"
Recaf is first and foremost a Java bytecode IDE and you should not expect to be able to use generic Java code to modify your jar. Instead, modifications need to be done via Java bytecode via the assembler which is much less error prone compared to decompiled java code.
Yank solution: Use Bukkit bootstrap to load the mixin framework and redirect that method call :>
That is like 100 times the effort for the same result
And I don't like the Spongeian Mixin implementation so there is a bit of a bias there
Is there another impl?
That works for Minecraft?
Understandable
But it truly is a effort, because you have to bootstrap load the jar every single time
There is classtransform and my micromixin but both are not 100% compatible with the spongeian impl
Which is extremely inconvenient
<sy vmkd,jkvmvövfbmiulgo,
but when i try to save it
just do it via the asembler
Use the assembler FFS
send me one ..
Recaf
there you go
Do I really need to teach you how to do it?
use recaf's assembler
Are you using Recaf 2X or Recaf 3X or Recaf 4X?
let me check
Although that is a stupid question as you most likely don't know
Yikes
There's a bit missing
It's all I had to use in the past
But a ModifyReturnValue or smth is really nice to have
But ig I could write a PR for that
But it seems a little dead
Although tbh I have an overreliance of @Overwrite given that I am the sole modder of the game that I mod
I can easily implement that myself
What's that game?
Galimulator
Yeah then you use the outdated 2X
Never got around to playing it but wanted to someday
where i can get the new one?
ik the thing is i dont have the src even my friend he does not have the src of the plugin he want me to fix ..
for his server
so the only way is only to remove this method from ever being called .
... Just give me the jar and I'll fix it for you then
What kind of plugin doesn't disclose src
Which is not premium
i can't ..
a dev made it for him like 3 years or smth
Can't even get spoon-fed
huh
Yeah I ultra spoonfed there
i can screenshare .. xD
Even showed how to use Recaf...
I guess that is the best approach
Deep throat spoon feed
i thought im seeing some cool gameplay now
but instead i got baited
Same
I could show you sometime. But there isn't much gameplay to it
@twin venture I'll reconnect with a diff discord client
Ah
lame
can I make an inner list inside a list in PluginConfiguration (List<List<String>>)
?
Ah now I understand what you mean
put your phone away
it would just be something like limits.max-blocks-changed.default
Already hard enough working as a firefighter and pulling a mangled corpse out of an burning car wreck
is this a correct way of declaring a new location?
Location loc = new Location(Bukkit.getServer().getWorlds().get(0), 0, 100, 0);
I think this is causing the error because the player wont teleport to the location
Can someone tell me why my MongoDB Atlas database is opening a lot of connections in a plugin which I'm making?
It's spamming a line which starts with this ([org.mongodb.driver.connection] Opened connection) in the console.
Let me know what else you'd want to know.
if you drive fast enough you wont feel the pain
More than enough
you ARE suicidal enough 
Top speed of 307 km/h
bro
glad to help
i was biking down a hill the other day around 35 mph and a mfing deer hopped out in the road
damn
I already was in a mental institution for attempted suicide lol
i think it just does that
f.e. your code
im fairly sure it does that
well then i take that back
dont do it
dont test it
Nah I wont
I got smth to live for atm
Well doesn't stop me from speeding but who cares
I connect the MongoDB URI database here
MongoClientURI mongoClientURI = new MongoClientURI(this.uriString);
MongoClient mongoClient = new MongoClient(mongoClientURI);
mongoClient.getDatabase(this.uriDatabase);
mongoDatabase = mongoClient.getDatabase(this.uriDatabase);
this.players = this.mongoDatabase.getCollection("players");
@hybrid spoke what's the fastest you have ever gone?
where is here
i dont have a drivers license
i live in berlin, there you dont want to have a car
Well, the code above is in the MongoManager class and it runs on enable
when does it spam
u went 190?
The mongo java client does that
it sends like the connect logs
not spamming it i think
but just in logs
It seems to spam when the game I'm working on starts
I don't know why though
Because it's only getting called on able
yeah my work is in bremen and when i go there for a week or two i wish i had one
wtf
maybe it reopens on post
what world are u living in
check if you somewhere frequently save shit
lmao 300 kmh with a bicycle or what
moto
I run this code - return this.players.getOrDefault(uniqueId, new PlayerData(uniqueId));.
When a player joins the server and this (new PlayerData(uniqueId)) is the code which runs, it gets all of the player's information and saves it, then when I access the PlayerData from the map again, it just accesses the player from the unique id and doesn't load the player information from the MongoDB database again.
Theoretical top speed of 314 km/h
My code wont teleport the player for some reason
Location loc = new Location(Bukkit.getWorld("world"), 6.5, 67, 17.5);
player.teleport(loc);
I'm sure its the teleport one cuz I debugged it with the greatest way possible (System.out.println)
tried giving it a TeleportCause, didnt work
Are you sure it's being called? What exactly did you debug?
@quasi flintis your car a BMW
its a long code but the method has 3 lines of code, I added a sysout after each line, and the last line (the teleport one) doesnt work. but the other 2 worked correctly, so it has to be either how I declared the location or the teleportation itself
that means you are getting a null error and ignoring it
Yeah if you're 100% sure it's being called then your world or player is probably null
never ever load data within a constructor
and at this point it would be easier to just ?paste your code
oh, does that cause a problem?
CompletableFutures like to swallow exceptions
async entity operation
- async teleports are generally not supported
and yeah CFs dont have any exception handling if not implemented explicit
How should I do it then?
What code do you want to see?
everything what has to do with it
can you explain like I'm new to programming (I am)
make a dao which speaks to your database
you ran code off the main thread which spigot (a single thread application) doesnt like
Ye
in the way a minecraft server works this can fuck things up so its "blocked"
With that car your desire to live is very low
oh, so thats why its not sending an error
no its not sending an error because the future swallows it like illusion already said
This is the problem
I don't know what has to do with it
If I did, then I wouldn't have the problem 😂
ah great my internet sucks
Bruh💀
everything that has anything to do with your database
You gotta go faster than your angel flies
?paste
doesnt law not apply to you then
So I red line that shit
mineballs
ew what the fuck
which gradle "scope" do I have to use for a dependency (in my case jetbrains annotations) so that they end up as <scope>provided</scope> in the generated pom.xml?
implementation = <scope>runtime</scope>
api = <scope>compile</scope>
compileOnlyApi = <scope>compile</scope>
compileOnly = doesn't appear in pom at all
there must be a way to make it appear as provided
why is gradle such a pain D:
@remote swallow do you know maybe?
compileOnly results in not appearing in pom at all
If I add jetbrains annotations with compileOnly, it doesn't show up in the pom at all, which leads to users of my dependency not being to resolve them
when I said that I would make a plug for the auto mine in 3 weeks, everyone was surprised, but the funny thing is that I have already done half
On maven publish it doesnt
so which one am I supposed to use?
api
By default atleast
it does
api results in "<scope>compile", which is obviously not correct
Oh, whats the right config
it is not. If someone would now want to use my library as dependency and shade it, they'd shade spigot-api and jetbrains annotations too, if I set them to "api"
compile means your library is responsilbe for providing it
yeah but my lib is not responsible for providing it
ok lynx let's do it the other way around - I want to use Jetbrains annotations and spigot-api, and I want othe rpeople to be able to shade my dependency. which scopes shall I use for spigot-api and jetbrains annotations in my own project?
yes, it's a library that uses spigot-api
your lib is not responsible for using it
but you want that person to transitively get the dependency you are not responsible for providing ?
yes
the closest I could get to that is using implementation in gradle, which results in a <scope>runtime
that is rather not smart.
like, there is a reason people flamed Vault for defining the bukkit api that way
why not?
you clash
its a smp
so I'm supposed to use compileOnly for the annotations and spigot, and then tell people to add jetbrains themselves if they wanna be able to resolve them?
if jetbrains annotations are not part of spigot (the ones you want to use) you'd be responsible for shading them if you want to provide them at runtime or to other libs
hmmm that sounds like a horrible solution
but ok I understand that it'll cause issues if I transitively provide spigot-api at least
do you maybe know how I can fix my other issue regarding creating a "fat javadoc" thing?
helpchat links 
gradle really makes me wanna kill myself over the simplest things
yeah it's faster, yeah it's more configurable, but some things that work automatically in maven are just so painful in gradle lol
yeah its good at that
e.g. stuff like "having javadocs of all modules"
Make sure to give it more ram and enable parallel and its even quicker
weren't you literally the one trying to aggregate javadocs before ?
or am I tripping
yes, we resolved that using the aggregate-javadoc plugin
but that plugin cannot be used if you use the java-library or java plugin
you define it on the root project
where else would I define it
so that I can use api for my subprojects to get a working uber pom
if I don't use java-library in my "parent" build.gradle, I cannot do that
I see where you are trying to go. That is a rather unfortunate situation, that the plugin prevents that
is there any other dependency "scope" I can use that would end up in my subprojects being <scope>compile ?
then I could get rid of java and java-library plugins on the "parent"
hmm lemme have a glimps at le plugin
obvious fast solution would be to move the "aggregation" to its own submodule
@eternal night my goal is the following:
I create a library, called "cesspool" because it's full shit.
It has different submodules, let's call them "papi-replacer", and "yaml-commands", and others.
I want people be able to independently use one of the submodules, e.g. they can only add yaml-commands with <scope>compile to their pom, and only use/shade that.
I however also want people to be able to say "yeah I use 20 modules from cesspool, I want to add the whole thing at once". So they can directly just add "cesspool" / (the parent pom) itself
so your root remains a pure root without build logic
yes I also thought about that, but how would that aggregate module be able to use api scope without also using the java or java-lib plugin?
it could
your root project would get the aggregate plugin
the submodule then gets java-lib and api(project(":terribleLibraryName"))
where terribleLIbraryName is the name of the "root" project? or what
I don't think I understand
no
huuu
of the other subproject
You could generate a pom that depends on all modules. But idk how one would be able to publish it
root
\-- papi-replacer
\-- aggregator
\---- build.gradle.kts (java-library, api(project(":papi-replacer"))
build.gradle.kts (not java-library, aggregate-plugin)
Hm ok thx I‘ll try that in 10 minutes
My cake isnt being baked help me
Add 20ml petrol
That's it?
Did you remember the 8 tons of nuclear waste?
Petrol cake is quite common in germany
Alr but petrol here expensive
I sent a recipe yesterday already
Daym
#general message
Could there be a possibility for a duplication bug if I do something like this:
BlockState possibleChest = block.getState();
block.setType(Material.AIR);
Bukkit.getScheduler().runTaskLater(plugin, () -> {
possibleChest.update(true);
}, 123)
yes
Well
not really
setType(AIR) would remove it
so you are good
I hope it closes all inventories, but it should yank the block inventory anyway
yea it does
@eternal night so my "aggregator" subproject is then the one that people would use to dependon if they wanna have all modules, right? But then how would I achieve it to be published under the "root project" name?
Well before I worry about that, maybe I should try it out in the first place lol
gradle doesn't really care where you put your shit
Okay, but I guess it would be a spigot issue otherwise, I think we will test it a bit anyhow
you can decide on the artefact name
how do you think regenerating a tree in minecraft until it is broken every 5 seconds is better than spawning trees in random places where it is empty every conditionally 30 seconds (spawn until it is filled with trees) it seems to me that beauty suffers, but performance is better
yea 👍
in 1 blockBreakEvent in another just task
like, you just call setArtifactId
ok, thanks! Lemme try
if I do that, the javadoc task fails completely because it cannot find any dependency anymore
oh that is fucking annoying
maybe I did something wrong?
I already thought about the last-resort solution, which wuold be to write a task that copies all submodule's sources into one src folder, then run javadoc over that, but I can't believe that there's no easier solution
I must be overseeing something obvious
lemme have another look
Idk if buildSrc could handle this
I forget what it does
ehm

the plugin should be collecting it too 
wdym?
the aggregate plugin
idk why it isn't collecting the classpath
I mean, I have never used it before 
but it should collect it
well, at least this works, easy peasy
ngl i didnt like copilot when i used it
question is, what open source software did copilot steal this from and how many licences did it violate
I'd say, two
its a gamble
I have no clue why the aggregate-javadoc plugin didn't work, but I'm not too sad about it, because tbh all those freefair plugins are documented like shit and I'm glad if I don't have to depend on them
Hi, i can't install brigadier, could someone tell what's wrong?
it also just kept giving me code i didnt want lol
got in the way more than it helped
use version 1.0.18
wtf is 0.2.6
Thx!
or 1.0.500 (??)
wtf is version 1.0.500 https://mvnrepository.com/artifact/com.mojang/brigadier/1.0.500
1.0.18?
1.1.8
oh
A Gradle User's diary, day 14
Maven: Everything works out of the box. It just works. No issues. mvn clean install takes 2 minutes though.
Gradle: After 2 weeks of continuuous studying, you have now managed to properly aggregate javadocs thanks to a random suggestion made by GitHub copilot. You are still not sure whether your spigot-api-dependency-conventions.build.gradle.kts should depend on your java-conventions.build.gradle.kts script, or not. Is it a bad idea to depend on a buildSrc script from your main build.gradle.kts in the first place? You don't know. You don't care. You only see BUILD SUCCESSFUL in 375ms and think "Thank god." - It only took you 2 weeks to save yourself 2 minutes of time

so real
It's nice that we can still enjoy the small successes thanks to Gradle. In a society as fast-paced as today's, we often don't appreciate the little things anymore. Thank yuo that you exist, Gradle, otherwise I would have been done with the whole project 3 weeks ago already.
Some boomer comedian?
anyway, thanks again! It looks I got everything working, except that my "uber javadocs" aren't using my javadocs config yet, but I guess I can fix that easily
never heard of them ¯_(ツ)_/¯
I just have started watching tutor and found that, what is this?
don't call him boomer comedian, this insults me as being a boomer
that's Plugin annotations
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
it's an annotation processor that lets you generate a plugin.yml file using annotations
oh
imho it's pretty over-engineered and pointless
the dude who made it properly only made it for fun / as exercise to learn how to write an annotation processor or something. I wouldn't use it
yeah i was abt to say why
have you guys seen how PlaceholderAPI loads expansion .jars lmao
It's a tutorial for "Velocity" not for Spigot so maybe there is other sense but i'm not sure because i didn't use it
huh? oh, I thought you talked about spigot's "plugin-annotations"
is velocity made by paper or is it an independent thing?
paper
imho this whole annotation-based "plugin.yml" is a pretty bad idea, doesn't it cause velocity having to init every single .class file it finds?
why didn't they go for a normal plugin.yml or velocity-plugin.yml file or sth
anyway, that seems to be the normal way of identifying the required information that a velocity plugin has to provide: https://docs.papermc.io/velocity/dev/api-basics
idk here is the tutorhttps://www.youtube.com/watch?v=4KUkweVHDAc&t=22s&ab_channel=TerrorByte
Welcome to the first video in the series for Velocity Plugin development! This series will go over the in's and out's of Velocity development, as well as hopefully teach you something in the process! Stay tuned for more videos, coming in the future
annotations are totally fine to provide information about already init'ed classes, but to do stuff like identifying the main class? damn, nah
oh ok then
yeah this wasn't meant as insult to the tutorial, it seems to be the only way to make velocity plugins
I just don't know how to write plugins "correctly" and want to learn something like norms
or something like this
So you want to write a plugin for velocity?
no
I am confused now lol
i just thought that maybe there are some norms of creating plugins using @Plugins when was asking about this..
Sorry i can't expound my thoughts properly..
In spigot, the entry point is ALWAYS plugin.yml file
oh ok
Hi, this code:
ChronoUnit.YEARS.between(Instant.ofEpochMilli(Long.MIN_VALUE), Instant.ofEpochMilli(time))
is throwing this problem:
Caused by: java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Years
Dates: Min is obv 1970
Dates 2: 1986-04-09T21:11:39.681Z
im getting the years to calculate the difference (with weeks and days works not with years)
uneducated guess: a year can have different lengths
there's leap years and there's normal years
hence you cannot know how many years X amounts of seconds is
Instant.ofEpochMilli(Long.MIN_VALUE)
probably that's why you can only use seconds, hours, days, etc but not months or years
the fuck
^
some years have 365 days and others have 366 and hence you cannot calculate how many years X seconds are
didn't know that
and also long.minvalue is negative
ur telling it to go before epoch
hundreds of years before epoch i think
is there any tutorials for brigadier?
fun fact: did you people know why the year 2000 was a leap year?
becauuse you can divide it by 4?
but yea, doubt it can compute that for you
then why was 1900 not a leap year?
i know why but just wanting the years i just don't care if there's a day more
given leap years exist
you can also divide 1900 through 4 and it was not a leap year
UHM?
So... then because you can divide it by 8
i have been trying to workout JTextArea and color style it
and 1900 you can't divide by 8
but idk how
a year is a leap year if you can divide it by 4 but cannot divide it by 100 unless it can also be divided by 400
oh
maybe there's even more rules, idk
Oops
so i should calculate it by myself (the year - 1970)
What is @.Subscribe?
Do you mean the forge event handler annot?
idk, show the full import
Well its usually an annot for event handling
Forge
that's forge's version of EventHandler
oh
forge bad, forge go away
Lol mye
anyone who knows?
javax.swing.JTextArea
Are you hater of HashMap and forge?
Even the Forge team knew Forge bad, FML = Fuck my life
watch ur language
When I open my store, the Inventory and the Items in it are in front of the panel, how can I stop them behind it?
It took me three days to do it. uwu 
how to register command using brigadier?
HashMap?
this ^
oh
player inventory / hotbar?
Why i don't have argument?..
so players don't see their own inventory when the panel opens
send link to that example code
thats a static import
?
a static import
i have a code that's remove the item and put them
https://paste.md-5.net/ulenaqulip.cs save them and put them
PreviewUtils: https://paste.md-5.net/uvakaravim.java
i made something like this for my system of preview but don't know if it can help (just make sure to save them and remove the items)
thank you <3
import STATIC
oh
hence why they are called static imports
lyfe hegg
just for the love of god don't wildcard static import
call static imports static imports so people know they're static -> lyvf hegg
Why do they need to be static? ._.
oh
a static import imports a static method.
a normal import can only import "classes"
but now your code gets more verbose
which isn't really that nice with brig
given that its already verbose as fuck
yeah
when did they write it? in the 80ies?
common mojang library
is there any diffs between gradle and maven?
I mean, completely different build system
yes
maven pom files take 2 minutes to write and 2 minutes to compile
gradle build files take 2 weeks to write and 2 seconds to compile
oh
I only recently started to use gradle and I hate it and love it at the same time
if you hate yourself, start out with gradle
aren't those the best relationships 🥰
if you just want to get stuff working, use maven
and switch to gradle if you really know why it's better
gradle is like a boegng 747 with 1948 switches while maven is a car
wanna get from A to B? Well usually the car is faster
if you just write a normal spigot plugin imho maven is much easier, unless you already know gradle
I mean, issue is with minecraft, we are getting so complex in terms of like, e.g. nms access, we are pretty much flying to the moon
well not really, currently all wee need is import the moj mapped dependency and then run a remapper once
we're not limited to spigot anymore
yeah ok and run buildtools
yeah that is true
mInEsToM
have fun implementing a working server in minestom
as useful as folia, a tiny fraction of the servers have the capacity to use it
hi
we speak multipaper here
I mean, same there
minestom doesnt has vanilla features
so little of the userbase can use it
spigot is better
that it just, it fullfils a very good niche, but it is niche
useful for huge maps or big player counts
and a very competent developer team
?
I have a box pvp server. I want a script to return the resources that the person built after time
its a single person for the most part
That has to be competent
and is
I mean
i need script
RemoveBlocksAfterPlaced
Is there any really useful tutorials about brigadier?
you are pretty competent if your software allows people to have thousands of players on 1 map
yes
i dont remember the record tho
Not really
I am saying, to make use of minestom you'll need people that are good enough to work with it and you need the time to invest into it
No hate against minestom but i could also write a game that can handle 10k players - if the server doesnt do anything
if you want anything more complex
at least adventure support 
SA:MP uses 8 megs of ram idle 😎
and like 12 with 1 player
sorry, i dont speak Audience
Right, my §x§a§a§a§a§a§abad
people always forget that this is the legacy workaround and was never meant to be used in the future 🥲
I am so excited for string templates to be stable in whatever future jdk release
this format was only meant to allow people to use hex colors in plugins that were made before hex colors were a thing
nothing beats my placeholders
check out mine
no no i mean my whole system
We can all live in the beautiful world of sendMessage(Component) being invoked by sendMessage(LL."§cLook i am using legacy strings, but the api doesn'T have to jump hoops for me")
should i be using plugin messages when ive got a bukkitrunnable running
in a perfect world, people would contribute API upstream and would only use paper for performance enhancements and stuff. but unfortunately, people don't wanna sign a CLA and md won't accept pull requests without a CLA
LiniLessage
😭 i did that once

in a perfect world, mojang wouldn't obfuscate their server .jar
I mean, I'd be surprised if spigot even had the man power to handle that. We barely survive and have a larger team on it
omg yes mojang mapping at runtime
mappings dont fix the damage
chefs kiss
i prefer bigger jars
is there a reason why paper doesn't by default use mojang maps at runtime?
it breaks everything ?
it breaks what?
nms plugins ?
plugins that reobfuscate @tender shard
yes but it does that anyway sometimes
yeah but I thought paper's idea was to fuck backwards compat and start a hard fork someday. I mean, if they ever really do that, then that'd be a perfect time to go for moj maps at runtime
especially given what people tend to use NMS for, things like just sending packets
oh for sure we are gonna have our eyes on that
netty isnt real
thought it was a soft spoon?
reflectionutils 🧌
I never understood the 1.17 announcement md wrote
yea soft spoon 
I mean, we do distribute a paperclip jar with mojang mappings already
md was like "we'll make the remap plugin to allow "transitioning" - to what?
currently spigot uses a weird fucked up mix of own class names but obf method names
who actually runs the papermc website?
john papermc
JTextArea
HTMLDocument
how do i color each word!?
I mean, there must be one person who registered the domain, one who is the contractor for the servers it runs on, etc
use Jtextpane
that's what I meant
ah
i just searched the same thing today
because the website is still missing a site imprint and data privacy notice, I think I've mentioned that 2 years ago already
some day there'll be a jerk who's like "uuugh where is the impressum? where's the datenschutzerklärung?!?!?!" and he'll go to a lawyer and they'll send an annoying letter to whoever runs that website
hey alex translate "datenschutzerklärung" to english
data privacy policy
time to grab a template online 
but wait, hear me out
erecht24.de has like a "monthly subscription" for premiu, I think it's like 20€ or something. But with that you can get a both english and german version, and it's totally fine. So yeah just get that monthy sub once, use their generated text, then cancel the sub again
derfz i have a jira issue for you to fix
the whole DSGVO laws are ridiculous but spending 20€ once is definitely better than getting an abmahnung about 500€ and then having to go to lawyer who costs another 500€ later on
ok
so how do i color each word!?
fun fact: Microsofts german version of the privacy police for young people is missing a keine / not in a sentences, saying the complete opposite of what the sentence should say.
fr? lol
send it pls
you should totally fix this class loader issue https://hub.spigotmc.org/jira/browse/SPIGOT-6569
the solution for that would be fucking horrifying
https://privacy.microsoft.com/de-de/young-people
Under "Werbung" "Wenn wir wissen, dass du unter 18 Jahre bist, zeigen wir dir personalisierten Anzeigen an."
perfect for spigot

I cannot wait to ditch spigot classloading down the line
funny lol
AGB-Kontrolle be like: 😦
paper plugins and their isolation 
what does it do? not allow plugin classloaders to access other plugin classes?
what if, for whatever reason, two plugins would soft-depend on each other
i just wanna libraries feature hibernate man
that is called a cyclic dependency
hold on ima look it up
if it's just a "soft-dependency", it should silently get ignored though, right?
💀 i have struggling for hours to color each word in the text
a "soft-depend" is more like a "if possible, I'd like to be loaded after X"
yea
emphasis on the "if possible"
and both define that
what loads first then
the one that first got returned by listFiles()
A would want B but B would want A
makes 0 sense
if a plugin gets "fucked" by not being allowed first/or last, then it shouldnt declare it as SOFT dependency?
but it still isn't the wanted outcome ?
plugin A could not use plugin B, eventho B technically exists
there is 0 point in cyclic dependencies. They just indicate bad design choices
abstract needed logic out and fix it
¯_(ツ)_/¯
@near mason ey gimme a hint
that is true, but imho it's not the server's job to fix bad plugin choices
quick
right, which is why the server just errors out in paper iirc
otherwise windows shouldn't allow to install avira
lol i have hard dependencies
just checking if plugin is loaded
💀
hmmm idk I think paper is already doing so many things breaking spigot compatibility that I wonder why they're still fetching ANYTHING from upstream
what's the issues that still needs resolving before the hard-fork can happen?
all the things md_5 doesn't do publically
e.g. updating material enum each new release
huh
generation of the types representing registries
generating of BlockData types
basically, all of the shit generated and updated during an update cycle
I don't think I can follow
Like, when 1.20 rolls around and mojang adds 10 new blocks with blockdata
does md has some secret scripts on his PC that he runs on every update, and paper doesn't have those, or what o0
those things need to be generated
I mean, for block data at least yea, those are generated iirc
at least the javadocs look like it
it would be smart to anyway
but why can't paper also automatically generate those?
can both ensure you didn't miss anything and take time off your hand
we can
it just takes time to code that up
which hasn't happend yet
because we haven't dedicated time to that yet ?
oh ok
but like, e.g. https://github.com/PaperMC/mache
recently finished
yeah maybe you should do that then if you wanna get rid of depending on spigot
allows us to have a fully compilable server source code without spigot
so we can base our patches on that instead of spigot
I however think that creating a hard fork is a very bad idea, for different reasons
what about a medium knife
Would you like to know why I think a hard fork is a bad idea, or do you not care about my opinion anyway lol?
I mean, the same arguments have been brought up so often 😂
if you have something groundbreaking, sure
well i have no clue which arguments were made in the past, as you know I am banned from paper's discord
unban alex
With it, paper basically says, we want spigot to die
does the API need major revision in a lot of poorly aged areas ? definitely
Has spigot slowly started getting into that (see enum to reg) yes
Can you recommend a database where I can quickly store Java classes?
I mean, can go mogodb and json route
mogodb

Reasons (+) hard fork are obvious, so I concentrate on reasons (-) hardfork:
Where would paper users get plugins from? SpigotMC does not allow plugins that only work on paper.
Hangar?
Nobody uses hangar. Even extremely popular plugins like Essentials only have like, what? 5 thousand downloads on hangar?
Hangar does also not allow paid plugins. So all the paid plugins will still require to remain spigot-compatible.
Third party marketplaces? Well, I've once uploaded something to mcmarket or something. I sold it exactly once, while I got >1000 sales on spigotMC for the same plugin. So yeah, nobody cares about that either.
Converting data to JSON is hard
I mean, we'd prefer hangar obviously
modrinth is expanding into the plugin space too
I don't wanna say that hangar is bad, but let's be honest, nobody googles "download essentialsx hangar"
spigot > modrinth > hangar > the rest
what your search engine returns is obviously dependant on the current state lol
I'm getting a lot of errors.
this is using google in porn mode
I mean, yea obviously rn spigot is the more used market place ?
I don't see the point
naturally that is something we have to change
I've been going until page 4 and still there was no hangar link
via good integration and collaboration
I wouldn't trust paper to create a non toxic environment
that shit is still in open beta
For developers
I'd give it a bit of time
and I think this cannot be changed unless hangar allows paid plugins
And users alike
I mean, if we ever have the balls to allow paid stuff remains to be seen
how is hangar gonna handle that
idk, not deep into that
it isn't settled ground
yea
user to user or user to hangar to user
that'd first of all require a proper site imprint and data privacy policy on the website
I mean, I'd prefer hangar as an actual middle man
again, the shit that comes with being an actual entity that facillitates this crap is a lot
all of which is still missing
which is why, we aren't forked yet
that is not true, everyone who runs the whole paper website automatically already is a GbR by law
Can someone try to help me to see why my PlayerMoveEvent is using this much of my server?
Event: c.l.h.l.PlayerMoveListener (PlayerMoveEvent)count(323) total(78.36% 12.703s, 133.72% of tick)
yes that's ofc true but I thought there wouldn't be only one person who runs everything
idk it's hard to find out, since you know, there's no site imprint or anything lol
I mean, there is no legal entity last I recalled
its a bunch of private individuals hosting stuff that looks like an org
"a bunch of private individuals that looks like an org" is basically a GbR
True I guess, pretty grey area last I recall
especially in the open source community, who constitutes a contributor and who is actually involved enough to form a GbR is out there
If I was the „main paper admin“ i‘d just register an UG with 1€ liability
the legal side of things still has to play out ¯_(ツ)_/¯
spigot has that, I give them that
not too surprising tho given md_5's knowhow
no lawyer staff?
yeah that's what my point is, imho you guys should probably figure that out before some random person decides to send a cease and desist letter to whoever runs thew hole stuff
seems like a paper L
there's so many idiots on the internet, sooner later someone will have nothing to do and do shit
what mode
Incognito mode
tf
Ctrl Shift N
how do i make a bungeecord scheduler that runs asynchronously every 10 seconds
can i run every tick for bungeecord or would that be too heavy on the server
Depends on whether you calculate pi up to the 7 billionth decimal, or not
ok cool
cant seem to find online either
This sounds like #help-server
wait, is the 7 billionth decimal of pi known?
i want to make y velocity being affected by croshair pitch wile flying, but there is the problem i cant just change y velocity without affecting x and z
witch causes troubles. What would i do
Vector#add
add what? it just slow down player even if i add 0,0,0
i have to recalculate velocity wich player would have in next tick or something idk
why is the server not sending a plugin message entirely if the target is offline
im just sending the target uuid data so them being online wouldnt matter
Is it possible to create an explosion that behaves like TNT, but doesn't harm entities?
You could just cancel the damage from the tnt
summon a TNT entity, apply a custom PDC tag to it, then listen to EntityDamageByEntityEvent and cancel it if the damager has your custom PDC tag
just use World createExplosion and cancel damage on players
you can set teh entity which created the explosion, or null
@round finch did you figured it out?
nope
Does anyone knows how to turn java code into a .jar file??
For a plugin
That i can then use for my spigot server
Depends on how your project is setup
Did you just copy the code from somewhere?
No someone sent it so me and asked me to do but I don’t have access to pc atm so do u know how to do it on a iPad?

