#help-development

1 messages · Page 702 of 1

chrome beacon
#

Yeah

tender shard
#

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

grizzled oasis
#

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

  1. 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)
  2. Getting the password length without the salt and making it random so it could be a year or Minutes
  3. saving the password and estimating the time inside with the password so the real password time is estimated and not the hashed one
hybrid spoke
#

so do you want to crack a password or just estimate how long you would need

#

and for what purpose

grizzled oasis
#

as i said for "hacking" someone else bank account to steal their money

echo basalt
#

Is it roleplay or nefarious

grizzled oasis
hybrid spoke
#

oh i thought of a real bank lmao

glossy venture
#

sha256 cracking is like impossible if you dont have a quantum computer though

grizzled oasis
glossy venture
#

unless you get very lucky

grizzled oasis
hybrid spoke
#

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

glossy venture
#

wait tf u want to do exactly

grizzled oasis
glossy venture
#

estimate the time to crack a sha256 passsord?

hybrid spoke
#

probably the time to brute force a password

grizzled oasis
grizzled oasis
#

im gonna do a bank heist in minecraft

glossy venture
#

but like you want the time

hybrid spoke
#

to know the exact cracking time you would need the exact password

grizzled oasis
hybrid spoke
#

well "exact"

grizzled oasis
pseudo hazel
#

depends on how fast you are

grizzled oasis
hushed spindle
#

how fast you can type to brute force a password lmao duh

pseudo hazel
#

faster computers will brute force it faster

hybrid spoke
#

it wont change anyways

#

crack the password yourself and store how many tries it took LUL

grizzled oasis
pseudo hazel
#

if this is just for a minigame come up with something

grizzled oasis
glossy venture
#

damn

#

theres a website for this

grizzled oasis
#

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)

glad prawn
glossy venture
#

that has to be in a lookup table somewhere

pseudo hazel
#

too bad its an invalid password almost everywhere

grizzled oasis
hybrid spoke
#

rockme_amadeus

glossy venture
hybrid spoke
glossy venture
#

0passw0rds!

hybrid spoke
glossy venture
#

cracked it using my quantum computer

hybrid spoke
#

just asking a general question, how do i change now my password on my bank account

glossy venture
#

i did it for you

#

dw

hybrid spoke
#

thanks what is it now

echo basalt
#

The "time to crack" is usually just a time to bruteforce

glossy venture
#

1passw0rd!

hushed spindle
#

if you just repeat the same word over and over it gets into uncrackable territory pretty quick too like penispenispenispenispenis

glossy venture
hushed spindle
#

🗿

glossy venture
#

but if you do some lastpass type shit thats basically uncrackable

#

