#dev-general
1 messages · Page 47 of 1
His code isn't under GPL. Its more likeley all rights reserved.
https://i.imgur.com/0BPYP2J.png
wait but
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.
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
that makes no sense in my mind
is that what you think or actual facts?
(asking cause of your first sentence)
I'm pretty sure someone posted a better explanation of it before.
yeah
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
but if you publish a plugin under a different license
you can't do this though
bc of this
i think
as long as the copyright owner doesn’t enforce it
🤨
You can if it's not enforced
if that code contains GPL the "whole" becomes GPL but your code is still all rights reserved.
well I mean like
what can be done legally and as if everything was enforced
you can do anything if not enforced
The plugin I had wasn't compiled, but was mere source code.
That's what I've provided them.
The relevant point is who can enforce it. Licenses are typically private law, other things might be public law
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.
But that also depends on the country you‘re in etc
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
I guess here in this scenario, that may be the relevant point
But just talking about the points in GNU GPL license, I mean that plugins are required to be licensed under GPL license
Licenses are typically private law, other things might be public law
tbh I don't know what this means, so 🥲
I don't know what SirYwell means by
Licenses are typically private law, other things might be public law
so this may not apply, but if the license does apply, then you'd be the one at fault due to not licensing it under GPL license
I think?
In theory they have to, but if they aren’t, a third party violation the actual license still is in the wrong
But I‘m not a lawyer and a lot of that stuff might actually depend on local law
signed?
an agreement does not necessarily have to be signed lol
yes but the weight it has differs a bit if it was signed
true but that also depends on the case
in this case a simple text message agreeing to such should be more than enough
if this actually goes to coart discord will provide the data from their servers
not saying they were in this case, but they can
which can be requested
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
ypu can request your data to be fully deleted
via email
out of my scope. no idea
deleting a message is also technically requesting that specific data to be deleted.
hence why I am unsure how gdpr has an influence in this case
discords tos are very scuffed anyways
and they are owned by tencent (iirc?) so nothing suprises me atp
Showing off timer tasks?
Me when I'm scared of china
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.
Woah your giving it away on multiple of channels too!
Yeah! I am.
cringe
yes, he meant you
wow you put this in multiple channels yet didn't see the request channels
oh you did
yet still put it here for some reason
and paying in experience too!!!
There's a thing called being broke
then learn to do it yourself or go work, instead of devaluing people that actually work.
Ill pay eventually if there any good
yeah not how the real world works
tbf that's how internships work
but then again people are being more cautious with that now..
yeah but guess what, you can actually use those on a CV...
at least...
and funnily enough, where I live, any internship over 2 weeks must be paid.
afaik unpaid internships have requirements where they need to be handled in almost the same ways as a classroom, at least in the us
all this stuff
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.
This is the best advice
fair enough im VERY willing to give a % revenue however the current issue is we dont have a dev to give us a good spot
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 👍
@wind patio , any chance you can fix the merge conflicts on PR https://github.com/HelpChat/ChatChat/pull/230 so we can merge? If not, I can just redo your PR. Just need to know. Thanks
yeah, sure, not today though 😄
No rush. Just wanted to know.
Smh, could of used the OG before ChatChat, ChitChat
🤣
I LOVE ROSECHAT (in caps)
Ahhah
Barry has hemorrhoids
WHAT IS ROSECHAT_ _
chat's rose
ah thanks
my favourite chat plugin!! https://github.com/Rosewood-Development/RoseChat
Hi, all.
I have a great offer that will benefit us all.
If you are interested in me, pleaese DM me.
🤣
heyyy
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
invisible boss bars are with texturepacks I think lol, just yeet the texture. You could also try using tooltip of tools, you can send a packet for it I think. but besides the ones you stated and scoreboard and this, no other options I think.
🪦
Lmao
I wonder if minecraft is good at rendering high poly models
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
please read the channel names
?
unless I'm misunderstanding
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?
Save a timestamp when the player joins (or otherwise activates their "daily") and check against it the next time they join (or activate)
Caught in 480p
@thorn palm
"it will be cool for you" as in cool for a dev? idk. and he pinged a dev, unclear
that's how a lot of demos work unfortunatelly
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
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
that is how demos go most of the time lmao
unfortunately yes
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
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
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
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.
thays prob asm or smth
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
the jvm wouldnt throw an iae
because they process plugins' bytecode and the classfile version is greater than what it can read
if you're making a mod then just stop it when a screen is open that's not one of the main gameplay ones
1.8.8 - 1.12.2 all run my plugin compiled with Java 22.
I edited the 1.13.2 jar to remove the Java version check in the main method. But when the server enables the plugin it throws the error.
yeah,
^
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
Hmm. Any way around it?
fork the server to update asm? or compile for java 8? 
Can't do that I started using all the new features lol
Perfect time to drop support for versions olden than 2 years
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
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
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?
What about it needs updating?
you wanna take over vaultAPI?
One of the servers that I get an UnknownHostException for is play.boxpvp.net. I've tried to ping it using a node.js lib called Gamedig and it works 😐
It’s more than likely because it’s an SRV record
yeah I think I've figured it out
Managed to still be able to ping it?
yeah by resolving the srv record
Nightmare to do, haha
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
fyi the Server List Ping interface should be unchanged since 1.7 so any newer example is up to date
Interface?
Anyways the problem had to do with srv records, the domain is this one but the actual domain you are using to connect is different and it can be revealed by accessing the _minecraft_tcp_. record
Can display entities scale on 1.19 or just in 1.20.5 when they added the attribute?
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
Oh good to know, thanks.
I think Sponge just has a bug in that regard then 😳
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?
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?
Looks like all I had to do was to resolve the minecraft SRV record of each server before trying to connect to it
Which distribution? Spigot, paper(or fork), sponge, vanilla, etc.?
why should i use adventure library text components when bukkit's color codes with & are faster to cdoe with
Components aren't just for color, click components, hover components, translatable components, formatting, etc
is there a way to use text components with bukkit's color codes?
yes
@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
does some1 has a folia build for 1.20 or can tell me how i can do it https://github.com/PaperMC/Folia
i dont know, but you can download the 1.20.4 server jar from https://github.com/Slackadays/FoliaToGo/actions/runs/8655003221
scroll down and you'll see FoliaToGo text, click on it. it will download a file with the server.jar
DM Barry instead of pinging it
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.
a friend told me that its a good jar
i suggest you to use Paper if you dont know what folia is
Well, if you go the the link I've sent, it will explain what Folia is and who it is for.
if you dont even know what a jar is i suggest you stick to the standard
yea ill do that
correct terminology is important
imagine he goes to a server asking „whats the best jar“
lmfao
no one is gonna know what he means lmao
Well, that isn't true if everyone else calls it just a jar :))
someone help in general plugins 2 i need help asap! 😄
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
no one calls spigot/paper/Purpur or any other modloader a jar what
I was trolling. sorry
at this point i cant tell anymore mal sorry
any advice with this?
Maybe when installing the plugin you install a zip file with the plugin and the resource pack folder.
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.
plugins are usually just downloaded as a jar
I'ma jus look at what some other projects do and copy that
Pretty sure someone has done it with the zip folder
a fair few projects do it the zip folder way
however i personally hate it because it makes it harder to automate updates
Yea i have come across it only once
alr ty
Looking for good developer, i am going to pay them DM me.
#showcase message
whats that mod he uses to test GUIs? It does seem useful
DeluxeMenus i suppose
uh not the gui itself but the mod to test packet delays, loss etc on the left of his screen
can you like not spam every single channel? request channels exist.
and you know about them too...
can we just instant mute people like this lol
lol
not the one that is incompetent to read a sentence
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
Anyone well versed with 1.8.x packets?
Just ask your question.
Right, thank you
Player's seem to get kicked with this message whenever a custom boss enters a specific phase
https://imgur.com/a/crash-RTrg2wc
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.
PayloadCMS.
how do i get the <@&346970042854014978> role?
or does that refer to developers of papi, not just general plugin devs
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
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
It's reserved for the cool devs only 😎
@pallid gale yo can I get dev role? Cheers
dkim moment
Smh dkim
dkim hasn't had a dkim moment in months. that's a dkim moment
I probably applied for that role like 28 months ago
Me jealous
Thank you very much!
ngl guys some times i see request paid
and those mf's pay such little money
for a jobs in another level
Idk, $4 a model is good work if you're making worms
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
Forklift license doesn't pay you sadly, it's just an inanimate object 😦
haha xd
imo there should be more regulation in requests
meh, increased moderation for little pay-off
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
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
We can try again ig
trying does not hurt anyone
It might
how so
worse case scenario, a stupid request gets downvoted to hell
I don't see the issue in that
what is worse then
A good post getting vote bombed
why would that happen though?
also, you can limit it so that only X tier can vote
gate keeping it
and avoiding trolls
I don't think you can limit emotes that way without a bot
React perms only prevent new emotes, not adding existing ones, unless they changed something?
uh
fk ye
well wouldn't be hard to add to barry
Get to work!
No
barry is not open sourced
Just ping cube with code that works and pray 3 times a day
Afaik you can also prevent them
dont even know in what language the bot is coded
Just write it in js and you'll probably be right
Eh, java javascript, basically the same thing
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
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
not the channel btw
you could in theory center it
by putting a fake player model inside and putting the player wherever you want but invisible
That's a fair point, however then how would you detect when they go back into first person?
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
Adam is one of those people
asking for unreal tasks
thinking we r slaves
and paying 5$
Don't bring me into this 👀
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
I guess that's why you hide your face
yeah? how many toes do you have
bruh lemme count
Taking a long time...
I'm getting nervous, does this mean many toes or a struggle to count

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
pfft, customer service is extra
probably
That’s so real
real
same
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 now try to run a gradle task
you mean you want to pass something to gradle run configuration?
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
Yeah.. I meant to say java code
I will use env variables, those are available for the java code
so, you want gradle vm option to be passed to java vm?
Ye
you have to configure those in the gradle task
& other relevant methods
passing -Dblah will set the property in the gradle vm itself
Mf deleting messages n shit
You caused confusion
Alright sorry
It's OK, I won't curse anymore
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?
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
😅
sorry to ping but would u be able to help me in #development ? I noticed you are a spigot plugin developer in your bio so...
the channel appears quite inactive hence I considered pinging someone
hey. i haven't really worked with packets but i can try taking a look
thanks
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
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 
I have one scheduler that loops through every players inventory asynchronously 
Which is the one I'm concerned about
skull emoji
if you write code that randomly outputs a string until it accomplishes its task, that's O(1)
no need to thank me
:sniffle:
So I guess I can just use the async timer from Folia
why are you doing that asynchronously anyway
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
💀
on every item in the players inventory 
MorePaperLib is what we use for Analyse
Is there anything else I have to look out when adding Folia support?
I'm torn between FoliaLib and MorePaperLib
I mean, they're gonna be doing about the same shit, there isn't a lot to abstract away
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?
you can try but I don't think it'll work
because iirc it relies on the built-in server-shaded adventure
sadge
huh
doesnt paper already include folia api?
and I also think it falls back to bukkit schedulers if you arent on paper
Spigot doesn't
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
Before you say anything
Lol
Fair reason tho
I wish I could dump Spigot but I can't sadly
spigot W
sounds like skill issue for using spigot
ah shit only saw this afterwards
lol
That's exactly why I said before you say anything
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
you got a source on that?
also even if it does... i'm sure way more people go to spigot for plugins than modrinth
I think it depends what comes up on google and the search they use.
spigot has 2m+
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
modrinth has 8m+
isnt modrinth mainly used for client mods though?
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
that still doesn't really mean anything
- mods 2. plugins 3. Modpacks 4. resourcepacks 5. datapack
what a suprise
their mod market might be massive and plugins is still fuck all
well modpacks would be 3. place
which I would assume makes it not as massive as you would think
most ppl probably go to curse for modpacks?
unverified information btw
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
most downloaded plugin is also a mod
The top 10 most downloaded plugins are also mods :')
If you go to versions of a plugin you can see the downloads for bukkit versions
although that does not give you the total
i meant client mod
Actually found a good comparison, TAB's latest version 4.1.5 has 2289 downloads on spigot and 882 downloads on modrinth
Simple Voice Chat seems to be mostly fabric/quilt/forge
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
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
Looking at coreprotect v22.4:
- Spigot: 8750
- Modrinth: 1851
- Hangar: 541
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
i'm confused though
if plugin devs start moving to newer alternatives, userbase will also go
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
but devs are scared to see the download count drop lol
I use it for one of my plugins
and several others do too
I believe some people started moving because they make money from free resources on modrinth (not much)
ah nice
is this little ad here paying that?
is there an adfly sorta thing when you download?
I believe this https://modrinth.com/mod/noxesium has been like less than $5 
(i could be wrong though, I can try to confirm it later)
they should chuck something like adfly on the download links coulda earnt a few hundred at least
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
is it paid for downloads or views
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
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
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
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)
that's actually false though. They never said they won't do it, they are just focusing on the foundation of hangar right now and there are plans to look into "freemium" instead of just premium
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.
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
may I ask why you dislike freemium? For me it sounds like the best model since closed source is bad...
I don't dislike freemium, I dislike that being the only option
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
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
well, they can also just argue that if they dislike it, dont use hangar xd
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
Definitely agree a ton with your points here, open sourcing should be an option not an expectation or being forced.
At the same time, if I want to offer a paid plugin/mod, that should be up to me
If hangar took a commission, surely they’d want the most sales anyway?
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.
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
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...
Any site that doesn't give developers full authority over their own resources is shit.
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.
yeah, I see your point
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.
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?
Afonso, ever considered being an official rep for Hangar? Haha
Probably direct, since it is quite easier to both implement and handle. But even then, we all know from spigotmc, paper would still have "some" responsability on it, or at least be blamed for chargebacks, etc.
why do you say that? xD
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)
Haha, I was only messing about because you have a lot more to explain about Hangar than any of us.
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...
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
From this convo... Its looks like paper is just trying to be a file host which isn't worth it lol
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
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.
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)
Ah
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)
yeah mcmarket also takes commissions, and I think spigot still gets some "issues" because of chargebacks or similar, and by issues I mean complaints lol, do not mean they are involved, but users might think so.
I don't see how your message is any different from what I said? It is forcing if you decide to post on their platform, ofc you can choose not to, but that was my point that people might not post because of it
And yes their goal is not to be big and I also mentioned I understand them, I just don't like it
I mean, they kinda have like 10k in the bank if I am not mistaken from donations alone.
I think your phrasing I'm not too happy with, but I think your right were in the same vein.
I'm probably just being a pedant
My phrasing is probably pretty bad, writing is not one of my proudest things :')
Same xD
I mean, we can't forget Hangar is still in beta, many things can change in the future
I do okay and then sometimes I just use the wrong word entirely lmao
Waiting for the day sponge starts using hangar over ore
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.
Based
Suppose that solves most of the issues most people here had xD
Obfuscation is trash anyway
still sucks to moderate obfuscated jars ¯_(ツ)_/¯
even if you can deobfuscate it with some work
I think obfuscation is useful in certain circumstances
that's extra work for mods
anti cheats, etc.
Yes we know of your bias for money Charlie
Who doesn’t love money?
I don't fwiw
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
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.
Security via obfuscation isn't security womp womp
ofc not, but it stops 95% of people trying to bypass it
Me when I make up statistics
One of the best anticheats https://github.com/GrimAnticheat/Grim and it's os
As God intended
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
facts, although think vulcan still the best atm
Anyone giving up that fast wasn't going to be that big of a problem to begin with
Like setting up small rocks to defend your camp, maybe it'll block children, but they wouldn't have overpowered you anyway
better than nothing ¯_(ツ)_/¯
I guess in the same way having two doors would be more secure than one.
Get to installing!
isn't there some copyright you can use to make it illegal to decompile a file
or at least publish or use those results
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
"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.
yes, there is a section in the guidelines about it, you can only upload other plugins with the owner's permission, forks are also allowed ofc.
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
I'm thinking they copied ores rules lmao
Thing with this is that the obfuscated one could be malicious but not the non obfuscated one
they did lol, it is based in ore
the whole project lol
I said that, yes 🙂
These guidelines are loosely based on Ore's plugin submission guidelines, licensed under the CC BY-SA 4.0.
Last updated: May 08, 2023
well you said "I am thinking" which implied for me it wasnt confirmed for you
so I confirmed it
Well the project and rules are separate peices
It's a shame they didn't stick with scala (thank god)
lol
this seems like it would have many downsides..
it does, web server down? don't restart your server lol
or else... rip
that is one of them
i heard once that paper or spigot don't even allow that by their tos
but prolly heard wrong
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
why?
why what
you are spamming maven lol
ah
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)
isn't that to get around some mojang copyright or something
paper plugin loaders fix this indirectly since they still allow you to use maven but also allow private repos, which is pog
nha, just to make jar sizes way smaller and technically if several plugins use the same library, it is only downloaded once
Small jar sizes on spigot I recall was the motivation to download libs initially
well eitherway, paper plugin system > ALL
i should prolly stop using spigot for my development..
I am a fan of the isolated classloader
shouldve for a while
Sponge has a pretty cool loader, but it's not fully featured atm 😦
State of Sponge: dead
love the concept of State of Sponge
Well you're in luck
Greetings all! We’re busy preparing for the latest State of Sponge and thought we might give you an early run-through of what we’ve been up to lately! State of Sponge XXV Get ready to join us for State of Sponge XXV! Currently scheduled for the 23rd of March at 21:00 UTC. This time around we’ll be using the latest SpongeVanilla 1.20.4 and hopef...
Sponge has 1.20.6 builds owo
that's epic
Most of them are on Paper, it's just the website that's important. I don't have the traffic SpigotMC provides on any other platform that allows paid plugins
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
Real!!!
Have fun and let me know what other tech honest ad you would like to see!
I do a TON of educational stuff on stream!
Join the null live streams!
https://www.twitch.tv/MarekCounts
https://www.youtube.com/@NullLabsLive
Want to talk about tech with other super nerds?
Discord: https://discord.gg/SaJFQ8V
Twitter: https://twitter.com/TheNullChannel
item
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)
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)
8 + 8 = 16 => 52
Of course
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.
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
what would be "everything else"?
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
Do you HAVE to use swing or you WANT to use swing?
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
yeah using swing here definitely seems like it would be a case of "when holding a hammer everything looks like a nail"
or hammering a nail with the handle instead of the hammer part itself 🤓
That part is the head
Thanks, doing my best to not get behind
friend only knows swing, so the idea was to not have to learn much new stuff
well its N times better to use proper engine instead of swing lol
well I don't think I require a full on game engine
I don't need physics or whatever
lol
yeah well, its just my opinion
Hammer head shark 🦈 *chomp*
javafx low key is a graphical library
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++
oh hell nha just had an exam with matrices this morning
LMAO
that must be painful
they're important tho
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
¯_(ツ)_/¯
a better class than limits, integrals and trigonometry
lol
(which is the other math's class)
I have Math1 and Math2 (the matrices one)
#showcase message
omg its getting more and more real
these people are freakin talented
magic of resource packs
I never knew that it's possible to change players GUI that much using vanilla shaders
yeah shaders are the only possible explanations to these
shaders are basically mods for rendering
shaders are super hard to make, harder than plugins or even forge mods unless you know opengl and stuffs
yeah I'm interested in shaders rn but I don't know how to start since there is no a lot of tutorials and it will be hard to start learning them
from my (very limited) experience, you will have to deal with advanced maths like linear algebra in shaders and also will have to know a bit of lwjgl shader methods (which was kind of confusing to me).
I think it would be easier to just learn everything about lwjgl than to learn only shaders part of lwjgl
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
lwjgl is not related to shaders
it just provides java bindings for a number of native libraries
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
how much I love working on my degree 
me when coding:
cant relate
10+ tabs is the default state of my browser
when I can only see the favicons I know it is bad
-10 tabs for me lol
fr
funnily enough, did a cleanup today
no
check the ShaderLabs discord
there are several resources there and many opengl resources online
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);
well you can only rotate the player 20 times per second
what if you teleport them and set like a 2 tick teleportation duration
wdym by that? Also I can't use teleport() because I also apply velocity to player and teleport() will ruin everything
well you can teleport a player to a different orientation and set a duration will which interpolate the players movement
so you can't use teleport, or spectating entities, or riding them
I can use player.setRotation()
No
it's simply Update Entity Rotation packet
there is no other way to turn the player other then teleport or rotation
duration of interpolation like literally #setTeleportationDuration
where is setTeleportDuration?
afaik it isn't possible to set a duration besides teleporting every tick
well how else would you make smooth rotation
yeah that's what I'm doing but instead of teleportation I use setRotation to don't ruin velocity of the player
without riding entities or spectating them
that's why I'm asking maybe someone knows something that I don't know
yeah
I know for xyz there's velocity to smoothen things out, but idk anything about rotation
maybe try the teleportation method since that would work with #setTeleleportationDuration then quickly fix velocity
?
just on any entity
I don't have this method
oh
weird
I'm tripping lemme check
oh it's a Display entity only thing
damn
that's kinda weird
that's sad tbh that there is no way to make a smooth rotation without riding or spectating entity
what if you send rotation packets more often
it'd still be capped at 20fps
tbf from mojang's pov, there isn't really much of a reason to add this
tho idk if those only work once a tick
ah
that's really dumb..
actually i wonder if it's possible to do > 20
i kinda misunderstood what you said at first
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
try sending packets
I'll try that
manually more than 20timss a second
does anyone here use the excellent shop plugin?
but I think it won't do anything tbh. Still worth of trying
I'd recommend asking in their discord server
especially because it's premium, so I doubt many, if anyone here has used it
You set the teleport duration of a display entity then teleport it
unfortunately i cant my dev who bought the plugin is in the hospital so i cant verify purchase TO ask lol
#dev-general is for plugin developers
Then it interpolates
they are tryna rotate a player
ye that's interesting... didn't know about that (but I also know like nothing about display entities)
but in this case they mean player
I don't think teleport duration works for players yea
o
uhhhh maybe #general-plugins but also make sure to check the "manual": https://nightexpress.gitbook.io/excellentshop/
Just ride the display entity
they said they can't ride any entities or spectate
Pfft
also ask your question as well even if no one has used the plugin, because some questions are common between multiple plugins @wet bison
i sent a message in there... and their manual is quite bad lol doesnt really help much haha
oh 🥲
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)
well yes obviously
Lame
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 :(
lmao nice. try to make the system smart tho and minimize how many times you send packets. like instead of X packets per second, do X packets per degree
yeah I will when I test it with my friend. Right now I'm sending 60 packets per tick 💀
per second you mean 😭?
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);
}
}
}
}
Bro 😭
bad bad idea
60 times per second is smooth enough
and you could instead do like
that's why I want to test it with friends first and then optimize it
I would say packet per 0.5 degree to make it as smooth as possible
720 packets in 0.2 seconds if the player flicks their head backwards
that's dos attack lmao
yeah I got your point... well as I said I will optimize it to don't dos someone
you gotta compromise between smoothness and network limitations
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)
btw you're also prone to doxing yourself
and increasing the ping for everyone
actually no for your scenario it's probably fine
o I just noticed
make sure to space out the packets if you do decide to do like 3 times per second (to achieve ~60 fps, or maybe more than 3 to have it smoother)
OR
when the rotation starts just create an ScheduledExecutorService#scheduleAtFixedRate
never do your own threads
use this^
I'm just wondering, how is rotation factored into this ^?
As in why do you need to rotate the player?
i think they're trying to make the spectator like as if you were in that player
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
Idk why they wouldn't use rideable entities for that though
yea true they could just ride a display entity and everything would be smooth
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...
if performance isn't critical then use whatever is most convenient for you
which will probably be yaml i imagine
Preferably efficiency.
Currently its just a bunch of json strings yeah.
if you look in f5 then you'll just fly
how big are they
let me rephrase, what is the expected combined size of all of your strings
10kb? 100kb? 1mb?
There is no expected. Its all random.
well surely you won't have a terabyte of strings right
there's gotta be some range
or is a terabyte on the table?? 👀
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.
you're storing a single string per file?
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
Could be but isn't likely.
yeap
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
Preferably. But I do it all async so it can take a bit to run if it needs.
opening a bunch of separate files like that seems a lil sketch
at this point i would definitely start considering using sql
That system worked for years. But I'm recoding now so looking for better ways.
i'm sure it works as is, but if you want efficiency... 🦐
Thought so but I have to make everything based on keys.
you already have keys
they could also use jackson library
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
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.
i mean the two big options are either storing them within flat files or in a db
i dont see any besides those two
Yeah thats why I found too.
if it were me i wouldn't think too much and would just use sqlite
Yeah that seems like the route. Gotta read into it though. Only used it once before lol
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
Yeah the libs are usually what steer me away.
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
sure
thank you Emily
Gradle is good
paper on top
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
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
Yeah that'd be really great
SpongeVanilla 🥰
why would a lot of plugins need to be rewritten from scratch?
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
they just wouldn't pull new changes
from what I heard they don't like how whole spigot thing works
You don't know what you're talking about and that is okay to admit 🙂
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
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
isnt spigot like bloatware?
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'
okay maybe I understood conversation in a wrong way when I was in paper server and since then it just stuck in my head that paper want to separate from spigot in one day.
that is what they are going to do though
lol
they will split off
spigot code will still be there
but any further updates will be made directly by the paper team
Wow thanks sir! Good post!
LOL same thing in anvil inventory
well maybe because you decompiled it?
constants are folded
actually does that even count as constant folding
constant fields are inlined
and constant expressions are folded
i give up
yeah I can't tell you the reason why it's like that
no clue how the mappings stuff work lol
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
Yeah likely because you decompiled
Valorant player spotted
I'm not
I just like this profile effect
it fits to my pfp so much
(also I got 2 profile effects for free)
I mean in cases like that the decompiler could do a smartie and put the field in there if it isn't ambiguous
Isn't SQL already included in java? Is there a reason I need to add it to my jar?
Pretty sure java does not ship sql drivers
Yeah it only has the API
Damn.
Might just stick with yaml/json for now then.
You make it sound like flatfile storage is bad
yaml and json are also not included in java
Yeah but you can write the files without any dependencies.
but you can't process them without writing a parser yourself.. or by including a library
Well these "drivers" are mb (sqlite: 13mb, mysql: 2mb) to big lol
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
Also not doing anything crossserver so it's not really neccassary.
... only? Lol
Also isn't only sqlite flat file? The other sql types require a server (way to host them) don't they?
sqlite and h2 don't require an external engine, yes
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...
comparing yaml to sql is just weird
Doesn't the spigot server incldue a SQL driver?
SQLite*
seems so
Ah nice. But I wasn't testing with spigot so didn't know it was included.
