#dev-general
1 messages · Page 42 of 1
Yes except that there's review processes.
At least for paper, its pretty good
In my limited experience
Spigot is a mess in general
I suppose so
Yeah Spigot ehh but Paper I've seen pretty well
Paper hopefully will rewrite some stuff after hard fork
rewrite minecraft from scratch when
Alot of people do xD Just never complete it.
One guy is open sourcing his version.
Haha are these all yours? I don’t mind the ping btw, I nearly scrolled past as I didn’t see it 😂
the marked ones, other ones are from purpur
looking to optimize the server further, since upgrading to 7950x3d didnt do much lol
Oh wtf really 😂 it should be flying with that CPU
yeah its weird, we noticed its almost as if the performance got worse
0.0, let me know how you get on with testing and your own patches, even in DMs
I’d be intrigued how much you can boost for that chip
yeah well it was weird for me too
thought thats going to be at least like 20% increase in performance, because we upgraded from quite an old one
though server owner was doing janky stuff without real understanding on how stuff works and removed incubator vector jvm flag for pufferfish SIMD
pufferfish simd stuff is a joke anyways
yeah thats just a showcase of how im doing all of these things for better performance all to find out he changed some settings without me knowing
I remember when he kept thinking ticks-per for mob spawns lower value was better and setting it to 1
until I explained it to him like 5 times lol
do you know any other performance-orientated paper forks?
I saw a few such as Leaves, Plazma
I'd assume most of them don't know what they're doing
one named G.. idrm the rest
If an optimization isn't in paper, there typically is a reason for it
(e.g. it doesn't actually optimize anything or it isn't safe/changes vanilla behavior)
I had a look at few patches, some of them do make some sense
yeah that's why I'm working on my personal fork now lol
because we have some things that dont need vanilla behaviour
and better of would sacrifice that behaviour for even a small amount of performance gain
time to implement my own janky folia 😎
I never understood why paper forks don't just PR lol
prob cuz they know it wont be accepted lol
why wouldn't it though?
or at that point where they want their own identity such as purpur
some of this and maybe some of other reasons
I suppose paper team has their own vision of whats acceptable and whats not
even if it would make sense to be included in paper
Well in this case probably because they're breaking functionality.
Id assume some of the patches new forks do might work and would pass as acceptable but as they keep expanding there may be more of the ones that wouldnt and people dont bother PRing
why didn't paper PR into spigot? 🤔
Spigot would never accept, hence why Paper was made
Has anyone here tested Nvidium? The numbers in this video are insane: https://www.youtube.com/watch?v=LX3uKHp1Y94
Patreon: https://www.patreon.com/purplers
Discord: https://discord.gg/pm4ypRaZNc
Twitter: https://twitter.com/purplersmc
Cortex's Patreon: https://www.patreon.com/mcrcortex
Mods:
https://modrinth.com/mod/nvidium
https://modrinth.com/mod/sodium
https://modrinth.com/mod/bobby
Need a Minecraft Server?
Get 25% OFF MCProHost using promo code: Purpl...
Yeah lol downloaded Bobby and Nvidium because of this video
The boost is noticeable, yeah
Maybe not as advertised unless you have 4080
Every time I try to edit a commit msg
rip my 1070
sadly not iris compatible yet (active shader support)
Hello. Is there someone who could explain what this error could be from?
[warning][gc,alloc] Tuinity Chunk System Worker #0: Retried waiting for GCLocker too often allocating 567698 words
[7:36 PM]
We are receiving this error along with it stating that our server is running ticks behind. Once it gets to a certain point its kicking us.
We use Gportal and have 12GB of Ram allotted.
any1 know what cause this ? the place that dont have pixel is now black
Usually see this when you save a multi layer image as a png.
Merge all the layers then save.
im new to asprite, where is that
If it's code... make sure you don't have a background color set to black when drawing the image.
Never heard of that unfortunately.
maybe i should do this...
sorry my bad missing the e in aseprite
i think its my code issue
i do have a renderer that draw shape base on the vertex position and order if no texture is presented
Is there a server host that you all recommend that would be better than gportal for a public server?
How many GBS would you recommend for a server with around 100 plugins?
bloom host ? idk i use it
seem quite ok
good enough for now. i will do color blend later
done it -ish
bloom, Hetzner, OVH, ReviveNode
devouch revivenode
support has been known to be garbage (atleast used to be) and telling people to wipe their worlds due to oom issues caused by revive nodes old flags
I mean, I just listed a few, some friends have used it and had no issues
hence why I recommended it, but if that's true then yeah.
there's also novonode?
Novonode is good yeah
Anyone know how servers use texture packs to have images in chat? Take play.respawn.org for example, they have colorful prefixes, images in their tab, etc. And even do "custom items" with their models, I'm curious about that too.
Unicode
can I register a expansion without a identifier?
no
wat
it's probably better not to ask
yeah hes creating placeholder api from scratch
real
everyone thinks PAPI is something big behind the curtains
its just one line of code
😭
What is the difference between replace and replaceAll?
replaceAll uses regex iirc
while replace just replaces
replaceAll is a misleading name, it uses a regex as dkim said
👍
A proper ide will yell at you if the regex string is invalid
nah I just want to do a prefix placeholder. Nothing too crazy
hey devs, any idea how to fix that issue, that if you use shaderpacks, you cant use emotes / gestures via custom models on players? But without shader its working great. With shader my skin looks like this. its a known issue. I thought about working with a datapack instead of working with like ItemAdder and HMCCosmetics for player models that could be triggered thrue plugin command or as an addition. Custom new added Mobs Models are function tho, and custom models for existing mobs like sheep and so on are also function like you can see in FreshAnimation-Resourcepack. But only models for the Player would course a graphic bug with interfere using a shaderpack. Its super weird.
#1198375922483593306 message the pictures
would maybe help using vulkan instead of opengl? If its a limitation of minecraft, working with Datapacks could solve this then maybe somehow instead of using plugins? what would you guys say. I dont know what to do and playing MC without shader would be really bad for our players, of course. Any Idea would help actually how to fix that somehow 
feeling terrible
Anyone have any experience with the new TextDisplays?
I am trying to set a width and having it left align, however it stays being centered.
this.entity.setBillboard(Display.Billboard.CENTER);
this.entity.setAlignment(TextDisplay.TextAlignment.LEFT);
this.entity.setLineWidth(100);
any1 know why line 92 is making a null poiter exception ?
seem like a conflict between imgui backup obtaining current context
if (ImGui.getIO().hasConfigFlags(ImGuiConfigFlags.ViewportsEnable)) {
final long backupWindowPtr = org.lwjgl.glfw.GLFW.glfwGetCurrentContext();
ImGui.updatePlatformWindows();
ImGui.renderPlatformWindowsDefault();
GLFW.glfwMakeContextCurrent(backupWindowPtr);
}
and the window init
oh, i forgot to call in for the init 💀
real
oh boi imagine the commit of 1 line change 😭
I mean that happens all the time
org.lwjgl.glfw.GLFW. lovely packages
Hey guys, Does LuckPerms from velocity receive the events from backend servers?
I tried registering some luckperms events in my velocity plugin and no output, so I figured maybe it can't even listen to events executed in backend servers.
real
its an antidepressent
how can i make URLs clickable im minecraft
should be documented id guess
hmmmm look like memory leak of some sort
the backgroud animation still going, but the mygui stuff is freaked out and it report frozen
is this mem leak ?
What about using a profiler or taking a heap dump to find out if it is a memory leak?
hmm why try that later

