#dev-general

1 messages · Page 47 of 1

pastel imp
#

his code is an mc plugin, which uses the bukkit api, hence being under the bukkit license

inner umbra
#

His code isn't under GPL. Its more likeley all rights reserved.

half harness
inner umbra
#

GPL is super annoying and I'll always contest it.
If you write code, that code is all rights reserved. When you compile it as a whole, if that code contains GPL the "whole" becomes GPL but your code is still all rights reserved.

half harness
#

If the main program and the plugins are a single combined program then this means you must license the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way.
and based on the first question, it seems like spigot plugins are considered a single combined program with spigot/bukkit/craftbukkit, meaning that the plugin must be licensed under GPL or GPL-compatible

pastel imp
#

is that what you think or actual facts?

#

(asking cause of your first sentence)

inner umbra
potent nest
# half harness https://i.imgur.com/0BPYP2J.png wait but

Well yes, but you can do something else as long as the copyright owner doesn’t enforce it - if they force you to publish your plugin under the GPL, you have to do that, but if you publish a plugin under a different license, someone else can’t just pretend as if it is GPL

half harness
half harness
ocean quartz
#

You can if it's not enforced

inner umbra
#

if that code contains GPL the "whole" becomes GPL but your code is still all rights reserved.

half harness
#

well I mean like
what can be done legally and as if everything was enforced

#

you can do anything if not enforced

final hinge
#

The plugin I had wasn't compiled, but was mere source code.

#

That's what I've provided them.

potent nest
final hinge
#

For the most part though, I have my lawyer taking care of the technicalities.
It's a plugin we spent lots of time on I can't just let him get away with this.

potent nest
#

But that also depends on the country you‘re in etc

final hinge
#

Furthermore we had an agreement in the beginning which prohibits him from disclosing nor distributing anything.

#

So at the very least it's a breach of contract

half harness
half harness
#

I think?

potent nest
#

But I‘m not a lawyer and a lot of that stuff might actually depend on local law

twilit sparrow
pastel imp
twilit sparrow
#

in this case a simple text message agreeing to such should be more than enough

pastel imp
#

yesish

#

Depends a lot, messages can easily be forged

#

specially in discord

#

lol

twilit sparrow
#

if this actually goes to coart discord will provide the data from their servers

pastel imp
#

not saying they were in this case, but they can

twilit sparrow
#

which can be requested

pastel imp
#

yes

#

although unsure how discord handles message deletion

#

since per gdpr if I want my data deleted, it needs to be deleted.

#

unsure if they can store it for like, 30 days or so

twilit sparrow
#

via email

pastel imp
#

out of my scope. no idea

pastel imp
#

hence why I am unsure how gdpr has an influence in this case

twilit sparrow
#

discords tos are very scuffed anyways

#

and they are owned by tencent (iirc?) so nothing suprises me atp

rotund egret
#

Showing off timer tasks?

rotund egret
obtuse gale
#

Hey! I need a developer to help with my streamer server. We want to make it fun and different from other servers. We have a donut theme and need someone who knows about currency, scoreboards, teleporting, and crates. I can't pay you right now, but you can gain valuable experience and maybe get paid later if our server does well.

rotund egret
#

Woah your giving it away on multiple of channels too!

obtuse gale
#

Yeah! I am.

wind patio
#

cringe

obtuse gale
#

Me?

#

@wind patio

agile galleon
#

yes, he meant you

brazen ether
#

oh you did

#

yet still put it here for some reason

#

and paying in experience too!!!

pastel imp
#

I swear people nowadays have 0 common sense

#

or even just logic

obtuse gale
#

There's a thing called being broke

pastel imp
obtuse gale
#

Ill pay eventually if there any good

pastel imp
brazen ether
#

tbf that's how internships work

#

but then again people are being more cautious with that now..

pastel imp
#

at least...

#

and funnily enough, where I live, any internship over 2 weeks must be paid.

oblique heath
#

all this stuff

brazen ether
#

ah ic

#

interesting

quaint isle
# obtuse gale Ill pay eventually if there any good

You are the server owner so you own the risk. If you believe in your concept, pitch it and offer devs a % revenue or take out a loan and pay the devs hourly / milestone-based.
"I pay you eventually I swear but only if you are good" is not gonna get you good devs.

rotund egret
#

This is the best advice

obtuse gale
sweet mortar
#

i wanna ask if i have my portal to do "/back player" run from console, will essentials.back.ondeath=false still prevent player to go back to the location?

#

nvm it doesnt put player to death position if run from console 👍

static zealot
wind patio
#

yeah, sure, not today though 😄

static zealot
#

No rush. Just wanted to know.

crude cloud
#

oh god

#

ChatChat is still a thing?

static zealot
#

:)))

#

not really

#

it was never a thing

#

just half of a thing

wintry plinth
#

Smh, could of used the OG before ChatChat, ChitChat

static zealot
#

🤣

remote goblet
#

okay barry

#

i love rosechat (in caps)

crude cloud
#

I LOVE ROSECHAT (in caps)

agile galleon
#

Ahhah

crude cloud
#

Barry has hemorrhoids

half harness
#

WHAT IS ROSECHAT_ _

crude cloud
#

chat's rose

half harness
#

ah thanks

remote goblet
raw cove
#

Hi, all.
I have a great offer that will benefit us all.
If you are interested in me, pleaese DM me.

brazen ether
#

🤣

obtuse gale
#

heyyy

brazen ether
#

hey! anyone have advice on how to manage custom ui rendering in the way which interferes with the fewest amount of things possible? using actionbar breaks when using multiple plugins, so are bossbars the best way to do this?

#

and if so, some info about how to make invisible boss bars would be appreciated

pastel imp
half harness
#

🪦

prisma wave
#

Lmao

terse elbow
#

I wonder if minecraft is good at rendering high poly models

obtuse gale
#

I am trying to make something like this: the command will start Batlepass, and it will be like this: if the player claims the reward of the first day, he will be able to claim the reward of the second day tomorrow, and he will be able to claim the reward of the first day only after 120 days. It will be cool for you.

#

please ping me after repay

#

@hushed prairie

rotund egret
#

?

brazen ether
#

unless I'm misunderstanding

rotund egret
#

Idk why they pinged tanguy, so maybe there's missing context, but #dev-general and they want to make something, seems like the right spot?

rotund egret
distant sun
brazen ether
static zealot
#

google also faked their ai stuff once, and they did it again

#

and a lot of companies are known for using misleading graphs and stuff. now that is less worse imo but not good

brazen ether
#

my dad works for one of the companies that Google partnered with and he jus said that the shit didn't work consistently enough so they hard coded a bunch of shit

crude cloud
#

that is how demos go most of the time lmao

brazen ether
#

unfortunately yes

wind patio
#

well, you want to show it now, but it's not quite there yet to work on its own, so you make it work it that way forcefully lol

rotund egret
#

Do minecraft's namespaces have any character restrictions? (or FWIW do Spigot/Paper add any additional restrictions)
They seem to be just Alphabet and underscores, but I didn't see a strict definition