($!+#81?#+$!ajjsheiwnzhd

hybrid spoke
echo basalt
#

Probably just assign some "difficulty" rating to each character

#

And do a weird exponential formula

glossy venture
#

theres like some entropy thing right

#

theres an app which calculates the entropy for ur password

grizzled oasis
#

guys who wants 10 millions, i robed a bank by your recommendation in minecraft

hybrid spoke
echo basalt
#

yeye

glossy venture
grizzled oasis
grizzled oasis
glossy venture
#

ez

small current
glossy venture
#

false

grizzled oasis
#

manage to do it "uwu = 0" but other password much longer

#

like "!()!UWIUWDHUJWHUJF" 7 Bilions of years

glossy venture
#

yeah

grizzled oasis
#

so it works

glossy venture
#

what works

#

the website

grizzled oasis
#

no the in-game password estimate

glossy venture
#

ah

#

nice

grizzled oasis
#

something if the password is 0 i should inflate it but how much is 3/4 minutes as a long value?

glossy venture
#

if ur representing it in seconds 3 * 60

#

ms 1000 * that

grizzled oasis
#

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

glossy venture
#

should be in seconds ig

grizzled oasis
#

yes its written as a comment

#

so it should be 3 * 60

glossy venture
#

yeah

#

for 3 minutss

grizzled oasis
glossy venture
#

why the comma there lmao

grizzled oasis
glossy venture
#

or is it fractional

grizzled oasis
#

google like this "seconds into years" and pasted this "7314969145262064"

glossy venture
#

k its fractional

#

so like 2 million decades

#

i thought for a sec 2 quintillion decades

novel mauve
#
Bukkit.broadcastMessage(effect.getType().toString());
Bukkit.broadcastMessage(Boolean.toString(effect.getType() == PotionEffectType.SLOW_DIGGING));

has output

north nova
#

yea

novel mauve
#

why?

#

slow_digging and slow_digging?

north nova
#

what were u expecting it to print

novel mauve
#

true if the type is slow_digging

north nova
#

use .equals

#

instead of ==

twin venture
#

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..

glad prawn
#

decompile time 😄

twin venture
#

i did using recaf

#

but the entire plugin was broken

#

ik what libs he used but all broken ..

smoky anchor
#

wdym by "broken"

twin venture
#

was broken

smoky anchor
#

My guess would be that it's a problem with mappings

twin venture
#

trying to disable this method :
but

#

i tried with recaf

#

is there better alternative?

lilac dagger
#

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

quiet ice
twin venture
quiet ice
#

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.

quasi flint
#

Yank solution: Use Bukkit bootstrap to load the mixin framework and redirect that method call :>

quiet ice
#

That is like 100 times the effort for the same result

quasi flint
#

It absolutely is

#

But

#

It's a solution uwu

lilac dagger
#

i don't know

#

i don't usually work with compiled classed

quiet ice
#

And I don't like the Spongeian Mixin implementation so there is a bit of a bias there

quasi flint
#

That works for Minecraft?

quasi flint
#

But it truly is a effort, because you have to bootstrap load the jar every single time

quiet ice
#

There is classtransform and my micromixin but both are not 100% compatible with the spongeian impl

quasi flint
#

Which is extremely inconvenient

twin venture
#

i need a simpler solution ..

#

i just want to stop this method ..

quiet ice
#

<sy vmkd,jkvmvövfbmiulgo,

twin venture
#

but when i try to save it

lilac dagger
#

just do it via the asembler

quiet ice
#

Use the assembler FFS

twin venture
quiet ice
#

Recaf

lilac dagger
#

there you go

quiet ice
#

Do I really need to teach you how to do it?

lilac dagger
#

use recaf's assembler

quiet ice
#

Are you using Recaf 2X or Recaf 3X or Recaf 4X?

twin venture
#

let me check

quiet ice
#

Although that is a stupid question as you most likely don't know

quiet ice
#

It's all I had to use in the past

quasi flint
#

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

quiet ice
#

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

twin venture
#

i use this

quiet ice
#

Galimulator

quiet ice
quasi flint
twin venture
quiet ice
#

It's not a game that is really meant to be played tbh

twin venture
#

for his server

#

so the only way is only to remove this method from ever being called .

quiet ice
#

... Just give me the jar and I'll fix it for you then

quasi flint
#

Which is not premium

twin venture
quasi flint
#

Bruh

twin venture
quasi flint
#

Can't even get spoon-fed

quasi flint
quiet ice
twin venture
#

i can screenshare .. xD

quiet ice
#

Even showed how to use Recaf...

quiet ice
quasi flint
hybrid spoke
#

but instead i got baited

quasi flint
quiet ice
#

I could show you sometime. But there isn't much gameplay to it

hybrid spoke
#

do it

#

idc how unfinished it is, a showcase is always cool

quiet ice
#

@twin venture I'll reconnect with a diff discord client

quasi flint
#

Haxor!?!?;?;?

#

(Irony)

quiet ice
#

Nah, I'm connected to Firefox right now

#

But Firefox isn't working good

quasi flint
#

Ah

hybrid spoke
#

lame

quasi flint
#

Fire fox isn't foxing

#

Please someone kill me, I don't wanna drive anymore

mellow edge
#

can I make an inner list inside a list in PluginConfiguration (List<List<String>>)

quasi flint
#

Ah now I understand what you mean

mellow edge
#

and insert it in with config.add()

#

like with worldedit config

hybrid spoke
quasi flint
#

I am on break

#

Currently parked

#

I ain't suicidal enough to drive with my phone

opal carbon
quasi flint
solemn meteor
#

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

proven jay
#

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.

hybrid spoke
quasi flint
#

But got a wife to live for

#

Well without her

hybrid spoke
#

take her with you

#

problem solved

quasi flint
#

Fucking hell

#

Well I suppose my bike goes fast enough

hybrid spoke
#

see, see

#

you are thinking about it

quasi flint
#

More than enough

hybrid spoke
#

you ARE suicidal enough NM_HappyHug

quasi flint
#

Top speed of 307 km/h

quaint mantle
#

bro

hybrid spoke
#

glad to help

quaint mantle
#

i was biking down a hill the other day around 35 mph and a mfing deer hopped out in the road

quasi flint
quaint mantle
#

i think it just does that

quaint mantle
#

im fairly sure it does that

hybrid spoke
#

dont do it

#

dont test it

quasi flint
#

When your wifie is a paramedic

#

You got bad cards to play

hybrid spoke
#

i repeat

#

dont consider it

quasi flint
#

Nah I wont

#

I got smth to live for atm

#

Well doesn't stop me from speeding but who cares

proven jay
# hybrid spoke f.e. your code

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");
quaint mantle
#

thats normallllll

#

aaaaaaaaaaa

quasi flint
#

@hybrid spoke what's the fastest you have ever gone?

hybrid spoke
quasi flint
#

Ah well

#

Then I take my question back

#

And say dont drive as I do

hybrid spoke
#

i live in berlin, there you dont want to have a car

proven jay
quasi flint
#

I live in another part of rural germany

#

There you want a car

quaint mantle
#

damn

quaint mantle
#

u went 190?

quaint mantle
#

it sends like the connect logs

#

not spamming it i think

#

but just in logs

proven jay
#

I don't know why though

#

Because it's only getting called on able

hybrid spoke
quasi flint
#

On my bike

#

My car goes faster

quaint mantle
#

wtf

hybrid spoke
quaint mantle
#

what world are u living in

hybrid spoke
#

check if you somewhere frequently save shit

quaint mantle
#

oh damn

#

i am thinking of a dif kind of bike

#

thts crazy

#

i was like n

hybrid spoke
#

lmao 300 kmh with a bicycle or what

quaint mantle
#

moto

quasi flint
#

Bmw 1000rr

#

That thing does fast

proven jay
# hybrid spoke check if you somewhere frequently save shit

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.

quasi flint
quaint mantle
#

damn

#

fastest i went is 95

#

i only had my licence for 1 months tho

solemn meteor
#

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

hasty prawn
#

Are you sure it's being called? What exactly did you debug?

onyx fjord
#

@quasi flintis your car a BMW

solemn meteor
eternal oxide
#

that means you are getting a null error and ignoring it

hasty prawn
#

Yeah if you're 100% sure it's being called then your world or player is probably null

echo basalt
#

or

#

running in a future

hybrid spoke
#

and at this point it would be easier to just ?paste your code

solemn meteor
echo basalt
#

CompletableFutures like to swallow exceptions

hybrid spoke
echo basalt
#
  • async teleports are generally not supported
hybrid spoke
#

and yeah CFs dont have any exception handling if not implemented explicit

proven jay
proven jay
hybrid spoke
solemn meteor
hybrid spoke
hybrid spoke
quasi flint
hybrid spoke
#

in the way a minecraft server works this can fuck things up so its "blocked"

quasi flint
#

With that car your desire to live is very low

solemn meteor
hybrid spoke
proven jay
#

I don't know what has to do with it

#

If I did, then I wouldn't have the problem 😂

hybrid spoke
#

ah great my internet sucks

quasi flint
hybrid spoke
quasi flint
#

You gotta go faster than your angel flies

hybrid spoke
#

?paste

undone axleBOT
onyx fjord
quasi flint
#

Well

#

The funny sign says I can go as fast as I want

quasi flint
#

So I red line that shit

echo basalt
#

ew what the fuck

tender shard
#

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?

remote swallow
#

Provided is compileOnly

#

For annotations a compile only and a annotationProcessor

tender shard
#

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

eternal night
#

compileOnly is not api

#

you are using the wrong configuration

remote swallow
#

Oh transitive deps

#

Yeah gradle doesnt really add dependencies to pom

upper hazel
#

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

eternal night
#

it does

#

it just offers a lot more fine grained control over it

remote swallow
#

On maven publish it doesnt

tender shard
eternal night
#

api

remote swallow
#

By default atleast

eternal night
#

provided by the java-library plugin

#

over java

eternal night
tender shard
#

api results in "<scope>compile", which is obviously not correct

eternal night
#

you just use the wrong configuration

#

it is ?

remote swallow
#

Oh, whats the right config

tender shard
#

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"

eternal night
#

compile means your library is responsilbe for providing it

tender shard
#

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?

eternal night
#

So, your lib uses third party libs

#

someone else depends on your lib

tender shard
#

yes, it's a library that uses spigot-api

eternal night
#

your lib is not responsible for using it

#

but you want that person to transitively get the dependency you are not responsible for providing ?

tender shard
#

yes

#

the closest I could get to that is using implementation in gradle, which results in a <scope>runtime

eternal night
#

that is rather not smart.

#

like, there is a reason people flamed Vault for defining the bukkit api that way

tender shard
#

why not?

eternal night
#

you clash

jagged thicket
tender shard
#

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?

eternal night
#

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

tender shard
#

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?

eternal night
#

helpchat links dedeath

tender shard
#

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

hasty prawn
#

yeah its good at that

tender shard
#

e.g. stuff like "having javadocs of all modules"

remote swallow
#

Make sure to give it more ram and enable parallel and its even quicker

eternal night
#

weren't you literally the one trying to aggregate javadocs before ?

#

or am I tripping

tender shard
#

yes, we resolved that using the aggregate-javadoc plugin

eternal night
#

wasn't there a windows only issue

#

or some shit

tender shard
#

but that plugin cannot be used if you use the java-library or java plugin

hasty prawn
#

what

#

so its useless

eternal night
#

that sounds wrong

tender shard
#

> The aggregate-javadoc plugin should not be used on a java project

eternal night
#

you define it on the root project

tender shard
#

where else would I define it

eternal night
#

no, I am saying, your root project is the aggregator

#

why is it a java-library

tender shard
#

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

eternal night
#

skully I see where you are trying to go. That is a rather unfortunate situation, that the plugin prevents that

tender shard
#

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"

eternal night
#

hmm lemme have a glimps at le plugin

#

obvious fast solution would be to move the "aggregation" to its own submodule

tender shard
#

@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

eternal night
#

so your root remains a pure root without build logic

tender shard
eternal night
#

it could

#

your root project would get the aggregate plugin

#

the submodule then gets java-lib and api(project(":terribleLibraryName"))

tender shard
#

where terribleLIbraryName is the name of the "root" project? or what

#

I don't think I understand

eternal night
#

no

tender shard
#

huuu

eternal night
#

of the other subproject

quiet ice
#

You could generate a pom that depends on all modules. But idk how one would be able to publish it

eternal night
#
root
\-- papi-replacer
\-- aggregator
\---- build.gradle.kts (java-library, api(project(":papi-replacer"))
build.gradle.kts (not java-library, aggregate-plugin)
tender shard
chilly hearth
#

My cake isnt being baked help me

tender shard
#

Add 20ml petrol

chilly hearth
#

That's it?

hasty prawn
#

Did you remember the 8 tons of nuclear waste?

tender shard
#

Petrol cake is quite common in germany

chilly hearth
#

Alr but petrol here expensive

tender shard
#

I sent a recipe yesterday already

chilly hearth
#

Daym

tender shard
#

#general message

neon storm
#

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)
eternal night
#

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

#

NODDERS yea it does

tender shard
#

@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

eternal night
#

gradle doesn't really care where you put your shit

neon storm
eternal night
#

you can decide on the artefact name

upper hazel
#

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

upper hazel
#

in 1 blockBreakEvent in another just task

eternal night
tender shard
#

ok, thanks! Lemme try

tender shard
eternal night
#

oh that is fucking annoying

tender shard
#

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

eternal night
#

lemme have another look

quaint mantle
#

I forget what it does

eternal night
#

ehm

tender shard
#

DUUUDE

#

github copilot

eternal night
tender shard
#

haha

eternal night
#

the plugin should be collecting it too HMM

tender shard
#

wdym?

eternal night
#

the aggregate plugin

#

idk why it isn't collecting the classpath

#

I mean, I have never used it before KEKW

#

but it should collect it

#

well, at least this works, easy peasy

opal carbon
#

ngl i didnt like copilot when i used it

eternal night
#

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

tender shard
#

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

kindred sentinel
#

Hi, i can't install brigadier, could someone tell what's wrong?

opal carbon
#

got in the way more than it helped

eternal night
#

wtf is 0.2.6

kindred sentinel
#

Thx!

tender shard
#

or 1.0.500 (??)

eternal night
tender shard
eternal night
#

not mavenrepos

#

1.1.8 is the one used by the latest snapshot

opal carbon
#

1.0.18?

eternal night
#

1.1.8

opal carbon
#

oh

tender shard
#

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

tender shard
#

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.

eternal night
#

Obviously, all of this will be useless with the next major revision

#

So

#

Phew

tender shard
#

kinda reminds me of "Bodo Wartke's Reisetagebuch"

#

lynx do you know bodo wartke

eternal night
#

Some boomer comedian?

tender shard
#

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

tender shard
#

well

eternal night
#

never heard of them ¯_(ツ)_/¯

kindred sentinel
#

I just have started watching tutor and found that, what is this?

tender shard
#

don't call him boomer comedian, this insults me as being a boomer

tender shard
#

it's an annotation processor that lets you generate a plugin.yml file using annotations

kindred sentinel
#

oh

tender shard
#

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

opal carbon
#

yeah i was abt to say why

tender shard
#

have you guys seen how PlaceholderAPI loads expansion .jars lmao

kindred sentinel
tender shard
#

is velocity made by paper or is it an independent thing?

tender shard
#

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

tender shard
kindred sentinel
# tender shard imho this whole annotation-based "plugin.yml" is a pretty bad idea, doesn't it c...

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

▶ Play video
tender shard
#

annotations are totally fine to provide information about already init'ed classes, but to do stuff like identifying the main class? damn, nah

kindred sentinel
#

oh ok then

tender shard
#

yeah this wasn't meant as insult to the tutorial, it seems to be the only way to make velocity plugins

kindred sentinel
#

I just don't know how to write plugins "correctly" and want to learn something like norms

#

or something like this

tender shard
#

So you want to write a plugin for velocity?

kindred sentinel
#

no

tender shard
#

I am confused now lol

kindred sentinel
#

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..

tender shard
kindred sentinel
#

oh ok

grizzled oasis
#

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)