bruh
just realize i type why instead of will
but the problem is maybe the imgui stuff is not being refresh each frame
on my old system i can poll first or last without consquence and i forgot that, and i will own up to that 1 line commit 😭
seem like a bit too much memory usage for a test scene
i mean task manager can only tell you that much
woah it just crashed window explorer lmao
i think i look at the wrong place, it only use around 500mb, but the cpu usage is like 17%, of which are very simple animation, i dont think it would consume that much power
what exactly is this again?
upcomming triple A game
my uni research project 
public RankChangeListener(LuckPerms luckPerms){
EventBus eventBus = luckPerms.getEventBus();
eventBus.subscribe(DataTracker.getInstance(), NodeMutateEvent.class, this::onNodeAdd);
}
private void onNodeAdd(NodeMutateEvent event){
DataTracker.getInstance().getLogger().info("Node Changed.");
}
Shouldn't NodeMutateEvent be called whenever Im adding perms to groups/users or changing user groups etc?
My function is not even being executed. I'm using Velocity, and UserDataRecalculateEvent works fine, but I need this to work.
the event will be called on whatever LuckPerms instance that processed the change
if you add a node from the proxy LP, the event will fire on the proxy LP; if you add the node on a server LP, the event will fire on that server
So I should listen to plugin messaging instead?
UserDataRecalculateEvent is called upon all instances once a recalculation is required but Node events only in the instance of the specific server?
the data recalculate event is fired because the data is reloaded from storage and so it ends up being recalculated; server A makes a change, server B is told something changed, but it doesn't know if something was added, removed etc
Does plugin messaging give sufficient info so I can run whatever I need from my velocity instance?
So no option other than making a second plugin for backend..
depends on what your goal is
I have a velocity plugin that tracks domains and sends messages through discord webhook and I wanted to check if rank changed then send webhook. But I guess it has to be seperated now.
that'll be the best way yeah
Or just make all rank changes on velocity
How do I escape dots in a config value to avoid confusion of nesting?
www.google.com: value
With the configuration of paper
off the top of my head, try String#replace(".", "\.");
\. is an illegal escape character
just put it in ""
What do you mean?
its '/'
Still don't understand.
"www.google.com": value
wait no idrm
yes
I tried this. Doesn't work.
doesnt let you specify it or what
It deletes the quotes itself
and then replace the squares?
suares?
uh not sure
depends on the impl
could try looping all the keys and checking what you get
That doesn't work either. I'll try just replacings dots with dashes. Although, if anybody finds a way to use dots lmk
if it doesnt work you could instead replace the dots to, lets say, - or _ before getting/setting the key
whop
Great minds think alike, M...
_ would be better because - is allowed in domains
or any other wacky character that works w yml
I have control over what the domains are so no dashes EVER
sure if you think it's a good idea to write code that isn't future proof from the very beginning already
underscores don't work either. They get cut for some reason so dashes are the ones!
Wth