distant sun
#

open the namespace class and look at the validations

rotund egret
#

Well now I don't need to

#

[a-z0-9_\-\.] if anyone wants that

hazy cape
#

Hello, im making an autoclicker for minecraft in c#, Does anyone know how to disable it when a menu is open (inventory, chest) without using the inventory key detection, because it specific for each user

inner umbra
#

Might have them mixed up here. I thought java was backards compatible?
How come spigot 1.8 - 1.12 can run java 22 but 1.13 throws java.lang.IllegalArgumentException: Unsupported class file major version 65

I took out the java version check for testing in the jar.

crude cloud
#

the server itself can run on java 22, but it won't be able to load plugins compiled for versions greater than whatever java version it is meant to run

cerulean ibex
#

the jvm wouldnt throw an iae

crude cloud
#

because they process plugins' bytecode and the classfile version is greater than what it can read

brazen ether
inner umbra
crude cloud
#

yeah,

crude cloud
#

they added this shit in 1.13

#

and newer java versions didn't exist back then so the ASM version used doesn't know about modern bytecode

inner umbra
#

Hmm. Any way around it?

crude cloud
#

fork the server to update asm? or compile for java 8? Shrug

inner umbra
#

Can't do that I started using all the new features lol

distant sun
#

Perfect time to drop support for versions olden than 2 years

cerulean ibex
# inner umbra Hmm. Any way around it?

idk how backwards compatible asm is and how secure spigots library loader is, but you might even be able to just swap out the jar in there for a newer version

distant sun
#

Does anyone have an up to date code for pinging an mc server? I made something but for some servers I get UnknownHostException or ConnectException though they work if I ping them from in-game
https://paste.helpch.at/zahesorove.java, JavaDataOutputStream and JavaDataInputStream are just wrappers for DataI/OStream that adds methods to read and write varints

dapper loom
#

hi

#

@distant sun could you help me with some info?

#