tender shard
#

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

eternal night
#

Instant.ofEpochMilli(Long.MIN_VALUE)

tender shard
#

probably that's why you can only use seconds, hours, days, etc but not months or years

eternal night
#

the fuck

opal carbon
#

yeah wtf

#

if you want the epoch instant

#

Instant.EPOCH

eternal night
#

^

tender shard
#

some years have 365 days and others have 366 and hence you cannot calculate how many years X seconds are

grizzled oasis
opal carbon
#

ur telling it to go before epoch

#

hundreds of years before epoch i think

grizzled oasis
#

same

#

even changing it same error

kindred sentinel
#

is there any tutorials for brigadier?

tender shard
#

fun fact: did you people know why the year 2000 was a leap year?

kindred sentinel
eternal night
#

but yea, doubt it can compute that for you

tender shard
grizzled oasis
eternal night
#

given leap years exist

tender shard
#

you can also divide 1900 through 4 and it was not a leap year

clear panther
#

UHM?

kindred sentinel
round finch
#

i have been trying to workout JTextArea and color style it

kindred sentinel
#

and 1900 you can't divide by 8

round finch
#

but idk how

tender shard
#

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

kindred sentinel
#

oh

tender shard
#

maybe there's even more rules, idk

kindred sentinel
#

Oops