day 2
free text cloud
that stays for ever?
and that allows to create custom URL's
for rexample www.hello.com/text/url
Don't know of any... but sounds easy to make.
wdym
like paste.com and etc
that allows to upload some text and it will stay for ever
?paste
Paste Services
When asking for help with a config/menu/code issue please use our paste bin:
(we prefer it over pastebin.com)
• HelpChat Paste - How To Use
oh yeah why not make it? Could be a nice project
theres a bunch of other ones that other ppl have made such as https://pastes.dev (the one I personally like best), made by lucko
helpchat just uses hastebin
theres also https://xgob.in
gobin is a simple hastebin compatible paste server written in Go.
made by an active member in the JDA server
and of course
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Well I was completely off on what you were asking for lmfao. Gonna keep the idea to myself though incase I ever want to make it now.
because i dont want to host it for ever
its quitely the only reason why not
use a public pastebin
a lot are permanent
they just ask that you don't spam it and stuff
I think hastebin and its forks are the only ones non permanent right?
hastebin is non permanent yeah but i think helpchat pastebin is permanent
im not sure tho
actually
idk
i just used discord search feature and like 2020 helpchat pastes dont work
then discord dropped its magnifying glass 🥲
Mobile?
What do you mean then?
pastebin
all that I've listed above have an API
hastebin, pastebin/helpchat, gobin, pastes.dev
https://i.imgur.com/8bG2uGM.png @inner umbra
Ah
You can just embed images here BTW don't have to use imgur. Only in #minecraft for some reason
pastebin's is more strict though due to its size
yeah i saw their API
also wants Dev key
lmao
nah i aint doing that
hmmm cause final goal is save IPv4's
yeah #minecraft perms are weird lol
but I just used ShareX which automatically uploads & copies to clipboard
👍
so im a python dev and im curious about learning java for minecraft purposes. but im also wondering how i could still utilize python in a mc server workflow?
ah wait i guess i can make an api that uses server data, using sanic
Python 
jquery ❤️
Why you shouldn't use jQuery
- jQuery is a legacy library. Standardized features like
querySelector, CSS animations, andfetchmake many of its features obsolete. - Using jQuery over standard features is a waste of bandwidth.
- Because jQuery is so bloated, using jQuery often means using jQuery for everything, which means you learn less about standard web development.
- jQuery has fallen out of fashion, and full frameworks (React, Angular, Vue) are more popular.
- jQuery's cross-browser support can be substituted with the few polyfills you actually need. This also makes it easier to update when features become better supported.
- If you really just want a shorthand for querySelectorAll, consider bling dot js.
anyone know if there is a way to keep a player's nametag even when they have a passenger?
Because jQuery is so bloated, using jQuery often means using jQuery for everything, which means you learn less about standard web development.
jQuery has fallen out of fashion, and full frameworks (React, Angular, Vue) are more popular.
These 2 points together don't make a lot of sense.
I’m not sure why we have a “no jQuery” FAQ for a Minecraft discord 😅
I mean, the main topic is Minecraft but #development and #dev-general are not limited to just minecraft development.
https://paste.ee consider checking it out
Ok for some reason discord pops up an upload failed error whenever I try to send messages in #development
https:// mclo.gs/wGNjzWR
@final scroll
thanks ^^ it matches my needs
when you want to offset a few line of code into another class 
At our company we've always named our git branches like this
fix/dashboard-pie-chart-showing-to-non-premium-users
however when looking up recommendations and best practices, most sites suggest something short like fix/dashboard-content.
Is there a reason why a shorter branch name is prefered or why our more descriptive approach is bad/pointless?
Probably because the PR will say more information about it
Yeah I’d say it’s mostly pointless, unless you’re working with many branches in parallel
%changeoutput_>=_input:{edprison_currency_killpoints}_matcher:{edprison_calc_(({edprison_variable_changeable_kp_booster}*{edprison_variable_changeable_kp_booster})*2)*150}_ifmatch:&a&l✔_else:&c&l✘% why is this not parsing?
Too many placeholders in a placeholder
Try adding %utils_parse_changeoutput_…
Also, Don’t forget to install the utils extension
/papi ecloud download Utils
ok
%utils_parse_changeoutput_>=_input:{edprison_currency_killpoints}_matcher:{edprison_calc_(({edprison_variable_changeable_kp_booster}*{edprison_variable_changeable_kp_booster})*2)*150}_ifmatch:&a&l✔_else:&c&l✘%
like this?
Yes
Let me know if you have any issues
doesn't work
What does it output when you try to parse it?
a bit wonky, but it will do for me
Ooh, what’s the end goal for that?
a level editor basically
got the grid working
im tired
Ah
You having fun there? XD
yes (no)
Lmfao
For this https://i.imgur.com/TWkQZmw.png
Took me too damn long, and I just put a line on the wrong line… I was raging in vc and was like why the hell isn’t this working then I asked my other friend and was like that’s why. 🤦♀️
Like the emojis were the biggest pain
We use the issue/ticket code for this (prefix + incrementing number). For GitHub issues where the code is just an incrementing number, I got used to using issue/<nr>. Whenever there isn't an issue I can link, I either open one if possible or stick with short naming.
Using the issue/ticket code is pretty nice because:
- it lets others almost instantly know what the branch is for about even when there is no PR open yet and commits are just "oops", "shit", "fuck", "here we go again", "I hate my life"
- chances of conflicting branch naming are pretty much impossible unless multiple people are working on the same issue
- it makes finding old branches pretty easy (if for some reason you don't delete them when merged)
ray casting suck 😭

idk why running this sometime crash window explorer 
interesting, it seem like my program sometime crash the windows gamebar
any1 know what could cause this? cursor position conflict ?
looks like bad math somewhere
some1 pointed out that it is " wrapping the spites based on position instead of width"
horrible math mistake in fact
baole can you help me?
just a sec
what is the problem
could i send you photo in dm and you try to figure out?
idk, maybe you could send it here, some1 could help you also
i cant send photos here is blockd
use an image sharing website
it is not blocked
unless it is with permission and stuff
anyways if you need help with coding and stuff, send it here and maybe some1 can help you
Free image hosting and sharing service, upload pictures, photo host. Offers integration solutions for uploading images to forums.
use an image hosting service
and if it is minecraft plugin code
i might not be able to help you
oh wait have it on pc cant send it anyway
oh ok
also you probably want to be asking in #general-plugins #placeholder-api #1007620980627230730 #minecraft
one of those channels
i did
I was thinking, if you have a paid plugin, why not post it yourself to the nulled forums and stuff, but purposefully make it not work. Then people who do post legit plugins won't post yours cause it is already on there, and the people who download it don't get a working version.
big brain ngl
Instead of going through the work of like keys and stuff
until someone reposts yours as a result of the one currently up not working
but still worth a try tbh
It would stop most
Although ig they were never going to pay anyways so it doesn't matter
Make sure that yours is always one version ahead (just rename the jar)
It goes against most resource websites TOS
Their nulled forums, their TOS doesn't mean squat
It's not the same plugin thoufh
Youll get banned for leaking your own plugin with a backdoor
It's just one that looks like it but never works
thats not a backdoor
And how will they ever know it's me
although it'd prob just get low ratings and taken down
idk how moderation works there
Mostlikely ^
Yeah not sure
Anyways I bet half of the nulled forums plugins have backdoors in them
rookie numbers, we gotta get those numbers up
Fr
true
whats the motivation behind posting on nulled forums anyways 
besides putting a backdoor
just generate a new user key and distribute it as a gift 
Internet clout
Just create a temporary license that works until it hits a random number of players lol
Or just have some sort of troll mechanic in jt
Like randomly teleport players 5 blocks behind them so they think are lagging
Spawn a clown skin in the distance until they look at it, then it disappears
No one will believe them
or after a random amount of events it just stops working with no errors
funny mouse position i got there ....
I want to add a chat reaction bot to my server i didn't find any bot
same as #chat-reaction
Ours is custom so that's probably why you didn't find it
that's the fun part of doing native stuff
but the log might contain a stacktrace that allows you to trace down where the issue is in your code
this the best the stack trace can give me, probably cause by my lambda expression
public GameObject loadGameObj(int gObjectID) {
Optional<GameObject> result = this.gObjects.stream().
filter(gameObject -> gameObject.loadUid() == gObjectID).
findFirst();
return result.orElse(null);
}
nope not that one, in the hs_err file
oh
can you show me how to read it?
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.lwjgl.opengl.GL30C.nglGenFramebuffers(IJ)V+0
j org.lwjgl.opengl.GL30C.glGenFramebuffers()I+20
j org.lwjgl.opengl.GL30.glGenFramebuffers()I+0
j render.ObjectSelection.init(II)Z+1
j render.ObjectSelection.<init>(II)V+7
j TCB_Field.Window.get()LTCB_Field/Window;+24
j Main.main([Ljava/lang/String;)V+0
v ~StubRoutines::call_stub 0x000001a5d2c610e7
this is probably the part you should look into
hmmm
oh the first 3 is opengl stuff so that is not the blame
so it probably at render.ObjectSelection.init
that is a frame buffer init
unless the error happening when i call this object in windows to imguilayer :/
i have assertion in frame buffer so that break then it should already tell me that framebuffer did not finish
i just realized that the viewport position in my code is completely f-ed 💀
the white line is supposed to go from bottom left to top right
yeah my viewport coordinate calculation is completely f-ed
the more i check it the more pain im in
so, basically
using the same example of server fork:
I have a root and two sub-modules -> ForkAPI, ForkSERVER
each sub-module has their own repo?
Yeah they’re their own repository, that’s basically how the patch system works for paper forks
finally fixed the mouse active callback zone
this is cool as shit https://www.youtube.com/watch?v=5tOvtZG0_6k
the gizmo literally said "im out of hear" 💀
Hi all, for those who've got public Minecraft plugins that use storage adapters, like MySQL / MongoDB / YAML etc, which ones do you provide support for within your plugin?
E.g. MySQL + YAML, or just MySQL, etc
anything but yaml
What's "anything"? What do your live plugins support
MySQL/SQLite are good choices
if you insist on using flatfile at least use json
i also go for mysql/sqlite but its kinda dependant on what the plugin actually is
Ah thanks all, I've been looking to work on a few plugins and wanted to see what storage types folks typically support these days
I didn't want to start supporting MySQL + SQLite + Mongo if people only support a small selection
sqlite can be pretty universal generally most people wont have any issues with it
mysql and mongo is less common but most servers that would those options should already know how to use it
Mongo is fairly uncommon I think
I wouldn’t ever add it unless clients explicitly said they wanted it
Especially since most hosting providers only give sql access
Good point, thanks - think I'll stick with MySQL + SQLite then 🙌
i tend to go for postgresql
if there is the option
postgresql is good but not known by many
mysql is provided by basically all hosting providers
which makes life easier for the user
needing to support anything else is kinda dependant on the plugin popularity
xD
they're in too deep for that
essentials sucks anyways
any plugin in that sub category suck commonly
at least essentials doesnt have performance issues and apparently security vulnerabilities
The best trick in 2024 is to check GUIs by their title amirite
thats true
i was talking about that one cmi bug but i actually dont know how it was replicated
Theres a CMI bug? :o
Oh god
yeahhh
First we had Log4J situation, now all of this
And that anti-cheat thing I heard with issues too
vulcan yes
and deluxecombat
and inventoryrollbackplus
spigot gui tutorials got the community in a frenzy
What's the modern / safe approach these days for GUI stuff?
Inventory Holders i believe
generally just creating your own instance of InventoryHolder and if (Inventory#getHolder instanceof YourHolder)
Ahhh interesting, thanks for that - will take a look at these then
I want to finally get back into building plugins, it’s been a while doing something with databases, GUIs etc
enjoy if you can!
i like making plugins but i hate making them public
aka i hate Robella from United States for doing a 1 star review on my plugin after never attempting to contact me and likely never reading plugin requirements
Hahah, yeah - I bet 😂 I’d like to make some plugins for my server that use a DB etc, but it’s always so tedious with boilerplate
as more as core plugins are kinda 
if you were making plugins for a specific server, creating a common library thats shared between all plugins is a preferred route imo
I think I’m looking towards building my own library for DB and other utils, I’d open-source it anyway but yeah.. it would be good to have a nice ORM for it
Also looking forward to using the latest Java & mc stuff, rather than being tied to old shit
Like I’ve had to support Java 8 and 1.8 still on stuff, and I hate it
im a firm enjoyer of new java versions
every sane dev is
Excuse me but Java 7 was peak Java
Before it became a bloated mess
bloat is when something adds incredible quality of life improvements to a project
For stuff like Tebex Analytics, I’ve had to use okhttp for requests (as only modern Java has some native HTTP stuff). It means that I end up with a huge jar file
I know people say it doesn’t matter, but to me it does 😂
my 18mbps enjoys small file sizes
You don’t really have to use okhttp even if you’re not on 11
It bundles both okio and the kotlin standard library, it’s one of the worst libraries if you want to keep size down
3-4mb jars are the bane of my existence 😭 sadly it’s needed for 1.8+ guys
What would you use them for POST requests and such?
It needs to be Java 8 and above
I might be ever so slightly biased, but https://github.com/IntellectualSites/HTTP4J was made for this exact purpose
We had to keep the plotsquared jar small to ship through spigot and also support Java 8
In general I’d avoid using okhttp (only real reason to use it is through retrofit) and use feign instead as it’s a lot more versatile, but I’m not sure if they ever had a build for 8
Woah!! Thanks for sharing this, I’m gonna check it out. I’d love to get our jar sizes down, as I do hate how big okhttp makes it (because of the bundles dependencies)
Mfw I join and instantly start advertising my crap
Classic
https://github.com/track/plugin/blob/main/sdk/src/main/java/io/tebex/analytics/sdk/request/AnalyseRequest.java and https://github.com/track/plugin/blob/main/sdk/src/main/java/io/tebex/analytics/sdk/SDK.java at the moment with OkHttp, will defo consider dumping that for your thing
The official Minecraft plugin for Tebex Analytics. - track/plugin
The official Minecraft plugin for Tebex Analytics. - track/plugin
Looks simple enough where http4j would suffice
Yeah it’s often just a simple POST, or retrieving data from API to be honest 😂
I could see us changing the Tebex plugin to use this as well
It’s a decently thin wrapper around the ancient Java client which was a nightmare to use
In modern Java it’s almost fine to use the official http client but I’m still a sucker for feign (which can use the j11 client as the implementation)
I hated how frustrating it was to deal with api requests for Java 8 to be honest, modern versions have native stuff, but older stuff is shit
Yeah you’ve beat me to it 😂
Funny and true
TriumphGuis uses inventory holders so you safe
Also, totally feel ya, hence why I am wondering if for that one project, if I should support 1.8. In theory supporting it would be a good idea but I just... mheeee
another (almost failed night)
-testing WHERE PlayerUUID
what is -testing, is that the name of the table?
A database has multiple tables and queries are for tables. I'm not sure but - might not be allowed for table / column names
aye
have you been testing your SQL queries in the mysql console before putting them in your plugin
definitely a good idea especially if you are just learning, lets you see if they work or not immediately
is it possible to rebuild a project that was previously run on java 6 now on java 21 ?
in term of compatibility
Java 6??
Dear god
pls dont tell me i will have to write a new physic engine 
just tested with java 17
also not supported
that error message doesn't sound like you need to use Java 6, you just need to properly configure your pom
no, set the java version in your pom
well at least it is still maintained
i did set it in the pom file
show it
and the Project SDK is set to 21 as well?
yeah
Make sure to also update the plugins versions
anyways i will go and get java 8 on my machine
what's the output when you run mvn package in the console?
that isn't going to fix anything
is this the latest plugin version
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>jbox2d</artifactId>
<groupId>org.jbox2d</groupId>
<version>2.2.1.1</version>
</parent>
<artifactId>jbox2d-testbed-jogl</artifactId>
<version>1.0.1</version>
<packaging>jar</packaging>
<url>http://code.google.com/p/jbox2d/</url>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
<description>Project for making a jogl panel for the testbed</description>
<dependencies>
<dependency>
<groupId>org.jbox2d</groupId>
<artifactId>jbox2d-library</artifactId>
<version>2.2.1.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jbox2d</groupId>
<artifactId>jbox2d-serialization</artifactId>
<version>1.1.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jbox2d</groupId>
<artifactId>jbox2d-testbed</artifactId>
<version>2.2.1.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jogamp.gluegen</groupId>
<artifactId>gluegen-rt-main</artifactId>
<version>2.0-rc11</version>
</dependency>
<dependency>
<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl-all-main</artifactId>
<version>2.0-rc11</version>
</dependency>
</dependencies>
</project>
might need to specifically add the maven compiler plugin or smth, no clue
and what about this
sure
that doesn't make sense
....
tried with java 11, this is probably why
yeah cuz you need to explicitly specify the release flag
^ otherwise maven will default to 6 i guess
was this the thing i added ?
probably needed to add the compiler plugin?
i'm not entirely sure how maven handles missing it
is it the plugin that bundle with the ide :?
^
🥲
sorry, i had never work with maven before
added both...., idk if i done something wrong, maybe the order is important ?
change the 21 to 11 work tho
Which tool should I use for decompiling a jar?
Actually not even sure if this would be legal. It's decompiling a premium plugin (that I bought) and making a fork of it kinda from there lol
They just don't sell source code
And the support is very slow, with barely any features, so we want to make a custom plugin like it
yeah well Id say thats against the license, if there is one
and should be pretty obvious as it is, that you shouldnt do that lol
Well kinda, he owns the version he has so he techinically can do what ever with it, except distribute
But then again I ain't a lawyer so don't take what I say lol
Plus I'd be more worried with working with decompiled code and trying to re-compile that back, and some plugins get obfuscated to hell
or sometimes decompiler is just ass
layer
Idk what you're talking about
:3
That's what I'm thinking, and I'll just use it for a server where noone will have access to the files anyway
Except the devs ofc
halo people
float epsilon = 0.0001f;
while (Math.abs(val.x % 0.32f) > epsilon) {
float offsetX = val.x % 0.32f;
if (offsetX != 0 && Math.abs(offsetX) >= 0.16f) {
val.x += offsetX;
} else if (offsetX != 0 && Math.abs(offsetX) < 0.16f) {
val.x -= offsetX;
} else {
break;
}
}
while (Math.abs(val.y % 0.32f) > epsilon) {
float offsetY = val.y % 0.32f;
if (offsetY != 0 && Math.abs(offsetY) >= 0.16f) {
val.y += offsetY;
} else if (offsetY != 0 && Math.abs(offsetY) < 0.16f) {
val.y -= offsetY;
} else {
break;
}
}
What i should remove to optimize this
if you just want to "optimize this", the compiler should do it already
maybe some more info would be useful
like in term of condition, is there anything that i can remove
or maybe combine the condition
That should be stuff that the compiler optimizes as much as possible
oh ok
Are you having issues with performance?
not really
if it aint broke dont fix it
thinking about optimization before it's required is a big no no
i will take note of that
What are you even doing there
With stuff like that you might need to be careful to not accidentally create infinite loops
there is an issue tho, sometime it will return value that is absolutely out of view
probably my eppsilon is still too small
or i could implement a count down so it will stop at certain loop and the user can click it again
You just want to round to the nearest integer?
If the grid lines are constant distance shouldn't it be as simple as rounding the coordinate to the nearest multiplier of the constant distance?
erm yes they are a constant
An example:
fun main() {
val const = 0.3
val coordinate = Grid(1.15, 0.27)
val nearest = Grid(coordinate.x.nearest(const), coordinate.y.nearest(const))
println(coordinate)
println(nearest)
}
private fun Double.nearest(const: Double): Double {
return const * (this / const).roundToInt()
}
Result
Grid(x=1.15, y=0.27)
Grid(x=1.2, y=0.3)
with what is this being done?
Snapping to the grid
there is no way rounding wasn't the first idea
is this malware?
i came back to my pc and i have this thing open
i left it in public place open.
nvm same somethng default by win
since when do you leave your PC open in public????
also, as you can see at the top, considering they didn't do anything else, it's just curl parrot.live

nothng i checked logs
i just saw that animation and i shit my self
lmao
https://modrinth.com/plugin/clientcrasher
this is what it says in api lol
# Crash player
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "crash " + player.getName())
# Add or remove player from crash list
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "alwayscrash " + player.getName())
"It literally blows the client up."
i must confest that i didnt think of rounding, i just think of subtracting the offset to return the "supposes grid" location
anyone knows a good library for fawe schematic pasting?
yeah, uh, fawe?
JUnit is killing me, not sure if I am just tired or what but like... how even does this fail? I've also tried just the ==.
try printing it out in like base64 or smth
idk
thats really weird tho 🥲
I am actually commit jump out a window.
Visual Studios Code was showing my historic test runs and I was simply re-running those without realising. 
as dkim said, try assertArrayEquals(expected.getBytes(), actual.getBytes());
also
try trimming them
if my assumption is correct, look at the gray area around the messages
the right one seems to have new line or a lot of whitespace characters?
pardon janky paint
might be a classic Java == vs .equals() moment
yup
assertSame means referential equality, assertEquals does a .equals() comparison
^
@wind patio @cinder flare
Hence my test also is wacky as I was trying everything under the sun.
oof
Why are you using VSC for java 🤨

I had to use it for a class, the professor doesn't like how heavy IJ is and is saying that "with some extensions, vsc can replace any ide". Anyways, I also use eclipse at work for some stupid project and I can say that I would prefer to use vsc LOL
( Those who made the project, some internal tool, dont use a build tool and their tutorial only shows how to use eclipse
)
My teacher uses XCode for Java
I don't even know how
But the computer lab is all M1 iMacs for whatever reason and he refuses to use any program besides XCode

The guy that "made" the tool uses Apache Netbeans ☠️ I'm glad that the tutorials weren't made for it
netbeans 💀
eclipse 💀
Just use neovim
Will forget what an IDE is forever
Cause you wont be able to quit it... literally. 
Don't post the same message across multiple channels and stick to the relevant topic for each channel. Spamming won't be tolerated.
Currently blacklisted, yes.
for how long?
GG
🥲
Kinda confused how packets work, they are "messages" directly sent from the plugin to the player right? So it doesn't go through the server. Isn't it always more efficient to use packets then?
well packets represent any information sent to the server by the player or information sent to the player by the server
so even with 0 plugins, packets are still being sent
however, if you only send packets without updating the server, it'll cause desync (ex if you send a block packet, the client will think that there's a block that doesn't actually exist in the server)
I see, that makes sense, I've seen it's generally used for NPC's etc. which actually makes sense then yeah
it is often more efficient to use packets though since that allows you to basically implement your own handlers for certain parts of nms rather than rely on the often scuffed actual code
But isn't the code often pretty optimized? At least when using paper
yeah for NPCs theres no desync, just make sure to handle the click events and stuff via packets as well if the NPC is completely client-side (which it always isn't, I don't remember if Citizens does)
depending on what you mean by optimized yes and no
if you have a very specific goal in mind then you definitely want to resort to packets
But what if the API has a method to do exactly what you need? Then it's preferred right?
yeah probably since using the api has a lot of benefits
namely not breaking for every new version
Yeah, and more easily extensible + readable imo
But doesn't the API use packets behind the scenes anyway?
With more ofc.
yeah
yes
but when you use the API you're abstracting that away and letting them handle the pitfalls of packets
packets by itself don't optimize anything
it's the skipping of other steps (ex for NPCs, the server doesn't have to tick the NPC entities)
But everything used in the API goes through the server as well, so for tasks that doesn't need that, I suppose using packets is better?
you only see the nice convenient high level api methods
yeah
besides what u guys mentioned above #dev-general message #dev-general message
I see, yeah makes sense
I don't think I've ever really used packets myself lol
I just used DecentHolograms which is packet based for performance
So just wondered
i think that allows the server to skip armorstand rendering
and maybe DecentHolograms does something async, which wouldn't be possible regularly, idk 🤷
basically if you want to do weird stuff not supported by the bukkit API or you want to change / remove some server behaviors like dkim said is when you want packets
for example i believe bukkit currently does not have a way to show horse inventories
I'm using the DeluxMenu plugin and created a menu item with the commands /ajuda and /help. However, they are not being registered correctly and appear in red in the chat. How can I resolve this issue?
I'd recommend trying to ask in #general-plugins or #1007620980627230730
Ye sounds right
Oh that's actually kinda weird lol
hmmm it make no sense
the difference would be even feelable ngl
armorstand r diff entity from normal entities
its tick is like 0 paiin to server
Oh
the only reason why it based on packets to display differrent values for different tlike pllaceholderrs probably
so player 1 see he has 100$ other see 200$ in his bank (which is armorstand)
nah... u can cancel many events and etc
That's not what I mean
I mean I have no clue how the plugin works but yeah, it's what it says on their site lol
That would make sense yeah, as it does support placeholder api
its pretty simple
if it was coded very well into performance
and not like just sending packets it will be worse performance how ever we r in 2k24 and modern cpu would make no difference in small scales
by splitting world into chunks
and sending packet only when player is in near chunk / in the message chunk
and running async tasks to update player chunk positions
else u will send too many packets to a player for no reason
Yeah they said they have made a system for view distance
Specifically for the holograms
I think it's a pretty decent plugin tbf
yo
I just found daisyUI... A component library for TailwindCSS that uses it to create custom classes....
Why is it so hard to just find a library that gives you some premade html components made with tailwindcss that I can just copy paste into my code
Thanks
I recommend this a ton, been my go-to these days. Then spend time changing/styling things to your liking
Yeah but they still add their own classes and stuff. They don't use tailwindcss as its supposed to be used
Meanwhile I have been playing with jetpack compose, some of the stuff for desktop is horrible :')
oh
I've used the android one before. in my experience, it was great
but I believe the desktop one is completely different so idk
It's pretty much the same, what is bad about it isn't the main UI stuff
The worse is the toolbar, by default you can't customize it, and have to use the ugly java default
Oh. I see.
You can hide it and implement your own, but you lose the snapping functionality
I ended up having to use jetbrains runtime, then hack my way into implementing a window that actually works :')
At least it has a black theme. lol. I remember working with C# and Windows Forms or whatever it was called and even changing its color was a pain
i feel like anything to do with ui is just a pain
It doesn't that is from waht I already made
oh. nvm then
for desktop, 100%
This is the default
Mine is a darktheme version of the default, but I have full control of it now
Like giant buttons :)
Nice
confused are you doing a website or app?
wait programs with tailwind or what?
ended up doing the same, but the math is horrible sometimes
Whats your goal?
Somebody here knowledgeable with MMOItems?
something dumb and quick please help me 🙂
Open? Yes
Create? No
DeluxeMenus isn't a library, it is a plugin and it wasn't designed for use like this. We are currently designing a versioned public interface for it which in the future could be used for things like registering custom menus, opening menus, etc.
Right now, what you can do is access DeluxeMenus' private methods and use those. You have to remember that those methods can and will change without warning.
Since the plugin isn't a library, there is no remote repository you can use so you will have to use the plugin jar and mark it as required for compile time only. The way to do this differs from build tool to build tool so I recommend you google it. Just remember to not shade DeluxeMenus inside your plugin.
Ye, working
please
Can I just accept it?
You can