so i found an old plugin and i am trying to update it, found that vaultAPI no longer maintained
i am looking for an alterntive than this:-

            <groupId>com.github.MilkBowl</groupId>
            <artifactId>VaultAPI</artifactId>
            <version>1.7</version>
            <scope>provided</scope>
        </dependency>```
#

or is it possible to take over vaultAPI and update it?

ocean quartz
#

What about it needs updating?

twilit sparrow
#

you wanna take over vaultAPI?

distant sun
wintry plinth
distant sun
#

yeah I think I've figured it out

wintry plinth
#

Managed to still be able to ping it?

distant sun
#

yeah by resolving the srv record

wintry plinth
#

Nightmare to do, haha

static zealot
#

I am trying to style a <dialog> using TailwindCSS:

Inside the dialog I have a form (for the close button) and a div containing a title and a list of users (one under another). I am trying to make the list of users scrollable whenever there are more users than fit in 3/4 of the screen height. Tried setting overflow-auto on the list and overflow-y-scroll, but it never becomes scrollable. Instead, the dialog always becomes scrollable. I've tried setting a height and a max-height on the list but that didn't do the trick.

Anyone else got any other ideas?

html: https://paste.helpch.at/magotijami.html
tailwind.min.css: https://paste.helpch.at/exixetosan.css

I use TailwindCSS 3.4.3 for styling, Jinja2 for templating and test the project in Firefox 126.0

lost river
distant sun
#

Interface?

distant sun
rotund egret
#

Can display entities scale on 1.19 or just in 1.20.5 when they added the attribute?

crude cloud
#

display entities aren't living entities, so they don't have attributes and can't carry modifiers, but you can set scale in the transformation

rotund egret
#

Oh good to know, thanks.
I think Sponge just has a bug in that regard then 😳

brazen ether
#

if i want to include a server resourcepack for my plugin, how should i include it? should i have a seperate github page for it for clients to download it from?

brazen ether
#

for context, i'm making an armorhud plugin which requires a clientside pack, so what's the best way to include it with the plugin?

distant sun
orchid axle
#

how can i send a message with this color code ? &#2B7416

#

in java

violet orbit
split parcel
#

why should i use adventure library text components when bukkit's color codes with & are faster to cdoe with

ocean quartz
#

Components aren't just for color, click components, hover components, translatable components, formatting, etc

split parcel
wind patio
#

yes

ocean quartz
twilit sparrow
#

@compact perch #1236274255940026450 message this guy not only stole our ad but is also using our name for his services. He copied my ad 1:1 and didnt even bother to take our name out. Would be nice if you could do something bout this cause afaik he does not even have the skills (OUR SKILLS) he is advertising there

orchid axle
orchid axle
#

does it work for 1.20.1 too?

#

and is this a server jar or how can i use it

woeful flame
orchid axle
#

and what is different at folia

#

to normal paper

static zealot
#

I am curious, why do you want to use Folia if you don't even know what it is?

#

But this is the description you get from the github page.

orchid axle
woeful flame
#

i suggest you to use Paper if you dont know what folia is

static zealot
#

Well, if you go the the link I've sent, it will explain what Folia is and who it is for.

twilit sparrow
#

thx

twilit sparrow
orchid axle
#

yea ill do that

twilit sparrow
#

jar is not the correct term btw

#

its modloader

#

a jar can be anything

twilit sparrow
#

imagine he goes to a server asking „whats the best jar“

woeful flame
#

lmfao

twilit sparrow
#

no one is gonna know what he means lmao

static zealot
#

Well, that isn't true if everyone else calls it just a jar :))

oblique heath
#

you're a jar

#

wait sorry

#

you're a modloader

static zealot
#

I am a jar

rich coral
#

someone help in general plugins 2 i need help asap! 😄

obtuse gale
#

Guys, i need help, my domain doesnt wanna work, can someone help me out i use spaceship domain i am gonna pay him dm me

twilit sparrow
static zealot
#

I was trolling. sorry

twilit sparrow
#

at this point i cant tell anymore mal sorry

stiff horizon
#

I think this would make it easier for the person that installed your plugin. As they won't have to go to another site to get the resource pack.

brazen ether
#

plugins are usually just downloaded as a jar

#

I'ma jus look at what some other projects do and copy that

stiff horizon
oblique heath
#

a fair few projects do it the zip folder way

#

however i personally hate it because it makes it harder to automate updates

stiff horizon
brazen ether
#

alr ty

obtuse gale
#

Looking for good developer, i am going to pay them DM me.

violet orbit
violet orbit
#

uh not the gui itself but the mod to test packet delays, loss etc on the left of his screen

pastel imp
#

and you know about them too...

brazen ether
pastel imp
#

lol

pastel imp
#

not the one that is incompetent to read a sentence

agile galleon
#

Okay get this guy off this server please

#

It's time

#

It's like the hundredth time he crossposts about a paid request which he wont post in the request channels because he got banned...

#

There is literally no point in arguing with you

obtuse gale
#

Anyone well versed with 1.8.x packets?

inner umbra
obtuse gale
#

Right, thank you

pastel imp
#

any recommendations for headless cms? Heard of Strapi but any other recommendation?

#

preferably a free one which can either be hosted in vercel or has a decent free plan.

brazen ether
#

how do i get the <@&346970042854014978> role?

#

or does that refer to developers of papi, not just general plugin devs

oblique heath
#

i think it is technically for any dev with a decent enough portfolio, however they have essentially frozen getting it for at least a few years now

static zealot
#

There was a role request channel where people could basically get verified for being a developer, mc server owner and artist (maybe more, don't remember all of them). But the process was very manual and labor intensive so it was discontinued.

#

Builder. That was the 4th one

half harness
#

It's reserved for the cool devs only 😎

wind patio
#

@pallid gale yo can I get dev role? Cheers

oblique heath
#

dkim moment

ocean quartz
#

Smh dkim

static zealot
#

dkim hasn't had a dkim moment in months. that's a dkim moment

brazen ether
agile galleon
#

I probably applied for that role like 28 months ago

remote goblet
#

meanwhile not a single person talks in there 😭

#

most cosmetic roll in the world

steel heart
agile galleon
#

Me jealous

humble prism
violet orbit
slate elk
#

ngl guys some times i see request paid

#

and those mf's pay such little money

#

for a jobs in another level

rotund egret
#

Idk, $4 a model is good work if you're making worms

slate elk
#

like imagine u sit study for long time

#

then mf offer u 5$ for some shit that average C.S student in his second year wont be able to do

#

ill just suggest the talanted people between us get a forklift license

#

and make x10 a hour

rotund egret
#

Forklift license doesn't pay you sadly, it's just an inanimate object 😦

slate elk
#

haha xd

pastel imp
#

imo there should be more regulation in requests

rotund egret
#

meh, increased moderation for little pay-off

pastel imp
#

could be automated in theory

#

or just add a reaction system so that we can let at least people know it is a bad deal

#

which makes it be moderated by community and not mods

#

could also delete it once it reaches high number of downvotes

rotund egret
#

I think they tried votes in there at one point iirc

#

Also that one time Adam down voted one of Ori's posts, that was funny

agile galleon
#

We can try again ig

pastel imp
#

trying does not hurt anyone

rotund egret
#

It might

pastel imp
#

how so

#

worse case scenario, a stupid request gets downvoted to hell

#

I don't see the issue in that

rotund egret
#

That's not really worse case is it

#

That's best case

pastel imp
#

what is worse then

rotund egret
#

A good post getting vote bombed

pastel imp
#

also, you can limit it so that only X tier can vote

#

gate keeping it

#

and avoiding trolls

rotund egret
#

I don't think you can limit emotes that way without a bot

pastel imp
#

you can

#

easily

#

called per role permissions

rotund egret
#

React perms only prevent new emotes, not adding existing ones, unless they changed something?

pastel imp
#

fk ye

#

well wouldn't be hard to add to barry

rotund egret
#

Get to work!

pastel imp
#

barry is not open sourced

rotund egret
#

Just ping cube with code that works and pray 3 times a day

agile galleon
#

Afaik you can also prevent them

pastel imp
#

dont even know in what language the bot is coded

rotund egret
#

Just write it in js and you'll probably be right

pastel imp
#

lol

#

could be jda

#

and there is still the factor, does adam want the system

rotund egret
#

Eh, java javascript, basically the same thing

pastel imp
#

dies

#

Me after reading that sentence:

agile galleon
#

I actually had a few people that learned JS for like two weeks to code plugins and then realized that they need the better Java

hexed tartan
#

Hello, i would like to create a system for daily rewards. Player need to play for example 1 hour. Do you know a placeholder to do that ?

#

Because i have placeholder for playtime alltime

wind patio
#

depends how you want to implement it

#

you can use alltime and count every passed hour

pastel imp
#

not the channel btw

twilit sparrow
#

when in 3rd person

rose dagger
#

how?

#

its vanilla minecraft not modded

pastel imp
#

you could in theory center it

#

by putting a fake player model inside and putting the player wherever you want but invisible

rose dagger
#

That's a fair point, however then how would you detect when they go back into first person?

pastel imp
#

you wouldn't xD

#

either you make a way for them to toggle that view by clicking F or so

#

OR you make that view the default

slate elk
#

asking for unreal tasks

#

thinking we r slaves

#

and paying 5$

rotund egret
#

Don't bring me into this 👀

slate elk
#

nah i dont need to say much sometimes you can tell what person is by the way he looks

#

irony some people assume that judging book by its cover is false

rotund egret
#

I guess that's why you hide your face

slate elk
#

hahaha it has nothing to do with it

#

i dont hide anything

oblique heath
slate elk
rotund egret
#

Taking a long time...

#

I'm getting nervous, does this mean many toes or a struggle to count

remote goblet
#

it was partially warranted

#

i have an unhealthy problem with just flat out ignoring people when i dont want to do something or just forgetting about it while i think of a response

rotund egret
#

pfft, customer service is extra

fleet bay
#

Where can I ask questions about web development?

violet orbit
#

probably

distant sun
#

Uh, how do I pass a property to a run configuration in ij? I have a configuration that runs a gradle task, I've added the property on "VM options" and I can't find it in System.getProperties() 😦

wind patio
distant sun
#

@wind patio now try to run a gradle task

wind patio
#

you mean you want to pass something to gradle run configuration?

distant sun
#

I have a run configuration of type "gradle" and I want to pass a property to the configuration that will then be accessible in code
But I probably can't... the command run is gradle <task> -Dproperty=value

#

Yeah I probably need to re-set the property in the build script

wind patio
#

works like a charm

distant sun
#

Yeah.. I meant to say java code
I will use env variables, those are available for the java code

wind patio
#

so, you want gradle vm option to be passed to java vm?

distant sun
#

Ye

crude cloud
#

you have to configure those in the gradle task

#

& other relevant methods

#

passing -Dblah will set the property in the gradle vm itself

rotund egret
#

Mf deleting messages n shit

solid merlin
#

I deleted mine because I figured out my mistake

#

Why are you cursing just cause so?

rotund egret
#

You caused confusion

solid merlin
#

Alright sorry

rotund egret
#

It's OK, I won't curse anymore

solid merlin
#
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this, ListenerPriority.NORMAL, PacketType.Play.Server.VEHICLE_MOVE) {
  @Override
  public void onPacketSending(PacketEvent event) {
    PacketContainer packet = event.getPacket();
    Player p = event.getPlayer();
    p.sendMessage("F: " + p.getForwardsMovement() + " S: " + p.getSidewaysMovement() + " U: " + p.getUpwardsMovement() + " PACKET: " + packet.getStrings().read(0));
  }
});```
#

Trying to parse WASD movements

#

Not getting any message as a player ingame

#

Question is how can I get any sort of output from this packet?

sly sonnet
solid merlin
#

Ive tried walking normally or getting on a literal vehicle like cart or horse but still no output

#

Oh sorry ill go there

#

all channels werent visible due to discord thingy

sly sonnet
#

😅

solid merlin
#

the channel appears quite inactive hence I considered pinging someone