grizzled oasis
#

so i should calculate it by myself (the year - 1970)

kindred sentinel
#

What is @.Subscribe?

ivory sleet
#

Do you mean the forge event handler annot?

kindred sentinel
#

maybe..?

#

yo

tender shard
ivory sleet
#

Well its usually an annot for event handling

kindred sentinel
#

i just saw it in github

ivory sleet
#

Forge

tender shard
#

that's forge's version of EventHandler

kindred sentinel
#

oh

ivory sleet
#

Dont need to show me more lol

#

FML gives it away

tender shard
#

forge bad, forge go away

ivory sleet
#

Lol mye

round finch
round finch
#

javax.swing.JTextArea

kindred sentinel
hasty prawn
#

Even the Forge team knew Forge bad, FML = Fuck my life

eternal valve
#

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?

echo basalt
#

fun

#

uhh prob core shaders

#

or

#

doing hacky stuff

eternal valve
kindred sentinel
#

how to register command using brigadier?

tender shard
kindred sentinel
#

oh

eternal valve
#

How can I hide him?

kindred sentinel
#

Why i don't have argument?..

eternal valve
tender shard
eternal night
kindred sentinel
kindred sentinel
eternal night
#

a static import

grizzled oasis
eternal night
#

RequiredArgumentBuilder.argument