shirt answer is yes but that would require all players to download the mod, which is simply stupid
also plugins and mods together is a big nono overall
dont use stuff like mohist or whatever its called
Gold this February
I'm working on this recreation of an iOS app's network functions in python and I came across this interesting web request flow that I can't replicate.
An HTTP GET request is sent to the server with some headers asking to upgrade the connection to a Websocket connection and the response with code 101 comes back, then the connection switches protocols to a websocket connection and the server sends a JSON payload with some data.
I can make that HTTP GET and get a 101 back, but when I try to open a new connection to the URL I get a 400. I think this is because I'm initiating a NEW connection instead of making use of the old one with the switched protocol.
In python, how can I continue off with that connection where the switched protocol came from?
Can anyone confirm if my interpretation of the issue is even right
i believe your interpretation is right
websockets are an upgrade to http so it makes sense you would not open a new connection
I've asked AI about this issue and it doesn't seem like they are trained at all to understand it because I just get code back that initiates a new connection now matter how many times I change up the prompt.
I also haven't had any luck on stackoverflow. Someone had a similar question but it's been unanswered for years
worst case you can try analyzing what existing websocket libraries do
Would you suggest maybe making my own and trying to pick up some connection object and re-use it
Going as low level as possible
i would suggest using an existing library if possible, since there is really no benefit to reinventing the wheel
The library I'm trying to emulate is from a native Swift iOS library, so there's no way to know exactly how it works- maybe there's some python one out there. I'll look into that- thanks.
anyone used java to build a website?? EDIT front and backend.
i know there are some libararies
but can share their exprience versus building web in a standart way
I actually decompiled the app and found it to be using the Starscream (https://github.com/daltoniam/Starscream) library. It looks like it uses an unorthodox method of connection upgrading that I can't figure out how to emulate with low level Socket http connections. Any idea where to go from here?
didnt get in first place what network functions do u try to replicate
maybe there an easier solution
then copy cat
I've actually figured it out
I had some logic mistakes in my socket requests
The upgrade seems to happen automatically according to the WS 13 docs
Yo where can i learn basics of frontend development
YouTube university, Codeacademy, and a lot of other sites
Hey guys! Quick question if ya'll could help me out. I am currently developing a public RP server and am looking into doing a couple things. I'm wanting to remove the ability to craft diamond armor/weapons, but still give the players the ability to mine diamonds normally for future use. We are currently using MMOitems and a few other plugins, but I'm wondering what I can do to get this result. I've tried a good amount of things, including the /recipe take but it just goes back to normal once I pick up diamonds again. Any suggestions? Thank you! (You can ping me!)
Customcrafting from wolfyscript
can remove vanilla recipes iirc
Thank you!!!! Will look into this asap!!
How do I set permissions to an item in the Deluxe menu that requires permission when selecting or clicking it?
To get help with DeluxeMenus, ask in #general-plugins
Check out Vaadin
Is there a reason you want to?
Java Spring was what I used for a uni project, it's got good support and online tutorials available
freeCodeCamp's got a solid starter one on it
Best I came up with was sending HTML upon request.
But that's just a fetch
Eh, time to learn Java
not really i just think its a nice project for portfilio 😉
Usually you'd want portfolio projects to be applicable for contemporary use-cases, the number of java websites in production is probably close to none compared to C# or PHP
Still an interesting idea though, for one of my projects we made a mini dungeon RPG in Java Swing 😂
There are more Java backends than you think afaik
definitely
basically every larger company has some Java somewhere in their tech stack
I'm working at a bank and they have a lot of java apps, and C# too
java is still one of the most used languages
and will be for a while.
If their updates continue getting gudd
they might actually stay for longer
we use java and drupal where I work lol
Spring is like the pillar of so many companies
Yeah but I think most of the people that replied were mostly talking about the fact that they want java on the frontend
I suppose I must feel quite privileged that we don’t have any Java or C# codebases at Tebex
Backend wise that is
~40% of the codebase I work with is Java, and I don't mind it. It is pretty well written and maintained. I do mind the 60% Python though.
I think Java codebases in the sense of MC plugins I don’t mind, but I would hate to be working with Java for anything backend / API related
spring is pretty nice
To answer the original question, I guess you can use a template engine with Spring boot something like Thymeleaf or Freemarker, but that's quite cursed so don't
I guess it depends what the website is for
after all these template engines have a purpose
For a more complexe website it is better to go the javashit
way for the frontend, sadly
how is that priviledged lmao
giving up all the good technology for what??
Javashit 4 ever
laravel good
fair, but I doubt they're using laravel
I always find it funny how TS was created to get rid of probably the 'best' thing about js: being dynamic typed 
yes
that turned out to be a disaster
runtime issues 💀
and with the way js works, thank god for ts
I always find the equalities of certain objects and what not in js extra funny
or
We are :P
I couldn’t imagine anything worse than dealing with Spring APIs haha
there is more than just spring
but generally, spring is just ahead of basically everything else
uhm random question, for context, I am making a plugin that basically intercepts several packets and allows the use of MiniMessage on them, objective is to allow minimessage to be used anywhere even if no support is given originally. This works by adding [mm] before the line/message.
(You can also make it so that no prefix is needed, every message/line/whatever would be processed)
Now, I was thinking on doing the same thing but for PAPI support, in this case, even if no PAPI support is given, if you place [papi] before, all placeholders will be translated. I have 2 questions in regards to this:
- Is this a good idea to do? (PAPI support)
- How would it even work? Since for minimessage to work it requires [mm] in the front and for papi [papi], what if I want both? xD any ideas?
(Not even 100% sure this is the right channel, maybe #minecraft would be best? idk)
Is this a good idea to do?
sure why not
How would it even work?
if (str.startsWith("[mm]") || str.startsWith("[papi][mm]"))hehe
the second question seems like a fairly arbitrary design decision where it's kinda just whatever you want
fair ngl
I could in theory use regex here but do I wanna mess with regex? xD
jokes on you, single time I messed with regex, was at school, in linux xd
sed?
and @half harness (saw the message before you deleted), by default, only system messages are "translated", you will be able to enable that normal players are able to use it, it will still be permission locked though. So, it's up to the user if he uses a placeholder that uses js.
yes.
idk if that's actual regex
but similar enough
Always be careful when parsing placeholders inside user input. Some expansions are ... for lack of a better word ... Stupid
that's the thing I mentioned to dkim, 1. only places with the prefix [papi] will be parsed, 2. only if enabled will chat be parsed. So, either way, if the message doesn't have [papi] behind it, nothing will happen. Besides will add a configuration where you can fully ignore papi parsing in player messages.
This is mainly aimed for plugins either way, the player messages are just a tiny extra.
Ohh is it for clientbound packets
Note that I think there's a plugin that converts all chat messages to system messages
To prevent reporting
welp, can't help with that xD
and, I think yes? (If I still recall what outbound means since I always confuse them)
Sorry that's kinda ambiguous
Edited
hello I have a question if someone knows the answer, so I have server set on 1.20.2 spigot, I have plugins configs etc set. And I need to change it to Mohist but the problem is there is only 1.20.1 version, is that gonna cause my plugins to not work properly?
uh... things being sent from server to client so yes? idfk lmao
your bigger issue is that you cannot load on an older versio a world that was created on newer versions
Oh fuck
So you're telling me plugins will work but world not
God damn
well, if the plugins use 1.20.2 functionality that didn't exist in 1.20.1 then those won't work properly
They do use both they existed
Before
God
look I'm hosting on GPortal I'm not really familiar with engines and I don't know if I can install my own engine to gportal for Forge and Spigot in one
On version 1.20.2
As I searched gportal has Mohist 1.20.1 and I know its both Forge and Spigot
you could check out Arclight, it seems to be the somewhat functioning spigot/forge hybrid but I don't know what version it's for
Arclight lemme seek
Well I see only that
Mohist 1.20.1, Purpurs, Spigots, Papers, Forge and Fabric
No other pure engines rest are just premade packs of mods etc
why do you need to switch to mohist? if spigot is listed there 
I need Mods and Plugins at once
I have also and option of Sponge Forge but I don't know if this gonna work for more people and stable
I just need mod like better combat to be placed and only that, rest of them are client sided mods
Nvm sponge has only 1.12.2 XD
sponge has 1.16.5 I think but yeah, slow development
Yea on GPortal they have only 1.12.2 xd
Well I asked gportal support maybe they can provide me it or tell me something
gportal is literally shit, its owned by contabo and uses its horrible hardware and networking
i dont know what gportal is but if its owned by contabo, then i agree
gportal is a game hosting company
yeah i see
contabo is fine comparing to other comapnies
but a bit more and u can get OVH
eh if you're fine with insanely oversold servers and like 10% packet loss in some locations ig
Contabo is fine for cheap 7 buck personal servers, does the job
depends on usecase, would not use for Mc there's so many better options
Obviously
Dont know what yall talking about but if someone is looking for a dedi server id suggest hetzner. got several dedis there, no problems so far and the machines work great. Check out the Server Auctions too, good deals there.
I can personally vouch for Hetzner too
Same
damn
we pay around 200/month for 7950x3d 1tb ssd and 64gb ram
on hetzner its 110 plus 2tb nvme and 128gb ram
damn where from
I still pay for a OVH box since Black Friday (GAME-2) and have a Hetzner box
Lmao, wow
not sure how much I should rely on reddit, but some comments are pretty harsh now that im reading about hetzner
its also pretty odd that its whole -100 euros compared to what we pay, plus it offers more storage and ram
how can it be so cheap lol
Fr
Unmanaged servers and probably other reasons too https://www.reddit.com/r/hetzner/s/nD4DnKUAmM
unmanaged how?
they rent you the hardware and whatever happens its up to you?
or unmanaged as in they dont do any backups, etc
I guess you simply do everything by yourself
hm
You get access to the server and glhf
yeah ig the one pro what we currently have is that we have daily backups and ddos protection
and probably some other stuff we might need
I mean, backups are done automatically, they can still be provided even for unmanaged servers
I really dont wanna bother setting up our personal ddos protection lol
and cloudflare expenso
https://www.webhostingtalk.com/showthread.php?t=1853455 3rd reply is from an employee
I have similar with my R9 5950x on another EU provider, although I do pay 2x hetzner price. Perks are that I also get additional ips for $1/ip 
what would you get on a managed server for example?
System Admin support ofc.
good app to be able to develop electricity curicuts and test them?
i know there is typo
dont be judgy
No... its big company everything is mananged very well
how ever their ISP routes are really bad...



