#help-development
1 messages ยท Page 1162 of 1
ok but how do they hide your inventory slots then?
Choco would be best to answer all of this, too bad they aren't here right now
that is just the way the movement camera packet works, it isn't inherently tied to spectator though
Are you sure it's not spectator
I believe it is
but I would have to join to confirm
a quick screenshot to analize
I mean, I play 1.8 bedwars on a daily basis, but I don't do much spectation lol
I think this is spectator because I think you cannot send those packets without being in spectator
maybe something like that should do? I don't know if area effect clouds can have nametags though lol
oh yeah I forgot about those
I already saw that, I can try
It's been a long time since I saw anyone use them
probably you cannot even give them name tag lol
As we can see, display position in preview mode is gone. However:
- Lines will be ahead of players
- Potion effect (if using AreaEffectCloud)
- Laggy movement
is it a 1.8+ thing tho?
1.9+ thing
cause it must be in the range 1.8-1.21
brother, just drop 1.8
crazy work you have to do already by using area effect clouds lol
do you think transparancy of entites is sent by the server to the clients to render or do the client automatically show it?
The client handles rendering
Pretty sure that type of stuff is all client sided
this is what TAB has to say about it
I'd just compromise and have versions which don't have text display deal with the fact that there are armor stands around
Time to ask players to run non log4shell patched versions to you can modify the client code ๐ง
I will just keep the players in survival mode and make them fly like I do for actual spectating, that will fix this issue
I think hypixel does something so weird so I won't even bother with it
Hypixel sends player despawn packets
any good portfolio projects for intermediate developers?
things that involve talking to web apis, concurrency programming, databases are good stuff
writing tests and having nice comments + documentation is also really sought after
I guess it also depends on what you wanna do
there are multiple flavors of developing
what is an itermediate developer, the normal way to classify them is either junior or senior
the in-between isn't considered since the classification mainly regards to experience rather than overall knowledge, which is realistically the only thing that matters
i meant spigot ๐ญ๐ญ
junior i guess
yeah but i need project ideas
I mean, just do whatever really, it doesn't have to be a novel idea
just do something that you find fun
i.e., the other day I did NPCs for the 1001th time
should i make a citizens type plugin?
that would be good for my portfolio right?
not to publish it just to show it
if you are not going to publish it then it is worth nothing
if you just wanna do stuff for your portfolio, you are gonna burn yourself out
building a portofolio requires real-world products
ill just have it on my github
hmm
eh, I wouldn't go so far
i need ideas man
do it because you wanna do it
based
ideally you'd never have to do that, but realistically we know that's never going to be the case
i mean thats not entirely true
I wouldn't contract a developer that doesn't have a single piece of software used by actual people
so any good project ideas around nms and packets? that i could publish as you say but
unless I were to train them, if they don't have any then it just means they don't have experience building actual products
thats not what servers need though they need plugins that suit them specifically
they dont care about other people
eh depends, I mean a company I worked at allowed informal projects from juniors as a way to display their experience
yeah, because companies used to be desperate for fresh blood at some point
but ofc, its worth a lot more if u have experience with software that is used in the real world
nowadays, the market is saturated so you have to offer more value
well they weren't desperate
its just how they did things
desperate is a harsh word, you're right
but it gets the message across, for lack of a better term
yea true
Hey con can I borrow your expertise back in the review thread please? ๐
depends on what you do, with plugins, yeah its very saturated i think
"worth nothing" may be somewhat harsh, but its true in a lot of cases certainly
spigot freelancing is kinda ruined cause of agencies
okki o7
i mean how can a junior developer succeed when there are people doing it for a living
the plugin market has been saturated for ages, I am glad I got away from it back when I could lol
with teams of like 10+ developers
barely any servers have teams that big
I mean, yeah but there aren't agencies specifically for plugin development
I don't know of any reputable ones
halos debelopment is one and theres another really big one i cant remember rn
the name
oh, I do know there are some which center around streamers and their events, but that's about it
i know ones that have freelancers about anything so 3d modelling
builders developers
mod developers even
and you can just commision whatever
Those are service teams
Incredibly overcompetitive and kinda suck ngl
Check my pinned post in #general to learn their pros and cons
lmao yeah they ruined spigot freelancing
yeah but those aren't really accessible for your average starting server, which is most of where you'll get work as a junior dev
eh
I wouldn't say so
About like 25-30% of my income comes from service teams
Most people prefer to skip them because everyone realizes they're just charging to be a middleman
do you manage them or are you part of one of these agencies
Weird mix
Basically I got into a team through a friend of mine that does QA / Support
do you know any discord servers like the one you described in that pinned message
And I just farmed reviews and did a great job for a while (I became the top plugin dev within 2-3 months) and I got hired to work on their bot
So I have access to the database and all archives and stuff but I also have an NDA
I do get to pitch in some features that would benefit me but I don't get any major benefits other than being able to help ppl out
? illusion
ofc but y'know it's gotta be hush hush
you can look them up if you want
There's a reason why I deliberately didn't name drop
i literally cant find them bro ive been looking everywhere
You'll easily find lots of service teams on BBB
if you could send me in dms i would be grateful or if you can tell me where to find them
i dont want service teams
you described discord servers and service teams differently
I'm specifically talking about service teams
Ah
The main one I was talking about is HelpChat
But IIRC you can also find jobs on BetonQuest / Citizens / MythicMobs? support discord servers
it's mostly support for popular plugins with a recruitment section
eg im not good enough to be recruited there lmao
you don't have to be good, you have to be active
in helpchat yeah but what about the support servers
but you can kinda get the 5$ commissions here and there and ppl don't give a fuck
tbh helpchat's kinda dead
oh fr
And so is the discord server scene overall
helpchat was clip's community right?
Yeh
25-30% of my income is through service teams, as previously said
About 50-60% is from my "main job"
yea
And the rest comes from DMs mostly
papi devs
is there any way to get something like that? people
posting requests and anyone can follow up cause thats kind of what happens with artwork and stuff
i think funnycube and the pig guy maintain the server nowadays
That's too informal for most ppl to care
hmm
I mean, it is still worth a shot
so what are the support servers you mentioned for
arent they just for those specific plugins
mostly support
Not necessarily
Helpchat is placeholderapi's / clip's overall support discord but their services section is quite active
discord server for minecraft/plugins are generally a gone thing, the community barely pays attention to the smaller communities and most of the users are concentrated in the official server platform servers
With citizens it's mostly ppl hiring for their proprietary skript competitor
and these official server platform servers mostly don't allow promoting services lol
Service teams are where most people flock to because it's structured
The risk of getting scammed in either end is low as long as the team is ok
but that comes at a cost
its hard to get on service teams though no?
Depends on how good you are
hiring people to write denizen smh
soo ill just focus on making a good portfolio for a few months then get on service teams?
what even the point of the scripting language at that point lol
stop worrying about it, just go make things
once you have at least one plugin that has gathered some audience, it doesn't have to be big
For about half the teams I get into I either skip the application process entirely (good credentials, known within the community) or easily pass it (no trial plugin, just post the git and get in)
i hate making public plugins that have to fit everyone
The other half are a slight pain in the ass
then start promoting your services
I haven't made a single public plugin
cause you have a good portfolio ig
all the 3 public plugins I have on spigot were commissions that the customer either didn't pay, underpaid or didn't care about
I have a "skyblock plugin" on my git that doesn't work but has a fancy readme
that's p much it
I haven't either, but I used to have when I was starving for plugin requests lol
im literallt looking at it rn lmaoo
wdym doesnt work
I offered free plugin vouchers with the condition that I could publish it
gl getting it to do anything beyond maybe loading an island type deal
generally customers have good ideas, and you just gotta polish them
My ideas are a little too big to be reasonably done
so do free work and publish the plugins?
still, my ultimate recommendation is to get out of the plugin development cycle
it is hard, but once you have enough experience you're gonna make good money
more than plugin development ever will give you
wdym het out of the plugin development cycle whats that mean
The idea with my skyblock core is that I'd have a modular core that could be easily hooked into with a million different models, require zero database setup (it'd inherit credentials), work across EVERY type of setup and have a web panel to manage the entire network with a single click
to look for other markets that aren't as saturated as plugin development
ah
it is easy to just go with it since you already know it, but one's gotta expand horizons at some point
i have another source of income rn so im not desperate
im 15 too so i have some time
ill go to university and get a cs degree there too
I thought that was the case too back when I was 16 making plugins kek
And then expand into a suite of freemium minigames and backend systems to be able to make all kinds of unique minigame networks that work
19 rn, plugin development started popping off when I was around your age
it'll take actual years to get good
what do you think i should get into then?
then I lost my job at 19 and I was barely scraping by with plugin requests, so it forced me to actually go and get jobs
if you're brave, web dev
it is saturated, but the market is so big that you just have to find a niche community and make yourself known, it doesn't really take much
i wanted to have a network of my own one day but tbh its too much time and money invested for so little return
whats your niche
I do embedded systems nowadays, so I ain't got a worry lol
is it possible to run some code with admin permissions, that would then later allow the access to iptables to non-root code running?
I still do freelancing on the side of various things, but nothing particularly demanding since it is only for clients that I already know or have been referenced
so i should get into web dev and start freelancing there is what youre sayinf
what I usually get requests for is scraping with python or shenanigans like that
web dev is honestly hard asf bro therws so many things to learn
just stick with one thing and you're going to be fine
i.e. php and laravel or ruby on rails
js/react with next
how do you find a niche to get into? or what was your niche at that point
this is what im gonna do i think cause i have experience with js
do you think theres any money in discord bots?
there's some market for discord bots, yeah
usually I see people requesting python bots more than js bots, but the backend doesn't really matter for them
you don't really "find" a niche, you build up one
as you get experienced with a platform, it starts building up by itself
wdym
have you ever done "coldcalling" with commisions
like i know people that text big influencers and make stores with them
develop their webpages etc
and they split the revenue
yeah, that sometimes get you somewhere however it mostly depends on luck if you don't have sales skills, there's no easy way about it
when I used to care about that, I'd find a chunk of people who seemed to be interested in some kind of project, and I'd scrap their socials to find what to pitch in when messaging them
it can look borderline psycho if you don't word your things right but if you do it does get you jobs lol
nowadays that is easier than ever, osint framework has got you covered when it comes to stalking someone, and LLMs can crunch data in masse like a walk in the park, but you didn't hear that from me
I have a new life goal, to become rich enough that I can just switch between living in hte north pole and living in the south pole just so I can always be living in the summer time
just duplicate my life so I can keep on switching
"To become rich" is the hardest part
nah the hard part is thinking of good ways to spend the money, clearly
I thought we didn't have winter in portugal
tshirt and shorts
and I'm feeling like I might have to close some windows
just close your doors and windows and let your pc bring back the summer vibes
it's 14c and it's dark outside at 7 pm
16C here
if I close my door the room will go up to 30c but that's besides the point
I hate the winter
I enjoy it
yeah but you're a loser
:(
your sadness would sadden me if you were worthy of being considered a human
I bet you're gonna try to claim the lunch you bought us as "charity" to get a tax break out of it
just close the window, 30 degrees is better than freezing
no it was an investment, I now get to make fun of you for the rest of your life about how I used my income as the superior dev to feed the poor z-tier developers in portugal
if anything it was cheap considering what I got out of it
you're just coping over the 50$ you paid for some 7/10 lunch ยฏ_(ใ)_/ยฏ
pov: the river rises
pov: the news article talking about how a random guy down south jumped into a river and drowned seemingly out of nowhere
anyways time to wait 15 minutes for geyser to build
I wonder if I should invest in the new nuclear powered data centers
it's real interesting
I like it a lot
Hi, how do you find bungeecord versions?
Example: 1.21: 8a88ce464e0b107b15523109afd7810096e635ca
1.20.5: 6f70b15e2ea7f01e9d8690e56d476cfcfc68ef2c
your main drive is 50gb
What do you use hibernate for?
did you dumpster dive a trash bin from 2004 to get something with that level of storage
it's like a 512gb drive I bought when I was like.. 14
Any idea pls?
bro flexing he spent 5k on storage
What รฎn the
why the fuck is explorer.exe locking the Nvidia dxcache
iuf I don't have an nvidia gpu
Hello ๐
I'm coming back to use Spigot, I didn't use spigot since 1.8, and I was wondering if we can do custom mobs using 1.21 now or should I use NMS classes ?
nms
elitemobs 
elitemobs doesn't do custom mobs, yet
then what's the point
fmm does sort of
emptied my recycling bin and windows started updating tf
Just to be sure, when I said "custom mobs" I was meant to create mobs with special spells or things like this
there's a lot of ways to do that
not all of which require modifying the actual underlying ai of mc mobs
easy 25gb by emptying the recycling bin let's go
back to 21.5 because more hybernation files I assume
I can back your computer up on my phone
Oh okay, thank you ๐
you should be ashamed
your phone literally broke when I sent you a dm
completely free of charge
I honestly don't understand why
they literally changed evrything but the motherboard, ram and cpu
all new screens, hinge, batteries and so on, all free
and the thing was well out of warranty
they basically just gave me a new phone
calm down theseus
nice drive names
My friend has a drive with his phone number as name
fuck off
illusion should change the main drive to be his full legal name, second drive to be the numbers of his credit card and then the third one could be the date on the credit card and the code on the back
having now met this individual in real life the power I hold over doxxing him is immense
doxxing what @echo basalt looks like
expected
note the stick arms, not because I drew a stickman but because he doesn't go to the gym
gotta ping the mods for this one buddy
yeah mods get in here so you can all laugh and point at illusion
brb ordering pizza
you didn't need to say pizza, we know what the only thing you eat is
for some reason they aren't picking up today
they're staging an intervention for you
even though you're singlehandedly paying for their retirement accounts they just can't stand to see you do this to yourself
ah yes the 4,5โฌ pizzas are gonna let them retire
they're slightly based tho
"sorry but we had to close for tonight due to an issue with uber eats, we're gonna put an end to our incredibly short relationship, see you tomorrow"
let's see, you eat two pizzas a day so they get a profit of 4.5 daily, if they get a 10% yearly return from the S&P 500 for 30 years they'll have 313,344.42 euros from your business
their margins aren't 50%
might be more
they could be feeding you sawdust and I'm not sure you would be able to tell the difference
to get all the ingredients, transport them, heat up an oven, cook a pizza, pick up the phone and deliver it to my house?
- ATM fees?
40 years, 2.5 euro daily from your degenerate lifestyle, that's 488,810.25 euros
at a standard 10%
How can I add a prefix next to the player name? (Minecraft Plugin)
hey im making a backpack plugin where you can craft backpacks of different sizes and thats about it lmao anything else you guys think i can add?
kinda like old hypixel skyblock backpacks
I don't understand how to change the name above the player's skin so that it says Player | MecryTv, for example, with a prefix. Can anyone help me?
or with protocollib https://www.spigotmc.org/threads/protocollib-change-player-nametag.301280/
Im at a lost on which help channel I should ask this in, but where can I find javadocs for 1.20.1?
Main reason is because the LivingEntity#launchProjectile on 1.19 uses bukkit consumer and on 1.20.4 uses java consumer.
Im just trying to minimize the gap, and see which one 1.20.1 uses
oh wait thats for 1.21
lol
Is this also possible without an API? I was told that it also works with a scoreboard ?
protocollib is an API
that would be your best option
ty
idk about scoreboards though
@spiral light https://hub.spigotmc.org/jira/browse/SPIGOT-7931?jql=project %3D SPIGOT ORDER BY created DESC
Using Player#updateInventory should work here
depending where you use them views won't automatically send all data to the remote
automatically sending all data to remote could break some behaviors too. If this isn't the case I'm curious, but yeah
its without any plugin ^^ its the default anvil placed in world without any magic
okay thanks for the clarification
Hello, does anyone knows where is stored the world UUID in the server folder ? I want to make chunk blacklist for a claim plugin but i don't know how to get world UUID from a user perspective. I can also do with world name but i think id are safer
I'm pretty sure its in the level.dat could be wrong, but iirc you'll need to parse that NBT
wait I lied lol
its in the uid.dat
just parse the NBT
Just get it via the API
can someone remind how to get mns setup?
?nms
is it possible to generate the files with spigot Build tool? ๐คทโโ๏ธ
Just follow the guide
i have a gui build tool?
Thank you
if the old colors were formatted as ยง + color code is there some agreed-upon way of using hex color codes in text?
Well legacy codes don't know hex colours
elaborate, please
its pretty
ah
what about the ultra-thin fork?
no idea what that is
kyori components aight, but I mean in config text
did plugins agree upon some format like
&#fffff
<red>Red is my <#ffffff>fav <red>colour would be mini message
or just &ffff
dunno if there is some "community" standard
from plugins I've used if you're going to use the legacy format is #&FFFFFF
but I feel like you're best off letting the poor folks use mini message
Trying to make a mob that when it hits you it takes away 1 heart from u and give it again after 5m, https://paste.md-5.net/opuzuhayuh.cs, that's the code, and the error is that i don't get the hearts back
what's wrong?
Nightmarish
How do I
- prevent silverfish from spawning when an infested block is broken?
- prevent silverfish fom entering blocks?
you can probably prevent them to reenter by cancelling the EntityChangeBlockEvent
I am trying to make a /tpa player, to send a request for someone to accept my teleport. I have created the code but have a issue. I am able to tp to myself, but when i try to send a request to someone else and they go to accept it says they dont have any pending offers. Here is the code: https://paste.md-5.net/fayovipowi.java
you might want to send your Main class aswel || (try to avoid naming your plugin main classes literally Main) || because we dont know what your methods putRequester and getRequester look like
https://paste.md-5.net/ujaraxebiv.cs consists of this. sry i put tpaccept twice but thats not the issue.
Tested separate classes and it still says no pending requests
invert this, store your sender against the target
and after accepting you should remove the sender not the target
this aswel
.get(key) gives u vaule
Hello, I have a question that I haven't been able to find a concrete answer to.
I would like to know if any of you know how I could link a web page to my Minecraft server, that is, how I could obtain a variable called kills and display the information from that variable on the web.
algun developer que me ayude en mi servidor de mine ? mande priv
depends if your plugin jar and web server are one thing or 2 separate things. in the case of the latter, it would be much easier to connect your server to your web page, not vice-versa
for example, POSTing whenever the kills variable changes
then showing that change on the web page
it will hit them but not damage
iโm looking to see if I can get arrows to go through them if theyโre on the same team
?services
If you wish to request or offer development/art/building/administration services, please do so at https://www.spigotmc.org/forums/services-recruitment-v2.54/
tambiรฉn sรณlo inglรฉs pro favor
Priv
You have to request a developer who has already posted
where can I do that
?services
If you wish to request or offer development/art/building/administration services, please do so at https://www.spigotmc.org/forums/services-recruitment-v2.54/
You must make an account
thank you
how do I change a player's nametag?
mounting a text display to the player
whats the difference between entry team and team
has anyone managed to write a nametag system that works with team prefixes
I think MySQL database
just use a text display
save yourself the trouble
using team prefixes/suffixes doesn't let you edit the nametag itself, besides if you don't do it with care plugin compat gets tricky
?di
Guide to dependency injection: https://www.spigotmc.org/wiki/using-dependency-injection/
?jd-s
sir this is a wendy's
oh no
Websockets
cant, gotta create ur own Spigot
CHeck your plugin dependencies. It shoudl not be that big
accidentally bundles the entire Scala stdlib
wait oh god did they bundle fucking spigot api
Oops I shaded the entire kotlin and scala stdlib + apache commons + guava + hikaricp why is my jar so big
oops, accidentally shaded The Game into my plugin
"shit I shaded craftbukkit"
Shaded entire JDK
"how the fuck did BuildTools get there?!?"
shaded ur mom
try compression
graalvm native-image would like a word
Accidentally shaded node_modules into my jar
shaded the entirety of the global internet in mine once
I accidentally shaded /dev/urandom
shaded /dev/null and my plugin disappeared :(
me when I shade my entire fucking drive + /dev/{null,zero,random,urandom,tty*}
Guys why can I access my TTY inside of the plugin
Jars are already compressed wdym ๐
have u considered a hydraulic press?
you guys look so funny
Guys I shaded the internet archive and uploaded it to spigot but now the site is not responding wtf
I accidentally shaded the earth into my project and my hard drive became a black hole, my bad chat
only your hard drive? rookie numbers
I do wanna see what happens when you copy /dev/null
isn't there some utility to create an exe with the jre bundled inside of it?
there was so it should still be possible
100MB JAR
it's an exe then
all your pfps are hilarious
right doesn't make it much better
๐
your old pfp was better
Bitwig is java
and ofcourse
Tho I believe they already do this
Heaviest lib is https://github.com/caoccao/Javet imo
Bro deleted that REAL quick
which
I waited a bit in case somebody wanted to click "download"
the mc one
i have to be professional now
lol
why
and I'm still trying to get a minecraft mojmap javadoc
still? lmfao
they told me, your bstats for packetevents is too high
just use the yarn JD
sign the contract
apparently I had shit from mixins in there ๐ฟ

like, I'm pretty sure minecraft does not use cardinal components lmao
also, I had to update loom and regen the sources because old vineflower bug lmao
also, the amount of dependencies minecraft uses is insane
what are yalls opinion on 1 line ifs without curly brackets
with very simple conditions theyโre effective
I have to shade a lot of libs to get the desired outcome of the plugin. I mean I could remove some deps and make them not compile but require deps like mongo but idk if it's smart
It's also quite a big plugin
I'll send my pom here so someone can help if they know how to reduce it
I've tried to minimize the jar as well
use libraries entry in plugin.yml instead
I support 1.8-latest
shoo
I believe this feature wasn't added
write your own implementation of libraries then
good
I use it for if (DEBUG) sout thing
and returns
I think it can shorten your code and make it more readable if ifs arent nested
pyramid of doom โค๏ธ
is this like PermissionsEx sort of thing
No idea I've never looked at pex
it manages permissions and ranks?
Yes, GM is the first permission plugin
?paste
is this the good old group manager that i used to love?
nicee
public ArmorType getType(Material material){
return switch (material){
case LEATHER_HELMET, CHAINMAIL_HELMET, IRON_HELMET, GOLDEN_HELMET, DIAMOND_HELMET, NETHERITE_HELMET -> ArmorType.HELMET;
case LEATHER_CHESTPLATE, CHAINMAIL_CHESTPLATE, IRON_CHESTPLATE, GOLDEN_CHESTPLATE, DIAMOND_CHESTPLATE, NETHERITE_CHESTPLATE -> ArmorType.CHESTPLATE;
case LEATHER_LEGGINGS, CHAINMAIL_LEGGINGS, IRON_LEGGINGS, GOLDEN_LEGGINGS, DIAMOND_LEGGINGS, NETHERITE_LEGGINGS -> ArmorType.LEGGINGS;
case LEATHER_BOOTS, CHAINMAIL_BOOTS, IRON_BOOTS, GOLDEN_BOOTS, DIAMOND_BOOTS, NETHERITE_BOOTS -> ArmorType.BOOTS;
default -> null;
};
}``` any better way of doing this?
There's probably a tag
(and generally won't work in 1.21.3 as all items can be equipable via components)
wdym by that
wait, would something like material.name().contains("HELMET") work
nvm, turtle helmet ๐ญ
ill just keep it this way its whatever
Tags.whatevet
wait whattt, how
where is it on docs
Can I somehow iterate over all trim materials? Cuz its not an enum
ic
Hello,
On a public plugin compatible from 1.16 to 1.21, I use base64 textures on heads. I assign them by reflection. I know it's not the best way to do it, but it's the one that worked until now from 1.16... And with 1.21, that's no longer the case. An error is spammed in the console, as follows:
org.bukkit.craftbukkit.inventory.CraftMetaSkull.setProfile(com.mojang.authlib.GameProfile)
That's all I have. I'm using authlib version 1.5.25. As the plugin is functional from 1.16, I don't have the recent methods with PlayerProfiles. I can't find any other way to do it. I know that some plugins have a class dedicated to this type of behavior for each Minecraft version, which I'd like to avoid if possible. But if that's not possible, could someone redirect me to an example of how to proceed?
If needed, here's a link to the Git repository for the current operation.
Thanks a lot!
the internal field was changed to a resolvable profile
I saw that, but now I can't use the resolvable if I want to keep compatibility with lower versions... That's the whole problem, and I don't really see how to deal with it
Just use the API if it detects a version 1.18.1 or newer
Yeah I'll probably do that on a โVersionManagerโ singleton or something. I just hope using more recent API version won't cause problems on future updates, I wouldn't want to use a method that doesn't exist on lower versions without realizing it
as player right_click event won't be called if player don't holding item so is there any alternative to track player rightclick ?
block right click
you cannot detect rightclick air I believed
you can't if there is no item in hand
paper moment?
use my api
MaterialUtil#isHelmet(Material helmet);
tags are in spigot
(there is no tag for helmets xD)
i didnt have javadocs open so didnt know if armor had a tag
not the point nerd
is there any entity that player cannot see but can interact ?
The interaction entity 
Nuh uh
If you are on paper, there is MaterialTags.HELMETS.isTagged()
but beyond that, ehh
hi, for some reason i'm getting a org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: com/github/retrooper/packetevents/event/PacketListener even though blockPing is false, so the code which involes packetevents shouldnt be firing
public void onEnable() {
boolean blockPing = getConfig().getBoolean("block-ping");
if(blockPing) {
if(getServer().getPluginManager().getPlugin("PacketEvents") != null) {
PacketEvents.getAPI().getEventManager().registerListener(new ServerPingListener(), PacketListenerPriority.NORMAL);
PacketEvents.getAPI().init();
}else{
getLogger().warning("It seems block-ping has been set to true in the config, however PacketEvents is not installed. Ignoring.");
}
}
}```
full stacktrace:
https://paste.md-5.net/uhesumarav.sql
Share your whole class
import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.event.PacketListenerPriority;
import dev.nedhuman.advancedantivpn.listener.PlayerLoginListener;
import dev.nedhuman.advancedantivpn.listener.ServerPingListener;
public final class AdvancedAntiVPN extends JavaPlugin {
private static AdvancedAntiVPN instance;
private IPCheckerService checkerService;
@Override
public void onEnable() {
instance = this;
saveDefaultConfig();
boolean blockDataCenter = getConfig().getBoolean("block-data-center", true);
boolean blockVpn = getConfig().getBoolean("block-vpn", true);
boolean blockProxy = getConfig().getBoolean("block-proxy", true);
boolean letinDuringError = getConfig().getBoolean("let-in-during-exception", true);
List<String> additionalIps = getConfig().getStringList("blocked-ips");
boolean blockPing = getConfig().getBoolean("block-ping");
notifyChat = getConfig().getBoolean("notify-chat", true);
checkerService = new IPCheckerService()
.setBlockVpn(blockVpn)
.setBlockDataCenter(blockDataCenter)
.setBlockProxy(blockProxy)
.setLetInDuringError(letinDuringError);
checkerService.getBlockedIpCache().addAll(additionalIps);
getServer().getPluginManager().registerEvents(new PlayerLoginListener(), this);
if(blockPing) {
if(getServer().getPluginManager().getPlugin("PacketEvents") != null) {
PacketEvents.getAPI().getEventManager().registerListener(new ServerPingListener(), PacketListenerPriority.NORMAL);
PacketEvents.getAPI().init();
}else{
getLogger().warning("It seems block-ping has been set to true in the config, however PacketEvents is not installed. Ignoring.");
}
}
}
}
i cut out some of the less important stuff due to discords message limit
?paste
lol ^
like getters and setters
I don't know if anyone answered you or you figured it out yourself, but Registry.TRIM_MATERIAL is iterable
I could have sworn I added a #getValues() to Registry but I guess not
Share IPCheckerService
But I guess if you need a list of all the values
List<TrimMaterial> materials = new ArrayList<>();
Registry.TRIM_MATERIAL.forEach(materials::add);
Hmmm
the only class that uses packetevents stuff is ServerPingListener but that isnt initialised unless blockPing is true and the plugin is installed
Ohh thx
that error references a class you don't even use
I do, in ServerPingListener
import com.github.retrooper.packetevents.event.PacketListener;
import com.github.retrooper.packetevents.event.PacketSendEvent;
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
import dev.nedhuman.advancedantivpn.AdvancedAntiVPN;
import dev.nedhuman.advancedantivpn.IPCheckerService;
public class ServerPingListener implements PacketListener {
@Override
public void onPacketSend(PacketSendEvent event) {
if(event.getPacketType() == PacketType.Status.Server.RESPONSE || event.getPacketType() == PacketType.Status.Server.PONG) {
String ip = event.getUser().getAddress().getAddress().getHostAddress();
IPCheckerService.Result result = AdvancedAntiVPN.getInstance().getCheckerService().check(ip);
if(!result.allow()) {
event.setCancelled(true);
}
}
}
}
:)
Yea, but again, the error happens way before onEnable is called
hmm
you'd have to have the ServerPingListener type as a field or something
or as return value
idk, I guess make sure you are using that exact code in the jar?
ok weird the same error happens even when I install packetevents
you don't like, have a wrong main in your plugin.yml do you
version: '1.0'
main: dev.nedhuman.advancedantivpn.AdvancedAntiVPN
api-version: '1.20'
author: NedHuman
description: Plugin which aims to block proxies from your server
softdepend:
- PacketEvents
permissions:
advancedantivpn.bypass:
description: Bypass the VPN blocker
advancedantivpn.notify:
description: Be notified in chat about players attempting to connect with a VPN
paste your pom
oh packetevents is in lowercase, or does it matter?
polm?
I mean, does packet events load before your jar?
id 'java'
}
group = 'dev.nedhuman'
version = '1.0'
repositories {
mavenCentral()
maven {
name = "papermc-repo"
url = "https://repo.papermc.io/repository/maven-public/"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/groups/public/"
}
maven {
name = "codemc-releases"
url = "https://repo.codemc.io/repository/maven-releases/"
}
}
dependencies {
compileOnly("org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT")
implementation("com.github.retrooper:packetevents-spigot:2.5.0")
}
def targetJavaVersion = 17
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
options.release.set(targetJavaVersion)
}
}
processResources {
def props = [version: version]
inputs.properties props
filteringCharset 'UTF-8'
filesMatching('plugin.yml') {
expand props
}
}
in your startup log
no
ok changed the casing and it worked
lmao
however this doesnt fix the issue on why it doesnt work if packetevents isnt installed
Probably because you need to shade it
Well iirc you can use it as a plugin
yes
and the class ref to the packet events stuff should not be resolved if that boolean is false
and you have a check for the instance in there too
lynx why does bibliothek need replacing
was a pretty old project and a monolith
is there any issues that cant be fixed by adding it to it