#

but statically imported

tender shard
#

oh too late

kindred sentinel
tender shard
#

import STATIC

kindred sentinel
#

oh

eternal night
#

hence why they are called static imports

tender shard
#

lyfe hegg

eternal night
#

just for the love of god don't wildcard static import

tender shard
#

call static imports static imports so people know they're static -> lyvf hegg

kindred sentinel
#

Why do they need to be static? ._.

eternal night
#

they don't

#

you can just call RequiredArgumentBuilder.argument(...)

kindred sentinel
#

oh

tender shard
#

a static import imports a static method.

a normal import can only import "classes"

eternal night
#

but now your code gets more verbose

#

which isn't really that nice with brig

#

given that its already verbose as fuck

tender shard
#

what the fucking chicken wing

#

brigadier uses gradle 4?

kindred sentinel
#

yeah

tender shard
#

when did they write it? in the 80ies?

eternal night
#

common mojang library

kindred sentinel
eternal night
#

iirc initial commit was 2014 ?

#

I mean, if it works it works

kindred sentinel
#

is there any diffs between gradle and maven?

eternal night
#

I mean, completely different build system

kindred sentinel
#

no i mean in use

#

i mean oh...

eternal night
#

well, in one you run mvn package

#

in the other you run ./gradlew build

tender shard
#

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