sly sonnet
#

hey. i haven't really worked with packets but i can try taking a look

solid merlin
#

thanks

agile galleon
#

What was that library to do Folia schedulers and Spigot ones with just one API? And what would I use to schedule something on a player and globally

crude cloud
#

on a player you'd use the player's scheduler, globally you'd use the global scheduler, but generally there aren't many reasons to use the global scheduler unless you're, like, changing the weather, gamerules, or setting the time

#

there are several of those libraries around but I don't remember any pepelaugh

agile galleon
#

I have one scheduler that loops through every players inventory asynchronously pepela

#

Which is the one I'm concerned about

crude cloud
#

skull emoji

brazen ether
#

if you write code that randomly outputs a string until it accomplishes its task, that's O(1)

#

no need to thank me

crude cloud
#

uh yeah

#

wasn't gonna rieRun

brazen ether
#

:sniffle:

agile galleon
crude cloud
#

why are you doing that asynchronously anyway

agile galleon
#

I did that a long time ago and it has been working

#

Afaik it's just doing some permission checks every 10 seconds or something

crude cloud
#

💀

agile galleon
#

on every item in the players inventory skully

wintry plinth
agile galleon
#

Is there anything else I have to look out when adding Folia support?

#

I'm torn between FoliaLib and MorePaperLib

crude cloud
#

I mean, they're gonna be doing about the same shit, there isn't a lot to abstract away

agile galleon
#

Currently looking at implementing MiniPlaceholders but they state it doesn't work with shaded adventure, is there any way around this?

#

Would moving to the plugin.yml libraries help?

half harness
#

because iirc it relies on the built-in server-shaded adventure

agile galleon
#

sadge

crude cloud
#

huh

pastel imp
#

and I also think it falls back to bukkit schedulers if you arent on paper

agile galleon
#

Before you say anything, 95% (guessed) of downloads are from the SpigotMC marketplace, I wish I could move but no other site has that mucu traffic

half harness
#

Before you say anything
Lol
Fair reason tho

agile galleon
#

I wish I could dump Spigot but I can't sadly

wind patio
#

spigot W

pastel imp
pastel imp
#

lol

agile galleon
#

That's exactly why I said before you say anything

pastel imp
#

should've put that inside the first sentence

#

xD

#

(still skill issue though, make them move to paper)

#

quite easy, for a few versions, send a message in the console saying that you will move from spigotmc, that will let people know to move to hangar for example.

#

You can also send it to admins on join

#

extra visibility.

#

Then after a few versions, you stop updating on spigot

#

And tell them to move to hangar

#

Also, modrinth is another good option

#

legit has 4x the monthly amount of visits spigotmc has

quiet depot
#

also even if it does... i'm sure way more people go to spigot for plugins than modrinth

inner umbra
#

I think it depends what comes up on google and the search they use.

pastel imp
#

spigot has 2m+

ocean quartz
#

Hard to gage because if only 1/5 (random number) of the users that visit it are there for Bukkit plugins then you'd still have less than spigot

pastel imp
#

modrinth has 8m+

cerulean ibex
#

isnt modrinth mainly used for client mods though?

pastel imp
#

don't quote me on this but I saw talks on the modrinth chat that were saying that plugins are the 2nd biggest market in modrinth

quiet depot
#

that still doesn't really mean anything

pastel imp
#
  1. mods 2. plugins 3. Modpacks 4. resourcepacks 5. datapack
cerulean ibex
#

what a suprise

quiet depot
#

their mod market might be massive and plugins is still fuck all

pastel imp
#

well modpacks would be 3. place

#

which I would assume makes it not as massive as you would think

quiet depot
#

most ppl probably go to curse for modpacks?

pastel imp
#

unverified information btw

ocean quartz
#

Really hard to guess, the most downloaded mod (not fabric api) is sodium which is 10m downloads, while most downloaded plugin is 3m, BUT what makes it harder is that the top 5 are multiplatform so they could be there for fabric/forge instead of bukkit
And the highest bukkit only plugin has 129k downloads

#

But this are just numbers that mean nothing

cerulean ibex
#

most downloaded plugin is also a mod

ocean quartz
#

The top 10 most downloaded plugins are also mods :')

pastel imp
#

If you go to versions of a plugin you can see the downloads for bukkit versions

#

although that does not give you the total

cerulean ibex
ocean quartz
#

Actually found a good comparison, TAB's latest version 4.1.5 has 2289 downloads on spigot and 882 downloads on modrinth

pastel imp
#

Simple Voice Chat seems to be mostly fabric/quilt/forge

ocean quartz
#

Version 4.1.4 has 20616 on spigot and 10900 on modrinth

#

So using this very VERY limited example you can assume spigot has double the engagement of modrinth for plugins

pastel imp
#

I suppose

#

once paper hard forks that will probably change since support for spigot will slowly decay

#

until it is non-existent

#

so devs will have to build paper version which in turn means they can't post it on spigot since it requires to be a spigot plugin

ocean quartz
#

Looking at coreprotect v22.4:

  • Spigot: 8750
  • Modrinth: 1851
  • Hangar: 541
pastel imp
#

its hard to move your whole userbase to another platform without stopping to use the current platform lol

#

coreprotect still uses spigot, so all the userbase they gained there, will probably stay there

quiet depot
#

i'm confused though

pastel imp
#

if plugin devs start moving to newer alternatives, userbase will also go

quiet depot
#

who is using modrinth for plugins? has it gotten really popular recently or something? I never hear anyone talk about it but maybe I just don't payt enough attention

pastel imp
#

but devs are scared to see the download count drop lol

pastel imp
#

and several others do too

ocean quartz
pastel imp
pastel imp
#

7 cents from 360 views

#

not bad

quiet depot
#

is this little ad here paying that?

pastel imp
#

yes

#

They have their own ad system

#

"Adrinth"

quiet depot
#

is there an adfly sorta thing when you download?

pastel imp
#

nope

#

literally just that AD paying it

ocean quartz
pastel imp
#

in theory it should be like, 10 bucks or so

#

bit less

quiet depot
#

they should chuck something like adfly on the download links coulda earnt a few hundred at least

pastel imp
#

I mean if we take my plugin as an example

#

44 downloads for 0.07

#

then in theory, for 500k downloads, that mod did like 800 bucks

quiet depot
#

is it paid for downloads or views

pastel imp
#

views probably

#

but downloads is the only public stat we can get

#

views are for the publisher only

#

if take my 360 views for 0.07, and assume noxesium got like 3x the download count in views, it would be around 300 bucks still

ocean quartz
#

I'll ask and see if I can get the exact amount made, I just know it wasn't very much for the amount of downloads

pastel imp
#

eitherway, even if we ignore monetization, modrinth is 10x better than spigotmc platform wise

#

and like 1.5x better than hangar

#

hangar is in beta though

ocean quartz
#