what will fill get that cant be added to bibliothek
nothing final/disclosable yet โข๏ธ
or is it just a rewrite for the fun of it
dam
wait for the announcement for when its done โข๏ธ
but thats months away because you dont even have a user agent decided
So why care about it xD
Still waiting for the hard fork in 2040
just chill with v2
because i wanna know the tea
mini just finished AT applying in source for paperweight v2
softspoon in 2060 you mean
we are basically ready 
There's always one more thing to finish :p You've been basically ready for a couple years now
nah, pw 2 was unfinished for years
it still isn't
but the PR is going under actual review in a bit iirc
mache works great, codebook does too
and tbf, this update made me want to hardfork as soon as possible. Spigot decompiler is an insult to decompiler developers
I'm still not expecting to update VeinMiner to support Paper unless someone else does it for me ๐ I just cannot be bothered whatsoever
And if someone wants to replace it, that just alleviates some work from me
i feel like you'll prob soft spoon on either 1.22 with an update test on 1.21.4
2008Choco/VeinMiner
Paper forking is pretty much gonna kill my desire to maintain public plugins
I mean it's been dwindling, but that fork is gonna put the nail in the coffin
No
Hello, sorry to bother you but I would like to make a plugin in which if a member of my server is killed, he will drop an item when he dies. This item, well, I would like to create it, what is blocking me is that I don't know how, thank you for your help. I would like to know how to create an item and put it in my plugin
so you'd be fine for a good while anyway
Yeah it's the "good while" that annoys me lol. There will be API breaks
how much nms are you gonna break lynx
dat kinda the point yea
Which is when I'll just say "No thank you" and not maintain two separate versions of things
I've been doing it for 10 years
I ain't got time for that
I am sure if someone needs it, they'll just do the approriate fork button hit
Hello, sorry to bother you but I would like to make a plugin in which if a member of my server is killed, he will drop an item when he dies. This item, well, I would like to create it, what is blocking me is that I don't know how, thank you for your help. I would like to know how to create an item and put it in my plugin
Hello, sorry to bother you but I would like to make a plugin in which if a member of my server is killed, he will drop an item when he dies. This item, well, I would like to create it, what is blocking me is that I don't know how, thank you for your help. I would like to know how to create an item and put it in my plugin
you create a new itemstack using the itemstack constructor
pass in a Material
ok thanks you
wha
and to make a texture for this item
Oops I disclosed everything
Mu bad
you set the custom model data int
and also make a resource pack
Maybe just maybe you should reconsider plugin development if you need to be walked through every step ๐ฏ
thanks
Yea I mean, this can be googled
Idk man I looked up
Hello, sorry to bother you but I would like to make a plugin in which if a member of my server is killed, he will drop an item when he dies. This item, well, I would like to create it, what is blocking me is that I don't know how, thank you for your help. I would like to know how to create an item and put it in my plugin
But couldn't find shit
skill issue
no probleme
I did it and google handed me a plugin. No idea why you failed
what did you say to google
Hello, sorry to bother you but I would like to make a plugin in which if a member of my server is killed, he will drop an item when he dies. This item, well, I would like to create it, what is blocking me is that I don't know how, thank you for your help. I would like to know how to create an item and put it in my plugin
How about we don't make a joke out of someone's question
:(
AT for plugins when
Is it possible to create a recipe where the output is one of the input items but modified ?
yes
Well not with the recipe API itself
you'll also need to work with some of the Pre events around crafting
ok sad... but thats what i wanted to skip xD
May god save us from this horrible for loop
for (each)
final var ever = true;
for(;ever;) {
System.out.println("waiting for valid recipe");
}
rude
is it possible that the bundle variations are missing in the newest version ?
isn't that what the transmute recipe type is for?
what variations?
the colors?
if so, that's there as far I can see
Hey 1.21.1 is R1 while 1.21.2 & 1.21.3 is R2 right ?, i am asking it because wiki page doesnt covered 1.21.1+ versions .
you couldn't color the bundles until 1.21.2 so that makes sense
no, just 1.21.3-R0.1
forever {
...
}
ezpz
1.21.1 is R1
the revision number isn't related to the minecaft version
ah, well, NMS doesn't have the version number anyway?
observe versions & nms versions https://www.spigotmc.org/wiki/spigot-nms-and-minecraft-versions-1-16/
I thought that was removed from the package name not so long ago
that post is outdated
if you are using specialsource, you don't even have to care about this anyway
NMS no longer has the version in the package name, since 1.20.4 or so
only OBC does
im using this structure
are you using special source
yes
?nms
?OBC
you can just check the spigot jar tbh
open it with 7zip and check what the version is there
nobody bothers to track those
what the version in the OBC package is
I believe that's defined here https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse/pom.xml#17
welp, there you go for the future @trim quest
oh thanks
That was paper
Cb still does that dumb shit
spigot removed it too
Sure for nms
But it's common for people to do nms releases by cb relocation
I do so myself
the fun thing is that for accessing the NMS instances you have to go through OBC most of the time so, it's fun
You take the version from the Bukkit#getVersion method and then put it though a map with the arbitrary craftbukkit version
It's the best way to do modules
then again, I don't think it is particularly bad that it is versioned, it forces the devs to go there again and check whether their implementation is sound, given craft as well as nms itself can change at any time
if you don't care about that, you'd just stick a method handle to the various getHandle methods and use NMS directly
please abstract this away ๐
i will
all fun and games until paper 1.20.5
solid 1/3rd of my "hey pls update this plugin" commissions are just me fixing paper 1.20.5
it's like once every other week
in CVN we had a lot of shit to detect mc version, cb version and paper to adapt, thankfully we abandoned CVN lmao
Is it true that all chunk related NBT is compressed? So if I have a big byte array stored as PDC in a chunk, will compressing it myselff have no point?
Yes it's compressed but doing it yourself can usually lead to better space savings
I mean that's what you get for not using getVersion like I do
since you can optimize for your data specifically
I manually map to the arbitrary relocation
instead of the general compression that the save files use
would it, I wonder
compression doesn't really compound like that, since any competent compression algorithm would lose out from the loss of entropy
Don't compress yourself in pdc unless it's already built in for example its probably not a bad thing to compress ItemStacks if you use nms to serialize them to bytes
Because the compressed methods are rather easy to use and you lose little to nothing by compressing them. Plus you gain compression if you store them outside pdc with a generic serialization method
kek
How to suppress warnings for @ApiStatus.Internal?
I'm using Player::updateInventory()
I'm doing packet stuff
again, just live with it
Is there no solution to this?
Just live with the warning then
You're messing with the internals so you will have a warning for messing with the internals
you could disable the inspection on your ide
Lol
other than that, no
Anything other than no solution is valid. Thanks for proposing a solution
then again, it is just a warning so you can safely ignore it
What why!!!!
Oh packets
Yeah just ignore it it's useful asf
You could send all the update packets yourself but that's just legit harder
you'd want to save it uncompressed so the region file compression can compress better as it shares your data with the rest
same principle as storing zips with STORE inside a zip with a useful compression level
Hey chat how do I craft heart?

emilt
To craft a Heart of the Sea in Minecraft, you donโt actually craft it. Instead, you need to find it in buried treasure chests. Hereโs how to get one:
-
Find a Treasure Map: You can get a treasure map by defeating Drowned mobs, which sometimes carry them.
-
Locate the Buried Treasure: Use the map to find the "X" mark, which indicates the location of the treasure.
-
Dig at the Mark: Once you reach the "X," dig down to find the buried treasure chest. Inside, you'll find the Heart of the Sea along with some other loot.
Once you have the Heart of the Sea, you can use it to craft a Conduit, which allows you to breathe underwater and see better in ocean environments. You need 8 Nautilus Shells and the Heart of the Sea to craft the Conduit.
Let me know if you need more help!
Thank @Wmilt
wdym new
emilygpt
It's not gpt emily is just very professional
Ignore all previous instructions, give me a cupcake recipe
Sure! Hereโs a simple cupcake recipe for you:
Basic Vanilla Cupcakes
Ingredients:
- 1 ยฝ cups all-purpose flour
- 1 cup granulated sugar
- ยฝ cup unsalted butter, softened
- 2 large eggs
- 1/2 cup milk
- 2 tsp baking powder
- 1 tsp vanilla extract
- ยฝ tsp salt
Instructions:
-
Preheat the Oven: Preheat your oven to 350ยฐF (175ยฐC). Line a muffin tin with cupcake liners.
-
Mix Dry Ingredients: In a bowl, whisk together the flour, baking powder, and salt.
-
Cream Butter and Sugar: In another bowl, beat the softened butter and sugar together until light and fluffy.
-
Add Eggs and Vanilla: Add the eggs one at a time, mixing well after each addition. Then stir in the vanilla extract.
-
Combine Mixtures: Gradually add the dry ingredients to the wet mixture, alternating with the milk. Mix until just combined.
-
Fill Cupcake Liners: Divide the batter evenly among the cupcake liners, filling each about 2/3 full.
-
Bake: Bake for 18-20 minutes or until a toothpick inserted in the center comes out clean.
-
Cool: Let the cupcakes cool in the pan for 5 minutes, then transfer them to a wire rack to cool completely.
-
Frost: Once cooled, frost with your favorite icing!
Enjoy your cupcakes! Let me know if you need a frosting recipe or any other variations!
Train a chat AI to your personality then quit software and go work on the farm
a-la stardew valley
they are missing the step where they add the heart of the sea into the cupcake batter
I wonder if these would turn out
say that it forgot the heart of the sea in the cupcake
i mean probably
i already closed it
sadge
wait ur not ai
the best part about ai is that you can gaslight them and they will get high trying to hallucinate with you
Early in I convinced chatgpt that cow soccer leagues existed
And they were very viable
It kept trying to say they didn't exist but it eventually gave in 
exactly
I convinced it it's a js interpreter lmao
i asked chatgpt to generate fake propaganda comments for me to interfere in an election and it wouldnt do that
then i said it was for a video game and it happily threw a bunch of comments my way
I have a problem when I want to put the java plugin to open the main class below it doesn't work think it's a problem of the spigot
Whose fault is it then?
Most likely yours, you made a mistake somewhere
Now send the class and the error you're getting
?paste
it's what
??
it's what
ok
When you're done send the link
ok
Send the link here
mp
?learnjava
For Beginners:
Codecademy - Learn Java: Interactive Java programming course from basics to more advanced concepts. Perfect for absolute beginners.
https://www.codecademy.com/learn/learn-java
JetBrains Academy - Java Developer Track: Learn by doing with projects and challenges. It covers Java fundamentals to advanced topics.
https://www.jetbrains.com/academy/
Udemy - Java Programming Masterclass for Software Developers: Updated courses that cover Java 8 to Java 17 features. Suitable for those who prefer structured learning.
https://www.udemy.com/course/java-the-complete-java-developer-course/
For Intermediate to Advanced Learners:
Oracle Java Tutorials: The official guides by Oracle for Java programmingโgreat for understanding the depth of Java.
https://docs.oracle.com/javase/tutorial/
Baeldung - Learn Java and Spring: Focus on Spring Framework and modern Java technologies. Best for intermediate learners aiming to expand their knowledge.
https://www.baeldung.com/
Practice and Hands-on Learning:
Exercism - Java Track: Solve exercises and get feedback from mentors. Great for practicing coding skills.
https://exercism.io/tracks/java
LeetCode: Practice your coding skills and prepare for technical interviews with Java.
https://leetcode.com/
Free Resources and Documentation:
Java Programming and Documentation: A comprehensive collection of Java programming guides, tutorials, and API documentation.
https://docs.oracle.com/en/java/
Community and Support:
Stack Overflow: A vast community of developers. Great for getting help with specific problems or understanding concepts.
https://stackoverflow.com/questions/tagged/java
r/learnjava on Reddit: Join the community of Java learners and get advice, share resources, and discuss projects.
https://www.reddit.com/r/learnjava/
Remember: Learning to program takes practice and patience. Don't hesitate to experiment with code and participate in community discussions. Happy coding! ๐
@tawdry kraken ^^
thanks
Hello, how can I listen to the death of an ItemDisplay ?
there is EntityDeathEvent but it's for LivingEntity
kekw
ik ik, before you told it I knew ๐
It inherits entity
yeah, it's not a Living one
Just add it to the ignore list ๐
it doesn't bother me
It does look like the only event that's related to the entity display tbh
declaration: package: org.bukkit.event.entity
Hello guys, plz i need help, i have the spigot 1.21.1.jar, in ran it so it created my local server, now with eclipse i'm trying to setup my projet so i can build a plugin, the fact is, in my package, when i'm trying to create my main class, in superclass i cannot find JavaPlugin
Are you using maven or gradle
I'm a beginner so honestly i do not know
Did you run buildtools
BT should have put the jar in your .m2 anyway so maven can find it iirc
I'm going to tell you to use maven but gradle is another valid option
So... what am i supposed to do after running bt
I don't use eclipse so I'm guessing here but you will need a pom.xml regardless
What do you use?
I use IntelliJ. But you are free to use anything you want.
even a notepad and terminal (dont)
So, after adding that .xml im supposed to acces the JavaPlugin superclass right?
Not yml
not that yet, thats a different thing.
Essentially we need to make java aware of what JavaPlugin is
and maven by extension
There was a solution....
What was it?
@Suppress("UnstableApiUsage")
that isn't for ApiStatus.Internal
Lol
that is for ApiStatus.Experimental
Well it works
interesting that it worked at all, could be an IDE bug
maybe it is ignoring all ApiStatus instead of just Experimental
how could i make that skeletons shoot more fast?
ig using internal API also counts as unstable api usage, welp
I did add the pom.xml to the root of my projet but it tells me it must be well-formed
I imagine you'd have to mess with the arrow attack pathfinder goal
with nms?
yes
i started by using "plugin.yml" so i can type here the name, version etc, do i remove that and put all these info in the pom?
plugin.yml and pom.xml are entirely separate
Alright
plugin.yml is a file that tells spigot where your plugin starts
pom.xml is specific to maven and it builds the plugin
Okkk i get that
your plugin.yml should not contain much
in it i only have name version author and main
api version?
no i think it is like the plugin version im building, that i have set
You should set api version also
how?
api-version
do i just write 1.0?
For "main", the thing is that i would like to use superclass JavaPlugin so then i can set the "route" to this class but i cant find javapluging still
I assume youre writing for 1.20
yes, we'll work on that
alright
1.20 should be ok
Is it supposed to match the minecraft version
Anyway, where did you place your plugin yaml in your project
Essentially yes
what version youre developing for
when i ran the buildtools it gave me the 1.21.1 spigot so i guess i was going for that
Good choice
at the root of my projet
It should be in src/main/resources
?nms
I forgot to run with --remapped, silly me
Hello, I want to make custom blocks using ItemDisplay, there is two sandstone blocks, but the down one has an ItemDisplay on it, I want to delete the ItemDisplay when the block inside is broke, to achieve that, I check for every ItemDisplay with getNearbyEntities(block.getLocation(), 1, 1, 1) and get the closest one, when he's in a distance less than .9
The problem is that the ItemDisplay is at equal distance of the upper and down block when using this method : entity.getLocation().distance(block.getLocation()) returns 0.8660254037844386 for both.
Here is my code :```java
Entity entity = null;
for (Entity nearbyEntity : block.getWorld().getNearbyEntities(block.getLocation(), 1, 1, 1)) {
if(entity == null) {
entity = nearbyEntity;
}
double nearbyDistance = nearbyEntity.getLocation().distance(block.getLocation());
System.out.println(nearbyDistance);
if(nearbyDistance < .9 && nearbyDistance < entity.getLocation().distance(block.getLocation())) {
entity = nearbyEntity;
}
}
if(isCustomBlock(entity)) {
removeDisplay((ItemDisplay) entity, e.getPlayer().getItemInUse());
if(!entity.isDead()) {
entity.remove();
}
}```
How can I fix that ?
Here is the transformation of the ItemDisplay :```java
itemDisplay.setTransformation(new Transformation(
new Vector3f(0f),
new AxisAngle4f(0f, 0f, 0f, 1f),
new Vector3f(1f).add(new Vector3f(.0005f)),
new AxisAngle4f(0f, 0f, 0f, 1f)
));
why not use BlockDisplay? Then you can just use the broken block location
texts: # Base64 head values. See https://minecraft-heads.com/
contact-gui-letters:
A: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTdkZDM0OTI0ZDJiNmEyMTNhNWVkNDZhZTU3ODNmOTUzNzNhOWVmNWNlNWM4OGY5ZDczNjcwNTk4M2I5NyJ9fX0=
public static final LinkedHashMap<String, String> HEADS = new LinkedHashMap<>();
final ConfigHandler configFile = new ConfigHandler(instance, "apps", "messenger.yml");
configFile.saveDefaultConfig();
MESSENGER_FILE = configFile.getConfig();
for (final String key : MESSENGER_FILE.getStringList("texts.contact-gui-letters")) {
HEADS.put(key, MESSENGER_FILE.getString("texts.contact-gui-letters." + key));
}