kindred sentinel
#

oh

tender shard
#

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

eternal night
#

aren't those the best relationships 🥰

tender shard
#

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

kindred sentinel
#

wanna get from moon to mars..

#

use gradle

tender shard
#

if you just write a normal spigot plugin imho maven is much easier, unless you already know gradle

eternal night
#

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

tender shard
#

well not really, currently all wee need is import the moj mapped dependency and then run a remapper once

echo basalt
#

we're not limited to spigot anymore

tender shard
#

yeah ok and run buildtools

echo basalt
#

minestom supremacy

#

we're in mars

eternal night
#

Well you get that remapped jar because buildtools

#

yea

tender shard
#

yeah that is true

eternal night
#

mInEsToM

onyx fjord
#

have fun implementing a working server in minestom

eternal night
#

as useful as folia, a tiny fraction of the servers have the capacity to use it

magic yacht
#

hi

onyx fjord
#

we speak multipaper here

eternal night
#

I mean, same there

near mason
#

minestom doesnt has vanilla features

eternal night
#

so little of the userbase can use it

near mason
#

spigot is better

eternal night
#

that it just, it fullfils a very good niche, but it is niche

onyx fjord
#

useful for huge maps or big player counts

eternal night
#

and a very competent developer team

onyx fjord
#

?

magic yacht
#

I have a box pvp server. I want a script to return the resources that the person built after time

onyx fjord
#

its a single person for the most part

eternal night
#

That has to be competent

onyx fjord
#

and is

eternal night
#

I mean

magic yacht
#

i need script
RemoveBlocksAfterPlaced

kindred sentinel
#

Is there any really useful tutorials about brigadier?

onyx fjord
#

you are pretty competent if your software allows people to have thousands of players on 1 map

eternal night
#

yes

onyx fjord
#

i dont remember the record tho

tender shard
#

Not really

eternal night
#

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

onyx fjord
#

yeah

#

and a lot of resources and time

eternal night
#

which, that is far from a given

#

ye

onyx fjord
#

and

#

honestly youll end up using the same resources as nms

tender shard
#

No hate against minestom but i could also write a game that can handle 10k players - if the server doesnt do anything

onyx fjord
#

if you want anything more complex

eternal night
#

at least adventure support NODDERS

onyx fjord
#

and like 12 with 1 player

#

sorry, i dont speak Audience

eternal night
#

Right, my §x§a§a§a§a§a§abad

onyx fjord
#

we speak BaseComponent[] in this chat

#

remember that

tender shard
eternal night
#

I am so excited for string templates to be stable in whatever future jdk release

tender shard
#

this format was only meant to allow people to use hex colors in plugins that were made before hex colors were a thing

onyx fjord
#

nothing beats my placeholders

tender shard
onyx fjord
#

no no i mean my whole system

eternal night
#

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")

tawdry pilot
#

should i be using plugin messages when ive got a bukkitrunnable running

onyx fjord
#

at the end of the day everything is a string

#

cope

eternal night
#

write the json yourself

tender shard
#

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

onyx fjord
eternal night
onyx fjord
#

called json messages for a reason!

#

component is a bad name

tender shard
#

in a perfect world, mojang wouldn't obfuscate their server .jar

eternal night
eternal night
#

omg yes mojang mapping at runtime

onyx fjord
#

mappings dont fix the damage

eternal night
#

chefs kiss

onyx fjord
#

i prefer bigger jars

tender shard
#

is there a reason why paper doesn't by default use mojang maps at runtime?