The fact that hangar chose to not do premium resources will always be a downside imo (i know why they did it, still don't like it)

pastel imp
#

AKA you won't be selling plugins in hangar, you will be selling support and jars, but all "paid" plugins will require to be open sourced.

#

That's the current idea for paid plugins in hangar.

#

which imo is the best model for this.

ocean quartz
#

I don't agree, having the option to be freemium is fine, allowing only freemium I don't like
But anyways I never said they would never do it, I just said they are choosing not to for now, which is a bummer

pastel imp
ocean quartz
#

I don't dislike freemium, I dislike that being the only option

pastel imp
#

Why though, if people had the option for "premium" they would go for it, the whole idea of hangar is for resources to be open sourced and not obfuscated

#

why would they do otherwise for paid plugins

ocean quartz
#

Because it should be a choice, if a dev doesn't want to open source it, it should be their choice to not do it, forcing open source goes against the spirit of it, you should open source because you want people to contribute, because you want to share with others for free, that's where freemium is nice
But not force it, I would love to have more open source projects out there but if the devs don't want to that's their choice and that is fine

#

It's all about being able to choose, I prefer freemium, it is what I would do, but I know that is not the case for many

pastel imp
#

well, they can also just argue that if they dislike it, dont use hangar xd

ocean quartz
#

That's my point though, people will dislike it and won't use it, therefore it won't have as big of a userbase as it would otherwise

#

It's an odd decision

#

But hey that's just my opinion

wintry plinth
#

If hangar took a commission, surely they’d want the most sales anyway?

pastel imp
#

don't think they will be taking commissions and I understand the argument overall, but at the same time, if obfuscation, etc is allowed for paid plugins then it should also be for free plugins which can cause several issues. Besides, auto moderation systems wouldn't detect malware, etc in obfuscated jars, or well, not as easily. Allowing paid plugins to be closed source would require even more moderation from the staff team, since at that point, free plugins would also need to be verified manually.

wintry plinth
#

Allowing paid plugins to be closed source would require even more moderation from the staff team, since at that point, free plugins would also need to be verified manually.
But, that doesn't stop a threat actor from "open sourcing" the code, and then also sneaking bad code into the end jar

#

Which again goes back to why I don't think open sourcing is a "priority" iMO

pastel imp
#

I see, I think the issue is mostly the obfuscation being indirectly allowed, not specifically being open or closed source.

#

It's a very hard topic to speak about, even in hangar, there are SEVERAL talks about this and there are always Pros and Cons...

inner umbra
#

Any site that doesn't give developers full authority over their own resources is shit.

pastel imp
#

To my understanding, for now, the idea is to go with freemium, if that will end up being the model, we will have to wait to see.

pastel imp
#

well, we will have to see, at the end, we also have to think that paper's team might not have enough resources in case that much moderation is needed.

#

And also being a middle man adds several responsabilities to the paper team, like chargebacks, etc.

#

As said, very hard topic to discuss.

inner umbra
#

And also being a middle man adds several responsabilities to the paper team, like chargebacks, etc.
Are they actually taking on that responsibility or is it direct to dev with paypal or other services?

wintry plinth
#

Afonso, ever considered being an official rep for Hangar? Haha

pastel imp
pastel imp
#

I am just interested in the project and like to inform myself about it. xD

#

Unsure if I would be a good rep for ANY project lol

#

I lose my temper too easily.

#

(as we all know)

wintry plinth
#

Haha, I was only messing about because you have a lot more to explain about Hangar than any of us.

inner umbra
#

But even then, we all know from spigotmc, paper would still have "some" responsability on it, or at least be blamed for chargebacks, etc.
No they don't its between the seller and buyer. No middle entity.

MC-Market on the other hand...

wintry plinth
#

My honest take is that Hangar is cool, it's great to see a brand as big as Paper venturing out further with all this and using their reputation for good.

I just wish that they didn't force the need for open sourcing, not being able to obfuscate (if I read this right?), not properly allowing "premium" mods, etc. I agree that often open sourcing is the way to go, but sometimes I've built premium mods that I don't want the code public for, or I'd rather obfuscate it for my own reasons

inner umbra
#

From this convo... Its looks like paper is just trying to be a file host which isn't worth it lol

wintry plinth
#

I’m really surprised they don’t want to take a commission, that doesn’t seem sustainable..

Unless they aren’t expecting many to come across given their strict rules

inner umbra
#

They will either do donations or liter it with ads (or both 🤷 ).

#

aren’t expecting many to come across
This is the most likely outcome. Will probs have a surge of users for a month maybe more then down from there.

rotund egret
# ocean quartz Because it should be a choice, if a dev doesn't want to open source it, it shoul...

I'm a little confused how you're being forced to OS?
You can just host your plugins anywhere else, and in that way get to choose?

I'm not sure it's fair to force a repository to accept these terms, the developer still has full freedom with their works.

And I see your point that "it wouldn't have as big userbase" but I think that's a misunderstanding of objective, because clearly being the bigger platform isn't the goal.

Tldr if Paper presumably wants to promote OS works, I don't understand why that's "forcing"

Also for all its worth, this policy existed(exists) under ore (hangars predecessor) so I imagine there was some push to maintain it between platforms (sponge/ore -> paper/hangar)

pastel imp
#

Yeah, just well informed I suppose, it's something I like to do research on (I also have no life and read almost all their discussions when they were brainstorming about it)

pastel imp
ocean quartz
pastel imp
rotund egret
ocean quartz
#

My phrasing is probably pretty bad, writing is not one of my proudest things :')

pastel imp
#

Same xD

#

I mean, we can't forget Hangar is still in beta, many things can change in the future

rotund egret
#

I do okay and then sometimes I just use the wrong word entirely lmao

#

Waiting for the day sponge starts using hangar over ore

pastel imp
#

Also, just confirming some things:

  • Obfuscation: To circumvent license issues and the effort involved in reviewing obfuscated code, we do not allow submitted plugins to be obfuscated in any capacity. (from guidelines)
  • Open source forced: It appears they have removed it from guidelines, which means, it does not require to be open sourced anymore, but still can't be obfuscated.
#

TLDR; You can't obfuscate but you are also not forced to make it open sourced.

rotund egret
#

Based

pastel imp
#

Suppose that solves most of the issues most people here had xD

rotund egret
#

Obfuscation is trash anyway

pastel imp
#

still sucks to moderate obfuscated jars ¯_(ツ)_/¯

#

even if you can deobfuscate it with some work

wintry plinth
#

I think obfuscation is useful in certain circumstances

pastel imp
#

that's extra work for mods

pastel imp
rotund egret
wintry plinth
#

Who doesn’t love money?

rotund egret
#

I don't fwiw

wintry plinth
#

But my proposal would always be for Hangar make it so you send an obfuscated and non obfuscated version to the staff

#

So they could review it, but publicly it’s overucated

pastel imp
#

BTW a bit offtopic, but Related documents, such as documentation, tutorials, source code, and support Discords, including paid support. "including paid support", which means, technically, freemium already exists per guidelines, but only for support.

rotund egret
pastel imp
#

ofc not, but it stops 95% of people trying to bypass it

rotund egret
#

Me when I make up statistics

pastel imp
#

frfr

#

source: trust me bro

ocean quartz
rotund egret
#

As God intended

pastel imp
#

but what I mean by it is that, most people stop trying to break into it because it's more work if it is obfuscated

pastel imp
rotund egret
#

Like setting up small rocks to defend your camp, maybe it'll block children, but they wouldn't have overpowered you anyway

pastel imp
#

better than nothing ¯_(ツ)_/¯

rotund egret
#

I guess in the same way having two doors would be more secure than one.
Get to installing!

brazen ether
#

isn't there some copyright you can use to make it illegal to decompile a file

#

or at least publish or use those results

rotund egret
#

Even if there were you would need to have some way of enforcing it as well, which has its own complications for plebian devs like most of us

#

Like technically all rights reserved can't be reposted iirc

#

If the hosting site takes requests for takedowns for example you'd probably be fine.

Like if I uploaded your works to paper, I imagine they'd remove them for you.

Blacksites obviously aren't as forthcoming

pastel imp
#

"best" way I have seen devs do premium plugins is by having a "loader" aka a plugins that downloads the plugins you paid into ram on server start. You never have a jar or whatevee, you require a license for it to download it from the web server.

pastel imp
#

There are also some rules about naming. Like you can't include paper in the name or anything that makes it look like official from papermc

rotund egret
#

I'm thinking they copied ores rules lmao

half harness
pastel imp
#

the whole project lol

rotund egret
#

I said that, yes 🙂

pastel imp
#

These guidelines are loosely based on Ore's plugin submission guidelines, licensed under the CC BY-SA 4.0.

Last updated: May 08, 2023

pastel imp
#

so I confirmed it

rotund egret
#

Well the project and rules are separate peices

#

It's a shame they didn't stick with scala (thank god)

pastel imp
#

lol

brazen ether
pastel imp
#

or else... rip

#

that is one of them

brazen ether
#

i heard once that paper or spigot don't even allow that by their tos

#

but prolly heard wrong

pastel imp
#

they can't really say anything about it I think lol

#

you might be confusing it with the whole spigot libraries system being technically against maven TOS

brazen ether
#

why?

pastel imp
#

why what

brazen ether
#

why is it against maven tos

#

i'm not very knowledgable about it

pastel imp
#

you are spamming maven lol

brazen ether
#

ah

pastel imp
#

maven is supposed to be for devs

#

not for a request to be sent every single time a server starts

#

xD

#

(well more than one request)

brazen ether
#

isn't that to get around some mojang copyright or something

pastel imp
#

paper plugin loaders fix this indirectly since they still allow you to use maven but also allow private repos, which is pog

pastel imp
rotund egret
#

Small jar sizes on spigot I recall was the motivation to download libs initially

pastel imp
#

well eitherway, paper plugin system > ALL

brazen ether
#

i should prolly stop using spigot for my development..

rotund egret
#

I am a fan of the isolated classloader

pastel imp
rotund egret
#

Sponge has a pretty cool loader, but it's not fully featured atm 😦

crude cloud
#

State of Sponge: dead

pastel imp
#

love the concept of State of Sponge

rotund egret
#

Well you're in luck

rotund egret
crude cloud
#

that's epic

agile galleon
#

I wanted to add the plugin to BBB but another plugin has even less sales there than on Polymart

#

I would love to move to Modrinth but... no paid plugins

#

Just waiting for Spigot to be dethroned as the go to plugin marketplace

distant sun
rotund egret
#

Real!!!

brazen ether
#

wrong chat

terse elbow
distant sun
gaunt helm
#

item

compact perchBOT
#
Possible Solution Found:

The plugin (or program) you are trying to use was compiled using a newer Java version than the one you using.
To find what version you need, start from 52 which is Java 8 and for example, 60 is Java 16. (8 + 8 = 16 => 52 + 8 = 60)

#
Possible Solution Found:

The plugin (or program) you are trying to use was compiled using a newer Java version than the one you using.
To find what version you need, start from 52 which is Java 8 and for example, 60 is Java 16. (8 + 8 = 16 => 52 + 8 = 60)

rotund egret
#

8 + 8 = 16 => 52
Of course

pastel imp
#

thoughts on using swing to make a game?

#

me and a friend of mine had a cool fun idea for a 2D game but he is only familiar with swing.

crude cloud
#

i mean, sure

#

it's not exactly a game engine platform but you can do some basic rendering

#

it's got the rendering stuff, and that's about it, everything else you gotta diy

pastel imp
#

The idea of the game is to be some type of city building but from the above POV, with some tycoon stuff, etc.

#

(Can't really do 3D cause gl with that in swing + gl with bridges, etc lmao

distant sun
#

Do you HAVE to use swing or you WANT to use swing?

crude cloud
#

i believe javafx has more api around 3D geometries and stuff like cameras, scenes etc

#

but, using something like godot is gonna be a much better experience

oblique heath
#

yeah using swing here definitely seems like it would be a case of "when holding a hammer everything looks like a nail"

wind patio
#

or hammering a nail with the handle instead of the hammer part itself 🤓

rotund egret
#

That part is the head

oblique heath
#

you're a head

#

keep up the good work king

rotund egret
#

Thanks, doing my best to not get behind

wind patio
#

part of being non native speaker

pastel imp
wind patio
#

well its N times better to use proper engine instead of swing lol

pastel imp
#

I don't need physics or whatever

#

lol

wind patio
#

yeah well, its just my opinion

rotund egret
#

Lame

#

Oh discord was behind

#

Nah it fits

rotund egret
terse elbow
#

its powered by opengl i think thats why it offers cameras and all that

#

someone made 3d games with it

#

I thought of using javafx for my cross platform project but then i found gtk for cross platform in c++

pastel imp
#

tbh no idea

#

doubt we would publish it either way

#

not sure

brazen ether
#

matrix multiplication Minecraft meme

#

absolutely wild

pastel imp
stark niche
brazen ether
#

they're important tho

pastel imp
#

not as painful as the probability part 💀

#

that one was hell

#

and geometry fked me up a bit

#

matrices basically the only thing that went well in the exam

#

xD

brazen ether
#

geometry, probability, and matrices in 1 test?

#

what kinda class is that

pastel imp
#

¯_(ツ)_/¯

#

a better class than limits, integrals and trigonometry

#

lol

#

(which is the other math's class)

#

I have Math1 and Math2 (the matrices one)

terse elbow
#

these people are freakin talented

wind patio
#

I remember having all these

stark niche
#

I never knew that it's possible to change players GUI that much using vanilla shaders

terse elbow
#

yeah shaders are the only possible explanations to these

#

shaders are basically mods for rendering

terse elbow
stark niche
terse elbow
#

I did not know where to start too i did watch some lwjgl tutorials

#

and i was not serious about learning it because it was too time consuming, but i can say the advantages definitely outweigh the efforts

steady stump
#

lwjgl is not related to shaders

#

it just provides java bindings for a number of native libraries

terse elbow
#

yes the shader is called glsl (gl shader langauge). It can be mostly math based, but it also involves a certain number of opengl functions to use it properly

distant sun
#

how much I love working on my degree kek

ocean quartz
#

10+ tabs is the default state of my browser

distant sun
#

when I can only see the favicons I know it is bad

wind patio
pastel imp
#

funnily enough, did a cleanup today

viral wedge
#

Does deluxemenus or PAPI use ProtocolLIb

#

does anyone know? ping me with answer

crude cloud
brazen ether
#

there are several resources there and many opengl resources online

stark niche
#

Maybe someone knows how to make player rotation as smooth as possible? I'm making a plugin and one of the features that I have to implement is player rotation without riding or spectating an entity. I use this code to make it smooth but it's still looks bad... Increment is set to 5 and finalYaw and finalPitch is where player should rotate. Increment is set again to 5 if finalYaw or finalPitch changes. This code is called every tick if increment > 0

float yaw = playerLocation.getYaw() + (float) (finalYaw - (double) playerLocation.getYaw()) / (float) increment;
                float pitch = playerLocation.getPitch() + (float) (finalPitch  - (double) playerLocation.getPitch()) / (float) increment--;
                player.setRotation(yaw, pitch);
brazen ether
#

well you can only rotate the player 20 times per second

brazen ether
stark niche
brazen ether
stark niche
#

duration of interpolation is increment

#

right now it's 5 ticks

brazen ether
#

so you can't use teleport, or spectating entities, or riding them

stark niche
#

I can use player.setRotation()

brazen ether
#

yea but that looks ugly

#

wait no

brazen ether
stark niche
stark niche
brazen ether
#

duration of interpolation like literally #setTeleportationDuration

half harness
#

where is setTeleportDuration?

#

afaik it isn't possible to set a duration besides teleporting every tick

brazen ether
#

well how else would you make smooth rotation

stark niche
brazen ether
#

without riding entities or spectating them

stark niche
half harness
brazen ether
#

maybe try the teleportation method since that would work with #setTeleleportationDuration then quickly fix velocity

half harness
brazen ether
brazen ether
#

oh

#

weird

#

I'm tripping lemme check

#

oh it's a Display entity only thing

#

damn

#

that's kinda weird

stark niche
#

that's sad tbh that there is no way to make a smooth rotation without riding or spectating entity

brazen ether
#

what if you send rotation packets more often

half harness
#

it'd still be capped at 20fps

tbf from mojang's pov, there isn't really much of a reason to add this

brazen ether
#

tho idk if those only work once a tick

half harness
# brazen ether ah

actually i wonder if it's possible to do > 20
i kinda misunderstood what you said at first

stark niche
#

I'm trying to do better spectator plugin. Point of this plugin is to show you GUI of the player that you're spectating. Like health, hotbar and etc. With "laggy" head rotation it will look ugly

stark niche
brazen ether
#

manually more than 20timss a second

wet bison
#

does anyone here use the excellent shop plugin?

stark niche
#

but I think it won't do anything tbh. Still worth of trying

half harness
#

especially because it's premium, so I doubt many, if anyone here has used it

rotund egret
wet bison
#

unfortunately i cant my dev who bought the plugin is in the hospital so i cant verify purchase TO ask lol

brazen ether
rotund egret
#

Then it interpolates

brazen ether
half harness
rotund egret
#

I don't think teleport duration works for players yea

brazen ether
#

yea it's not even a function

#

(which is stupid)

#

(Mojang why)

rotund egret
#

Just ride the display entity

brazen ether
rotund egret
#

Pfft

brazen ether
#

yea

#

lmao

half harness
#

also ask your question as well even if no one has used the plugin, because some questions are common between multiple plugins @wet bison

wet bison
#

i sent a message in there... and their manual is quite bad lol doesnt really help much haha

half harness
#

oh 🥲

wet bison
#

yea prolly since its premium and they dont want people who get it without paying having all the info on how to use the plugin (ive seen alot of premium plugins do that)

brazen ether
#

well yes obviously

rotund egret
#

Lame

stark niche
# brazen ether manually more than 20timss a second

wtf it's actually worked (probably). Rotation is much smoother now. I'll ask my friend to join to my server to test it because my minecraft is laggy because my gpu died recently and I have to play with integrated gpu :(

brazen ether
stark niche
brazen ether
#

per second you mean 😭?

stark niche
#

per tick

    @EventHandler
    public void afsf(ServerTickEndEvent event) {
        for (PlayerSpectator spectator : manager.getPlayerSpectatorList()) {
            Player player = spectator.getPlayer();
            Player target = spectator.getTarget();
            if (spectator.getYaw() != target.getYaw() || spectator.getPitch() != target.getPitch()) {
                spectator.setYaw(target.getYaw());
                spectator.setPitch(target.getPitch());
                spectator.bodyTrackingIncrements =  def;
            }
            if (spectator.bodyTrackingIncrements > 0) {
                for (int i = 0; i < 60; i++) {
                    Location playerLocation = player.getLocation();
                    float yaw = playerLocation.getYaw() + (float) (spectator.getYaw() - (double) playerLocation.getYaw()) / (float) spectator.bodyTrackingIncrements;
                    float pitch = playerLocation.getPitch() + (float) (spectator.getPitch() - (double) playerLocation.getPitch()) / (float) spectator.bodyTrackingIncrements--;
                    System.out.println(yaw);
                    System.out.println(pitch);
                    player.setRotation(yaw, pitch);
                }
            }
        }
    }
brazen ether
#

Bro 😭

#

bad bad idea

#

60 times per second is smooth enough

#

and you could instead do like

stark niche
#

that's why I want to test it with friends first and then optimize it

brazen ether
#

1 packet per 3 degrees

#

hm

stark niche
brazen ether
#

that's dos attack lmao

stark niche
#

yeah I got your point... well as I said I will optimize it to don't dos someone

brazen ether
#

you gotta compromise between smoothness and network limitations

stark niche
#

maybe I'll make a command to player so they can adjust their rotation smoothness but idk

#

(with number limit of course because then server will die if 9 players spectating at the same time)

half harness
#

and increasing the ping for everyone

#

actually no for your scenario it's probably fine

half harness
#

OR

#

when the rotation starts just create an ScheduledExecutorService#scheduleAtFixedRate

brazen ether
#

never do your own threads

sweet cipher
#

As in why do you need to rotate the player?

half harness
#

so if the player looks one way

#

you should look that way as well

#

which reminds me - I think hypixel for ex does this very well

#

I wonder what they do 🤔
unless they do the same thing as here

sweet cipher
#

Idk why they wouldn't use rideable entities for that though

half harness
#

hmm
I don't know anything about that so I didn't comment on it

#

¯_(ツ)_/¯

brazen ether
inner umbra
#

Whats the best approach for saving a bunch of strings?
I can go simplistic and just use a txt file. Maybe even add compression.
I don't want to use SQL because I'm not working with keys (I could but 🤷)
Could also use yaml...

oblique heath
#

if performance isn't critical then use whatever is most convenient for you

#

which will probably be yaml i imagine

inner umbra
#

Preferably efficiency.

oblique heath
#

what's the structure

#

is it literally just a list of strings

inner umbra
#

Currently its just a bunch of json strings yeah.

stark niche
oblique heath
inner umbra
#

Minimal 32 chars

#

Max can be way bigger.

oblique heath
#

let me rephrase, what is the expected combined size of all of your strings

#

10kb? 100kb? 1mb?

inner umbra
#

There is no expected. Its all random.

oblique heath
#

well surely you won't have a terabyte of strings right

#

there's gotta be some range

#

or is a terabyte on the table?? 👀

inner umbra
#

So current set up, I have a folder per player. Each folder contains a file for each minion type. In each file contains 1 string per minion.

oblique heath
#

you're storing a single string per file?

stark niche
#

doing inventory clcik event cancellation is pain. Too many scenarious to catch. I had a task to cancel event if player is trying to move an item in the chest but he should be able to move an item in his inventory or from chest

inner umbra
oblique heath
#

oh wait i misread

#

i see so each minion in the file is its own string

inner umbra
#

yeap

oblique heath
#

do you have to read all the minions of all the types in at once?

#

like for a world load or player join type event

inner umbra
#

Preferably. But I do it all async so it can take a bit to run if it needs.

oblique heath
#

opening a bunch of separate files like that seems a lil sketch

#

at this point i would definitely start considering using sql

inner umbra
#

That system worked for years. But I'm recoding now so looking for better ways.

oblique heath
#

i'm sure it works as is, but if you want efficiency... 🦐

inner umbra
oblique heath
stark niche
#

they could also use jackson library

oblique heath
#

you got your player uuid as a key :>

#

then you just select all minions where player uuid is blah and minion type is blah

#

or i guess you need to differentiate the minions... im sure you have a way for that already though

#

since you'd run into the same issue when using a file

inner umbra
#

Yeah I meant more of each minion would be keyed. Can't explain my thoughts on it lol.
Ill look into it but is there any other options?
I liked using yaml because the editability.

oblique heath
#

i mean the two big options are either storing them within flat files or in a db

#

i dont see any besides those two

inner umbra
#

Yeah thats why I found too.

oblique heath
#

if it were me i wouldn't think too much and would just use sqlite

inner umbra
#

Yeah that seems like the route. Gotta read into it though. Only used it once before lol

oblique heath
#

it's not difficult, you'd interface with it using jdbc just like any other db and it has decent compatibility with other sql types

inner umbra
#

Yeah the libs are usually what steer me away.

brazen ether
#

if I want to dynamically generate a resourcepack for my plugin, is hooking into the build gradle task a good way to do this

#

i need to duplicate and edit the opacity of a PNG 256 times and extend some json then package it into a zip

crude cloud
#

sure

brazen ether
#

thank you Emily

rotund egret
#

Gradle is good

wind patio
#

Finally switched from using spigot shit to paperweight userdev

#

So much easier lol

stark niche
wind patio
#

True

#

Now I just gotta figure out how to update my server jar from 1.20.2 to 1.20.4 without losing all the patches lol

stark niche
#

I heard that paper devs want to be independent from spigot. It means that they want to patch vanilla core. One issue is that a lot of plugins have to be written from scratch

wind patio
#

Yeah that'd be really great

rotund egret
#

SpongeVanilla 🥰

crude cloud
#

paper would keep the existing spigot patches, the api and server code would basically remain the same for a while, the api for a long while

#

keeping compatibility for existing plugins is certainly a priority

crude cloud
stark niche
rotund egret
#

You don't know what you're talking about and that is okay to admit 🙂

oblique heath
#

may i have your attention please

crude cloud
#

they are not going to drop spigot from the server tho

#

they are going to keep for quite a long while, like I said, compatibility with existing plugins is a priority

pastel imp
#

they are going to hard fork

#

that's just a fancy word for "not going to depend on upstream anymore"

#

which means updates to paper and new releases will be a ton faster after that

#

There will be api changes later on, and spigot plugins WILL break at some point.

#

Pretty sure they will give enough time to the community to switch over, those who don't, their problem afterwards.

#

But they are surely going to make breaking changes in the api, otherwise hard forking would almost be useless lol

sly sonnet
#

isnt spigot like bloatware?

half harness
#

wdym
if you mean like the Bukkit class containing duplicate methods from the Server class
tbh I don't mind that, even if it breaks some java style conventions 🥲
if you mean the actual server itself, then spigot added a lot of patches to remove 'bloatware'

stark niche
pastel imp
#

lol

#

they will split off

#

spigot code will still be there

#

but any further updates will be made directly by the paper team

visual wren
wind patio
#

mc code is something else

stark niche
cerulean ibex
#

constants are folded

#

actually does that even count as constant folding

#

constant fields are inlined

#

and constant expressions are folded

#

i give up

wind patio
#

no clue how the mappings stuff work lol

cerulean ibex
#

i js said 😭

#

when u reference a constant field it gets inlined

#

so in the compiled code theres no getstatic instruction cuz its just replaced with the value

wind patio
#

yeah yeah, I don't argue

#

it was just weird for me at first lol

rotund egret
#

Yeah likely because you decompiled

steel heart
stark niche
#

I just like this profile effect

#

it fits to my pfp so much

#

(also I got 2 profile effects for free)

crude cloud
#

I mean in cases like that the decompiler could do a smartie and put the field in there if it isn't ambiguous

cerulean ibex
#

well isnt it always ambiguous?

#

the constant could be anywhere

inner umbra
#

Isn't SQL already included in java? Is there a reason I need to add it to my jar?

rotund egret
#

Pretty sure java does not ship sql drivers

potent nest
#

Yeah it only has the API

inner umbra
#

Damn.
Might just stick with yaml/json for now then.

distant sun
#

L O L

#

I prefer to save my data manually on a sheet of paper

rotund egret
#

You make it sound like flatfile storage is bad

crude cloud
#

yaml and json are also not included in java

inner umbra
crude cloud
#

but you can't process them without writing a parser yourself.. or by including a library

inner umbra
#

Well these "drivers" are mb (sqlite: 13mb, mysql: 2mb) to big lol

crude cloud
# cerulean ibex well isnt it always ambiguous?

you can probably guess that if there's a constant field for 2.337 and one usage of 2.337 in the same file then it probably comes from that constant, if there are two fields then it isn't as obvious, and it's more obvious for strings

#

idk, the mariadb driver is only 690kB

inner umbra
#

Also not doing anything crossserver so it's not really neccassary.

inner umbra
#

Also isn't only sqlite flat file? The other sql types require a server (way to host them) don't they?

crude cloud
#

sqlite and h2 don't require an external engine, yes

inner umbra
#

Yeah then it's not really needed as I can just use json or yaml which are simpler to use any way.

#

Unless there is another databasing format/architecture I'm not aware of...

cobalt marlin
static zealot
#

SQLite*

#

seems so

inner umbra
#

Ah nice. But I wasn't testing with spigot so didn't know it was included.