eternal night
#

it breaks everything ?

tender shard
#

it breaks what?

eternal night
#

nms plugins ?

onyx fjord
#

plugins that reobfuscate @tender shard

tender shard
#

yes but it does that anyway sometimes

eternal night
#

sometimes vs ALL THE TIME

#

is a large difference

#

like, terribly large difference

tender shard
#

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

eternal night
#

especially given what people tend to use NMS for, things like just sending packets

eternal night
onyx fjord
#

netty isnt real

remote swallow
onyx fjord
#

reflectionutils 🧌

tender shard
#

I never understood the 1.17 announcement md wrote

eternal night
#

yea soft spoon party

#

I mean, we do distribute a paperclip jar with mojang mappings already

tender shard
#

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

eternal night
#

like

#

there ya go

#

just, obviously will break most of third party stuff

tender shard
#

who actually runs the papermc website?

eternal night
#

we do ?

#

huh

remote swallow
#

john papermc

round finch
#

JTextArea

HTMLDocument

how do i color each word!?

tender shard
#

I mean, there must be one person who registered the domain, one who is the contractor for the servers it runs on, etc

near mason
eternal night
#

ah

near mason
#

i just searched the same thing today

tender shard
#

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

remote swallow
#

hey alex translate "datenschutzerklärung" to english

tender shard
#

data privacy policy

eternal night
#

time to grab a template online NODDERS

tender shard
#

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

remote swallow
#

derfz i have a jira issue for you to fix

tender shard
#

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

round finch
lone jacinth
#

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.

remote swallow
eternal night
#

the solution for that would be fucking horrifying

lone jacinth
remote swallow
eternal night
remote swallow
#

sorry

#

paper

eternal night
#

I cannot wait to ditch spigot classloading down the line

tender shard
#

AGB-Kontrolle be like: 😦

eternal night
#

paper plugins and their isolation PepeBeatSaber

tender shard
#

what does it do? not allow plugin classloaders to access other plugin classes?

eternal night
#

Yea

#

unless you define the dependency you won't see their classes whatsoever

tender shard
#

what if, for whatever reason, two plugins would soft-depend on each other

remote swallow
#

i just wanna libraries feature hibernate man

eternal night
near mason
tender shard
#

if it's just a "soft-dependency", it should silently get ignored though, right?

eternal night
#

it is still a cyclic dependency

#

literally unsolvable

round finch
#

💀 i have struggling for hours to color each word in the text

tender shard
#

a "soft-depend" is more like a "if possible, I'd like to be loaded after X"

eternal night
#

yea

tender shard
#

emphasis on the "if possible"

eternal night
#

and both define that

remote swallow
#

what loads first then

eternal night
#

what plugin is going to load first

#

and get fucked because the other isn't loaded

tender shard
#

the one that first got returned by listFiles()

remote swallow
#

A would want B but B would want A

eternal night
#

makes 0 sense

tender shard
eternal night
#

but it still isn't the wanted outcome ?

#

plugin A could not use plugin B, eventho B technically exists

near mason
#

itsvollx sorry i gtg rn

#

you can watch a tutor on youtube

eternal night
#

there is 0 point in cyclic dependencies. They just indicate bad design choices

#

abstract needed logic out and fix it

#

¯_(ツ)_/¯

round finch
#

@near mason ey gimme a hint

tender shard
#

that is true, but imho it's not the server's job to fix bad plugin choices

round finch
#

quick

eternal night
tender shard
#

otherwise windows shouldn't allow to install avira

eternal night
#

with a large red warning screaming in your face

#

okay, time to walk le doggo

round finch
#

lol i have hard dependencies
just checking if plugin is loaded
💀

tender shard
#

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?

eternal night
#

all the things md_5 doesn't do publically

#

e.g. updating material enum each new release

tender shard
#

huh

eternal night
#

generation of the types representing registries

#

generating of BlockData types

#

basically, all of the shit generated and updated during an update cycle

tender shard
#

I don't think I can follow

eternal night
#

Like, when 1.20 rolls around and mojang adds 10 new blocks with blockdata

tender shard
#

does md has some secret scripts on his PC that he runs on every update, and paper doesn't have those, or what o0

eternal night
#

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

tender shard
#

but why can't paper also automatically generate those?

eternal night
#

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

tender shard
#

how can md_5 generate those automatically but paper cannot?

#

(honest question)

eternal night
#

because we haven't dedicated time to that yet ?

tender shard
#

oh ok

eternal night
#

recently finished

tender shard
#

yeah maybe you should do that then if you wanna get rid of depending on spigot

eternal night
#

allows us to have a fully compilable server source code without spigot

#

so we can base our patches on that instead of spigot

tender shard
#

I however think that creating a hard fork is a very bad idea, for different reasons

eternal night
#

soft spoon*

#

but yea, people can have their opinion, das fine

remote swallow
#

what about a medium knife

eternal night
#

hmmm

#

too pointy

tender shard
#

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?

eternal night
#

I mean, the same arguments have been brought up so often 😂

#

if you have something groundbreaking, sure

tender shard
#

well i have no clue which arguments were made in the past, as you know I am banned from paper's discord

eternal night
#

🙃

#

I mean, in the end obviously it is a risk.

remote swallow
#

unban alex

eternal night
#

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

wild mica
#

Can you recommend a database where I can quickly store Java classes?

eternal night
#

I mean, can go mogodb and json route

slender elbow
#

mogodb

eternal night
tender shard
#

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.

wild mica
eternal night
#

gson and jackson can literally just, convert any object

eternal night
#

modrinth is expanding into the plugin space too

tender shard
#

I don't wanna say that hangar is bad, but let's be honest, nobody googles "download essentialsx hangar"

remote swallow
#

spigot > modrinth > hangar > the rest

eternal night
wild mica
tender shard
eternal night
#

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

tender shard
#

I've been going until page 4 and still there was no hangar link

eternal night
#

via good integration and collaboration

lilac dagger
#

I wouldn't trust paper to create a non toxic environment

eternal night
#

that shit is still in open beta

lilac dagger
#

For developers

eternal night
#

I'd give it a bit of time

tender shard
lilac dagger
#

And users alike

eternal night
#

I mean, if we ever have the balls to allow paid stuff remains to be seen

remote swallow
#

how is hangar gonna handle that

eternal night
#

idk, not deep into that

slender elbow
#

it isn't settled ground

eternal night
#

yea

remote swallow
#

user to user or user to hangar to user

tender shard
eternal night
#

I mean, I'd prefer hangar as an actual middle man

eternal night
#

all of which is still missing

#

which is why, we aren't forked yet

tender shard
#

that is not true, everyone who runs the whole paper website automatically already is a GbR by law

eternal night
#

no

#

GbR is 2+ people

#

unless my law courses failed me last semester

proven jay
#

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)

tender shard
#

idk it's hard to find out, since you know, there's no site imprint or anything lol

eternal night
#

I mean, there is no legal entity last I recalled

#

its a bunch of private individuals hosting stuff that looks like an org

tender shard
#

"a bunch of private individuals that looks like an org" is basically a GbR

eternal night
#

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

tender shard
#

If I was the „main paper admin“ i‘d just register an UG with 1€ liability

eternal night
#

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

remote swallow
#

no lawyer staff?

tender shard
remote swallow
#

seems like a paper L

tender shard
eternal night
#

Probably XD definitely before hardfork lol

#

Sorry soft spoon

shadow night
tender shard
#

i actually do have a soft spoon

#

it sucks

tender shard
shadow night
#

tf

tender shard
#

Ctrl Shift N

remote swallow
tawdry pilot
#

how do i make a bungeecord scheduler that runs asynchronously every 10 seconds

tawdry pilot
#

can i run every tick for bungeecord or would that be too heavy on the server

tender shard
tawdry pilot
#

ok cool

nimble falcon
#

cant seem to find online either

quasi flint
shadow night
hushed pawn
#

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

eternal oxide
#

Vector#add

hushed pawn
#

i have to recalculate velocity wich player would have in next tick or something idk

tawdry pilot
#

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

blazing flare
#

Is it possible to create an explosion that behaves like TNT, but doesn't harm entities?

chrome beacon
#

You could just cancel the damage from the tnt

tender shard
#

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

eternal oxide
#

just use World createExplosion and cancel damage on players

#

you can set teh entity which created the explosion, or null

near mason
#

@round finch did you figured it out?

round finch
#

nope

sterile sapphire
#

Does anyone knows how to turn java code into a .jar file??

#

For a plugin

#

That i can then use for my spigot server

near mason
#

ok ima search it again

#

hold on

chrome beacon
sterile sapphire
#

That’s it

chrome beacon
#

Did you just copy the code from somewhere?

sterile sapphire
#

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?