#help-development
1 messages ยท Page 810 of 1
Hey, I'm writing a NMS wrapper for 1.20 and stumboled upon an issue. The chunk data packet has changed in the latest versions of spigot.
I'm stuck on how this new packet works and how would I be able to implement it into my system.
1.16
@Getter
public class NmsPlayOutMapChunk1_16 extends NmsPlayOutMapChunk {
private final PacketPlayOutMapChunk packet;
public NmsPlayOutMapChunk1_16(PacketPlayOutMapChunk packet) {
this.packet = packet;
}
@Override
public int getX() {
return getIntField("a", packet);
}
@Override
public int getZ() {
return getIntField("b", packet);
}
@Override
public int getMask() {
return getIntField("c", packet);
}
@Override
public boolean isFull() {
return getBooleanField("h", packet);
}
}
1.20
@Getter
public class NmsPlayOutMapChunk1_20 extends NmsPlayOutMapChunk {
private final ClientboundLevelChunkWithLightPacket packet;
public NmsPlayOutMapChunk1_20(ClientboundLevelChunkWithLightPacket packet) {
this.packet = packet;
}
@Override
public int getX() {
return getIntField("a", packet);
}
@Override
public int getZ() {
return getIntField("b", packet);
}
@Override
public int getMask() {
return getIntField("c", packet);
}
@Override
public boolean isFull() {
return getBooleanField("h", packet);
}
}
The x and z coordinate fields are still the same, they still represent the x and z values. However the mask and if it's full checking has completely changed, I've looked into it and there's stuff like BitSets, etc. May I get some assistance?
Totally:
Introducing an item that toggles between flying and gliding in Minecraft can significantly enhance gameplay by offering players a versatile tool that adds both practicality and strategic depth to their adventures. This innovative item could take the form of a magical feather, a soaring potion, or a specialized elytra attachment.
Resource Gathering Efficiency:
The primary advantage of this item lies in its ability to empower players during resource gathering. By toggling between flight and gliding modes, users can easily navigate diverse terrains and reach elevated or distant resource-rich areas with greater speed and efficiency. This not only streamlines the resource collection process but also encourages exploration of the vast Minecraft world.
Strategic Gameplay Integration:
Incorporating the item into gameplay becomes a strategic necessity. Players must make conscious decisions about when to activate flight or glide mode, adding a layer of skill and foresight to their adventures. This enhances the overall gaming experience, requiring users to consider factors such as terrain, proximity to enemies, and the availability of resources. The item becomes a crucial part of their toolkit, influencing decision-making and introducing an element of strategy to the game.
well it requires a ClientboundLevelChunkWithLightPacket
Client Benefits:
When presenting this idea to clients, emphasize the following benefits:
-
Enhanced Exploration: The item encourages players to explore the Minecraft world more thoroughly, uncovering hidden treasures and discovering new landscapes.
-
Increased Engagement: The need to toggle between flight and gliding adds a dynamic element to gameplay, keeping players engaged and invested in their Minecraft experience.
-
Strategic Decision-Making: The item promotes strategic thinking, as players must decide when and where to use it for optimal results. This adds depth to the gameplay and keeps users actively involved.
-
Resource Optimization: Efficient resource gathering becomes a more streamlined process, allowing players to focus on building, crafting, and enjoying the creative aspects of Minecraft.
-
Unique Gameplay Element: The introduction of a flight and glide toggle item sets the Minecraft experience apart, providing a unique selling point that can attract and retain a diverse player base.
In summary, incorporating an item that toggles between flight and gliding in Minecraft not only enhances resource gathering efficiency but also introduces a strategic element to gameplay. This addition enriches the overall gaming experience and can serve as a unique and compelling feature to attract and retain players.
yea but it's different in the latest versions
the fields
well the previous required PacketPlayOutMapChunk
this is the difference
you see the difference? before you could easily get certain fields like the one to check if a chunk is full and to get the mask
but now I don't know how to do it
client said they would not like an item to be the incharge of switching the flight modes
What would they like then
they can't have both without mos
mods then
or commands
it just wants the chun, lightlevel and x,z that is relative to the chunk
I think
can't quite say for sure what the bitsets refer to
can u sneak mid air
the context behind my code is me reading the packet being sent and now I'm wrapping it in this class which I would extract info from stuff like x, y, if its full and its mask
im not creating the packet, i'm reading it
I think so?
not sure when gliding
But def when flying to descent
well this packet is going to go to the client, so not entirely sure why you need to capture this packet but I don't see the issue here though if you are intercepting the packet before it leaves the server
yeah 
the issue is in me not knowing how to get to those fields in latest versions lol
that's kinda smart
you don't need those fields if you are intercepting a packet
hm?
well you only need to read that data right? not sure why you need the fields in the class to read a packet
only reason you need access to any fields would be because you are wanting to send a packet
i am somewhat capable of thinking, yet it only happens randomly
and the data is private
ok, well I guess I just fail to see how you still need the fields if you are just reading a packet
how else am I supposed to get the data inside of the packet
because you read it
huh
packets are independent of languages
do you understand a bit more on what I'm doing based on the screenshots? its hard to explain in english
how would i detect a sneak while a player is falling
ToggleSneakEvent?
... ^^?
oh yea
no because I guess you are using some kind of nms api which I guess makes sense why you have to do it this weird way
butt i also want to detect player fall
an for that i think i need player move event?>
im using protocollib to listen to packets being sent
probably going to have to make a custom event for this
or do i run a schedular that checks if y decreased next tick
oh i havent used spigot or minecraft api for almost a year, how do u do these
its easy to make a custom event lol
here is an example
came with the directory ๐
My example extends from the generic Event, however you can also extend from other events as well
I am not going to be much help then, I don't use protocolib
and makes sense now
this isn't about protocollib its later cast to the nms packet we know
only if you need to send the packet o.O
but if you just want the data the packet doesn't matter
just the data
yeah how do I get the data man ๐ญ
you read it from a bytestream
oh?
and then using the format that its suppose to be, you just extra the bits you need/want
or everything
protocolib does this for you though hence why you needing to have some kind of class. However I don't use protocolib to intercept as I just hook into the network manager directly
so....not entirely sure if protocolib lets you just have the raw packet
but Im using reflection to read out fields in older versions
why cant i do the same in the latest versions
well I can, I just don't know where to get the fields from
How does spigot release same day as Minecraft? Do you work of of snapshots?
No he just looks at it
MD_5 works tirelessly on it.
On release.
To release as fast a possible
I think sometimes?
It is it's just not public jantruck
?
Oh s I cannot get the work on the release canadaites ahead of time, to begin updating my plugins early?
Cuz things change
Oh yeahyeah, never said he didn't do snapshots
You'd have to update spigot yourself
I think #spigotcraft was on a snapshot a while ago?
It might be rn
Ah okay.
Spigot aims to be backwards compatibible, so if u aren't doin dumb shit most would jsut update fine
How does via version and some other plugins update early then?
Protocol updates
My plugin for the most part does not require updating. Just some NMS that we use, that still doesnt have API
And probably wont cause its kinda obsuure
Just use mojmap and most of the time it's similar
Yep thats what we do
What exactly are you trying to do
We don't help cheating
I assume that would be against their TOS
you can google what premoving is, it's quite simple
and it's not cheating
why tf would it be cheating ๐
these are used to help update faster as snapshots and pre-releases tend to be close to what release will most likely be as typically there isn't drastic changes
however keep in mind that bukkit has been around for a long time and so has spigot, so the processes for updating has been created and improved over that time span
its not has hard as you might think it is, but there is still a requirement of some manual updating to fix some stuff ๐
We're not going to help with that
You won't get help here.
You're on your own
It's almost cheating
what.
Makes sense thanks. Was hoping there was some way to run build tools for experimental versions if you guys are working ahead. But if not ill live
Just play on a site that allows premoving?
well that isn't useful at all
i've made it clear my intentions are not to cheat, what else do you want
cheating is using engines, not premoving ๐ญ
Premoves can turn to "optimal moves" quite quickly.
Like vibrating anal plug kinda deal
I hope you realize that the top 10 chess players world wide
play in sites that use premoves
then do that too?
What does this build tools flag do
I'll just answer "just don't XYZ" to anyone asking for help in coding then
what are considered experimental versions?
still is intended for development
Go to the programming hangout or smth
Experimental API's?
asshole
the gist of updating is using previous source to compare with newer source and then use that to auto update what it can, whatever it can't do automatically you have to do by hand. This is the reason specialsource and specialsource2 exist
premoves arent cheating, but this is not the correct chat for general programming help
He clearly doesn't play chess and is tryna frame me for making cheats
I can't tell you exactly what md uses, just the basis in how it is done ๐
in the channel description its stated that it would bave to be related to spigot/bungee
the audacity is crazy
I never framed you i just said it could easily be turned into cheating from intercepting and altering the page.
True shit
Luckily most of spigot / bungee dev here can't since players need to actually run it.'
if you're not gonna help, at least shut up so maybe others can
You are not going to get help with something that can be used for breaking tos, idk what isn't clear?
How is it breaking tos
have you ever played chess mate
this isn't breaking tos at all
TOS has nothing to do with actually playing the game
It can contain anything related to usage of the site
oh my god just google the term
@ivory sleet can u just tell him we can't do whatever he is asking in regards to intercepting and altering a website
I'm well aware what it means
"altering"
I assume tos have some clausa about cheating
dude
and probably smth about modifying the website
the only way to cheat in chess is to use engines
like stockfish
or get help from other people
You can break TOS in more ways than cheating
Not at all
unless you're cursing at people after losing or something
@young knoll help us daddy we don't know chess
which is irrelevant in this case
Idk why it's so hard to accept people here won't help u
Why are they dead.
Dude
if you don't wanna help it's fine
but you don't need to be a total asshole about it
Please head to a server that isn't about spigot development and ask tbh.
especially when you know nothing about the game
I didn't notice anyone being asshole here
it's 100% not cheating
Yes I did
that's complete bullshit my man ๐ญ
Anything can be turned to cheats when it involves computers
it doesn't have to be coding related
By that logic, we just stop coding or using computers at all
We're not saying ur not trying to cheat or to cheat, just that we won't help you since it so easily can turned to a cheat.
because we suspect "cheating"
read what I said
What are you trying to do? Add premove mechanics onto an online Chess website that doesn't support them?
Atleast i won't help you.
"doesn't support"
it's more like doesn't have
Well that's what I meant.
If it's not on the site it's not supported, stop arguing semantics
Well technically it would be. It gives you a time advantage over other players on the site. If you want premoves, go to a chess site that has them.
it doesn't give you
any advantage
you can play moves in under 100 milliseconds
Oh dang! an advantage of a few 1/1000ths of a second
ikr too much
i'm totally getting banned for this one!
What's going on
- you risk doing a bad move that loses you the game
so it's bad to premove if you suck
Coll
He wants to add smth by intercepting a chess website and adding premoves to it. I just said i wouldn't help with it since it could easily be turned into a cheat.
bro wants to cheat in chess ๐ญ ๐
What site is it?
It's not even launched yet
but the owner said he won't be implementing premoves anytime soon
lazy ass owner ong
check how the website sends requests, you could make a queue of premade moves and instantly send them when its your turn
and if the queue is empty do nothing ig
I know but
all I want to know
is how to intercept requests
the logic for everything else isn't hard
do you want to change them or just see them
see them and send requests myself
that's only for seeing requests that i receive
premoves are quite dumb even if you are good. The only time they could be deemed useful is if you intend to just move only a single piece regardless what happenes because you can't move any other piece
not for what I send
its for every request lmao
any request your browser does with the server is logged
Yeah, but in forced positions it's useful
HTTPS goes wroooom
There's a reason every top player uses them
that is not true
ah
elaborate
considering its chess its probably WS communication so you should be able to view the WS data
I routinely play against GM's and none of them do premoving
its a bit ugly to look at tho
you might find the odd one out that might
but the majority absolutely don't and the reason for this is because its is actually prohibited in tournaments and ranked matches
Is there an event that listens for when the meta of an item is being changed?
You don't premove in midgame
but if you have a forced mate for example
it's just nicer to premove
yes I already said if you have like one piece you can really just move regardless what else happens sure
or if you are going to check mate in so many moves
What's your elo btw?
but when playing with GM's or higher players if they know they will lose in like 5 moves regardless of what they do they typically resign
I have never seen a GM that would intentionally drag out a loss
I dont think so
I guess if you want to go for a technical win
but again I have never played against anyone who has done this though
What's your elo?
what does my elo have to do with anything?
Not the GM's unless they are playing against other GM's but even then they typically only play in tournaments so as to not hurt their ELO as much
tournaments for ranked elo that is
all other games are unranked usually when they play
No, they do play in ranked from what I've seen lol
They don't care about their elo as much in online chess
which is usually other GM's
there is a reason for this
if someone with 500 elo beats a GM with 2700 or higher elo
and it was ranked
that 500 elo instantally gets boosted to like 2000 elo and that GM drops to like 1500
its not worth risking this
what a great ranking system lmao
okay
and here i thought overwatch was bad at ranking
the system is purposely designed like this to make it so GM's don't bully lower ELO's
and if they do they have a risk of losing their status
typically there is no way a 500 elo would be able to beat a GM unless they just got extremely lucky
and so the system is just designed so there is no artificially inflating another's elo status
It is great
frostalf is assuming an impossible scenario
how would a 500 elo beat a GM
also many sites and even public places prohibit ranked matches between players if their elo ranks are too far apart
it doesnt matter how just because you lose to a low rank doesnt mean you should get your rank thanos snapped
how would they get matched
they don't unless its a personal invite to a match
me with 1 elo inviting a gm just to cheat
you can specifically request a ranked match to a specific person
๐ฟ
elo is refunded
Just don't get caught ๐ฅ
I have beaten a few GM's in unranked matches
some of them because I was lucky
what's your elo
Froatalf is 233
my elo is higher then 233 lmao
then what is it?
Ok it's atleast 300
What is your elo Domino?
1600-1700
I can give you 2 elo numbers which do you want? ๐
the hundreds/thousands
That doesnt sound righ
yeah well sometimes monkeys make ranking systems what can i say
its a bit of an over exaggeration and I don't remember the exact math off the top of my head, but this is the scenario that would happen
it is a little far but it's about right
but this is impossible really
this is about the same chance as me becoming the USA president
what if we train some guy for 25 years on chess and then finally put him in a ranked match
a GM shouldn't be accepting ranked matches agaisnt someone of a low ELO, it is generally their responsibility to decline such things
however, since it isn't strictly against the rules
system issue
there is a punishment to the GM for losing against someone with 500 ELO
personally i had a few hundred hours of gameplay in overwatch and when i began playing ranked i started shitting on like the first 3 divisions bc of that, it doesnt mean they should get nerfed into oblivion for losing to a bronze 5 ๐
I cant imagine a k-factor where such a huge elo gain/loss would be created
heya smile
Oi
I mean that happens a lot
Do you feel like premoves should be allowed in a place it isn't implemented?
indeed
frostalf is wrong
elo difference more than 400 is counted as 400
Since when youโre hikaru or magnus there are scarcely any1 who is better than u and can win equally many games against u
I rarely have seen a GM accept matches that are ranked against a low ELO player, unranked sure but not ranked
Well depends on what u define as low elo
rating change is +18.4 if a 1000 elo wins against 2700
Cuz like hikaru takes down 2900s easily
so yeah, frostalf scenario was a little overexaggerated, at least to FIDE standards
in a speed match
(K factor of 20)
Anyway I did read through this entire convo, not sure what exactly is cheating nonetheless if people dont wanna help then thats the end of it
how do you store a Location in a database? I can store the coordinates but I'm not sure how to handle the world
and then how do you create a new location from that
idk either
I never said it was cheating
Yes they are always loaded, it's like a persistent factions -type server
just that it is generally prohibited in tournaments and the sorts
Yea
hey, is it possible to connect fake players through proxy directly?
Probably? Don't think there is any plugins for it though.
what is the difference between PotionType and PotionEffectType and why PotionType can return PotionEffectType or null
what i shold use for effects
PotionEffectType pretty much whenever possible
then for what need PotionType
seems like those are used for creative inventory
its in the description of the docs
is there any way to teleport player using code that have passager?
I know that I can make custom method for teleportation that before teleporting remove passager that fix it for my plugin, but other plugin will still have problem with teleportation
i don't think so natively
ye, its bukkit feature
.
not much you can do unless you fork the server
you can always provide api for your custom teleport method or also listen to PlayerTeleportEvent
hmm, maybe java Proxy interface will solve this, so I can listen if player.teleport() method is invoking
I can't understand placeholder api... Like.. I have placeholder api and... openrp, and i want to get variable from openrp, how should i use it?
Ask openrp what placeholders they got registered
I saw that there is a variable %orpdesc_name%
PotionType is for like the actual potion items themselves
e.g. whether or not they're extended, more potent, etc.
Are you coding?
You'll find potion of the turtle master in PotionType but not in PotionEffectType because it's not a potion effect, it's a potion
?
Are you programming?
forgot* about all those fun potions
Why not use whatver API openrp gives then instead of placeholderapi?
Placeholderapi is mostly used for placeholders in configs etc.
hi , uhh i got redis working , no errors while connecting or disabling the plugin , but there is nothing being sent to the lobby server plugin moudle which is already have a listener to get the new data that been sent
is it way to create custom Villager.Profession?
nein my sir
tis but an enum within the bukkit API
if its a Registry in NMS you might beable to unfreeze the NMS registry, but i means you can only do so much with that since its all server sided
where can i find, what i can do with nms and what no?
i know i can create custom biome, for example
you gotta figure it out yourself
ohh
i know this
i thought that it is some resource from community like about nms
so i can change everything that is on server side?
another weird thing, why does CommandExecutor.execute() returns boolean but output values in never used
so its like "everything" from https://wiki.vg/Protocol where clientbound?
that is not the only place its used
also
it connected
Well kinda
There's somethings you can't change with a plugin and would need to fork and edit the actual server itself
Or use asm and edit the server jar with your plugin which ends up being basically the same thing at the end of the day
does anyone know how i can get a player's creative saved hotbars?
i figured so, unfortunately :/
anyone know why the material data seems to be disappearing?
im using packets to send the items but im not manually doing the encoding so that would be either a minecraft or protocollib issue, its more whether this is a known bug in 1.8 or if i fucked omething up
https://github.com/retrooper/packetevents
is this a good alternative vs protocollib for simply sending packets from server to client?
protocollib got some problems and isnt working for me rn, created an issue but no answer after 4 weeks
yeah good alternative i think
ok thanks
Then you could just use a Map<Location, Faction> to track their core.
I would also store the location within the faction.
Doesn't Location hold a hard reference to a world?
If a world is unloaded it results in a nasty memo leak
Does it? I thought it was weak like in block
Has it always been like this 
can I use java 21 for spigot mc 1.20.2?
for both developing a plugin and running a server?
Yeah it's a hard ref on 1.8 so it changed somewhere between
Yeah should work
Yep
this is sad
20 is max rn i think
ok ty
Changed to a weakref in 2019
Was the same with j16. Gradle just takes a while sometimes.
for a bit of context, idk if this changes your answer but I have a factions manager that basically has functions pertaining to all the factions (stored in a hashmap)
would the eggs be stored there?
So around 1.13.2 / 1.14
and if we hit an egg how can we tell if it's a special egg aka one that is meant to be a "home base" and not just any dragon egg block
That would be a possibility.
by this code im creating custom villager trade - https://pastebin.com/Fnh7ceme
but when i right click on villager, inventory open only in 1 second and then close
ima repeat bc i have faith it exists
Something like this
public class FactionManager {
private final Map<UUID, Faction> factionMap = new HashMap<>();
private final Map<BlockPos, Faction> factionBlockMap = new HashMap<>();
public boolean isFactionBlock(BlockPos pos) {
return getFactionFromBlock(pos) != null;
}
public Faction getFactionFromBlock(BlockPos pos) {
return this.factionBlockMap.get(pos);
}
}
*BlockPos could be a custom class with discrete values for xyz
InventoryClickEvent when a player manually edits the inventory, and something like InventoryMoveItemEvent when an item is moved by a hopper
InventoryClickEvent inclused any inv edit or would i have to manually check droping items and picking them off ground?
Not really
rip
dropping items and picking up items are different events yeah
BlockVector
holy fucking shit ive been debugging this shit for like an hour, then i read the craftbukkit source code and it just completely fucking ignores the mf MaterialData and i couldve just set it using setDurability from the fucking start i love 1.8
Doesnt contain the world, right?
nope
It's just a Vector extension that floors the values when hashcoding iirc
why are discord images shit
You just have to open them in the browser ;/
lets goo finally after like 3 days and reinventing the wheel 600 times
i have a clickable button
which does omsething
W
can somebody look this over, I am getting nothing from console and it does not work
it is ment to check if an item enters or leaves any players inventory and remove/grant effects and stuff

shhhh
Did you register the listener?
thats from onLaunch
love them leaky code
Change your collections. Make the private and final.
Add debug statements after that and check how far the code runs as expected.
I wonder if bukkit entities have a soft reference to the nms entity so we prevent leaks
should be a smart ass decision
ok
true
and make its hashcode just redirect to the entity id's hashcode 
They don't but it would be a pain in the ass to have to work with in implementation because it's NPE central unless you replace every instance of field access with a getHandle() call
ctrl + r
I mean
The reason it was sort of doable in Location is because its nullability was already undefined and it's not used internally within Location anywhere anyway
I'd rather see an exception calling me a poopy head than 30gb ram used after relogging for 5 minutes
Sure, you might, but CraftBukkit doesn't :p We don't just randomly change behaviour like that for no real benefit

plugins storing the player instance after logout deserve to be broken
found it and im dumb af i never add the player to the list, only their inv to the hashmap
ths 7smile7
you're a poopy head
AND your code leaks
best of both words right here
i am creating custom villager with this code - https://pastebin.com/Be9ps8d3
but when i right click on him inventory close maybe after 0.5 seconds
but i can see in this time custom trade
version is 1.20.2
@sterile axle bet you wish you could write single line code this good
Any exceptions in console?
Well thatโs rude magma but sure
what's the point on flexing on a fellow donor, flexing is best done on the plebs
Why do you use metadata values?
Do you have any bukkit task running?
i use metadata to check if entity is my custom, and yes, i have bukkitrunnable tasks
and i check, with default villager all works nicely
Oh no not the metadata
metadata is bad?
Use PDC instead of metadata
You should probably use their pdc or even a scoreboard tag for that.
Metadata leaks
ok
?pdc
yeah i know what is pdc
Does any of those tasks change the traders?
i used in another situations pdc
no
its only create particles
any idea?
[21:07:36 INFO]: [lobby] Enabling lobby v1.0-SNAPSHOT
[21:07:36 INFO]: jedis is connected
[21:07:36 WARN]: Exception in thread "Thread-7"
[21:07:36 WARN]: redis.clients.jedis.exceptions.JedisDataException: ERR wrong number of arguments for 'subscribe' command
maybe i need to check some event?
Like check if player right click on villager and then open custom merchant inventory
it seems you are not specifying the channel, just the driver.
How to make player fly like with elytra?
give them an elytra
but without elytra..
thought that said subtract and had a quick wtf?? moment
wat
mm thought subscribe was subtract
everything is a number if you try hard enough
Hello !
Same problem as him, it works on paper with their Component object (like it transform the chars) but it doesn't work on classic Spigot
BaseComponent baseComponent = new TextComponent("blalal ใ");
baseComponent.setFont("bossbar:bossbar");
baseComponent.setBold(true);
player.sendMessage(baseComponent.toString());
player.sendMessage(baseComponent.toLegacyText());
Any ideas ? ๐
to send a message you need player.spigot().sendMesage
untill 1.20.3 or maybe even a later update there isnt and built in support for component as inv title so it would need nms
wtf i'm so stupid thx u (it's the tiredness)
i knew it but u know..
he knew all along and was just testing you ๐
no ๐ญ
What are these Virtual Entities? Seen a lot of Talk about them recently
im pretty sure they got merged in
yeah they did
nerd
Okay thats actually quite cool though
ItemStack stack = player.getInventory().getItemInHand();
how do i define player?
where are you trying to get the item in hand
yes where do you need to get it, in an event, other method, command?
Nothing currently I have yet to write that code
Then you dont have the player object
when was that added?
correct how Do i define that
You'll get that from an event method or command usually
9 days ago
it was merged 9 days ago so it should be in latest
seems live
interesting
Unless Spigot doesnt immediately releases builds
its like a daily build iirc
I actually sort of needed something exactly like this
what's the class name?
or I guess how is it used
Whats the reason for disabling this warning?
Or if that warning is not quite accurate, provide a more accurate one
what why is that warning disabled
is that the one paper call spigot moronity on
yep
can datapacks add advancements?
idk a lot about them
Yes
yes they can
never theless why does it matter if its the MC namespace or not
don't they use custom namespaces?
then why the fuck is that warning disabled?
so hang on, these entities can exist without spawning, including getting damaged and such, won't this break plugins which listen to events and assume that entities a) are valid b) have a location when they get damaged and such?
or do they not throw events
This indicates an issue that should be dealt with not supressed
They can, technically
And even if you need to suppress it, make it a config option
Mhm
Thatโs what the snapshot is for
I'm going to make a PR didn't know about this odd as fuck, we will see what slime says
its a simple reversion of a patch file so its not a big deal if its not changed as far as work goes
can they be converted into an "actual" entity?
Yes
they work as like a template dont they
neat
can't wait to use it in ways it was never made to be used and cause issues due to that
Pretty much
don't revert the full patch though
The event being called makes sense
ik xD
Just the disabling of that warning is moronic
just gotta apply the patch and remove hte one line
Oh, y'all still need to use that whacky shell script to apply Patches
Doing that in gradle is so much nicer
whats speed dif like
probably none
find out for me
cbf i don't have any tooling setup for paper
i just thought
plus I don't care enough too
you cant can you
bc if you look at the paper stuff then thought about pring to spigot that would say no bc cla
you don't have to look at code to clone a git repo and run applyPatches I just cbf
i just had a look at the way patches are applied rn and i dont even get it
i think it just like uses git jank
Guys, could you help me, practically in my lobby system I'm adding the possibility of creating holograms, so far so good, but sometimes wrapped randomly for no apparent reason the entity no longer spawns, not even if I try to place it via Item compare, a fun and even if I touch a part of the code and move a folder not related to holos everything explodes start a server from scratch to try but nothing, the plugin and with api 1.20 ditto the server and Paper 1.20. I no longer know how to resolve it, the event that disables the entities obviously doesn't work, in fact item frames appear without problems
I can't explain this thing logically, how can everything fail if I don't even touch the hologram code, something that really doesn't make sense, if anyone knows what it could be I'd be very happy, I've tried everything, I don't know anymore what should I check
Its not just the speed difference but also the convenience. For one, you need to already have a decompiled directory from buildtools. Then secondly this also only buillds one Project at a time, so you need to do it manually for Spigot and Craftbukkit, while the Gradle Tasks literally does all of that in one command
Choco the only one keeping spigot alive with his component pathces xD
oh and MD for rebuilding the patches 
I'll make the premise that I'm using Spigot's API on Paper 1.20, but I don't think that's what causes the armorstand entities to skip
@young shell https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/pull-requests/1307/overview I made a PR we will see what slime says thanks for pointing it out
not sure why its there hopefully there will be some explanation
Also, Gradle has build cache. I don't have the initial time but i pulled the latest changes and reapplied those. Took 20sec. IIRC applying the around 1300 Paper Patches usually takes 2-4 Minutes
I still wish spigot patches themselves were dead
Someone out here violating Discord TOS i see :p
They smelly
oh no what if my account gets banned ๐จ then I'll need to make a new one
what a shame
the more annoying part would be the new email, but whatever ๐คทโโ๏ธ
Hey anyone familiar with XSeries?
no
lol look at the PR
look at the screenshot on the pr
nein
JA WAS DENN SONST
I don't use anything ๐ I just edit the CSS
and alex says german isnt angry
Ah itโs in the pr
explain how you know im on pc then
Smh now I gotta log in
kek
Doesn't have catppuccin theme, can't be good
is our dna turing complete
Hello, this error is because i dont have a Adapter for CraftMetaEnchantedBook?
Powerpoint is Turing Complete
you can use BetterDiscord themes on Vencord 90% of the time
yes now
And itโll have uhh
If I would break TOS and use another client, which I never would, it'd have to be vesktop
no one
not me
i know everyones id off by heart
I'd just send my pfp in every message
yea
like y2k is 318887270415466496
318887270415466496: Yo
coll is 125349520249847809
How can i translate a ItemStack adapter to a CraftMetaEnchantmentBook adapter for gson?
COLL LOoK ATR MY HIGH EFFORT PR
just change datatypes or what?
rewrite in rust and I'll think about it
boosh
funny joke, rust in production?
is there a way for me to run my BukkitRunnable agian after canceling it?
ew
yeah throw your runnable into another BukkitRunnable
and then run it
Schedule a new one
ive assigned it to an object and I ran it with task.runTaskLater(plugin, 1200)
but how would I schedule a new one after it expires
when did spigot get a fandom
Bukkit has a fondom
Has a single run method, can be passed to runTaskLater
i would probably avoid bukkit fandom
oh
use spigot forums and wiki
can someone help me with the CraftMetaEnchantmentBook adapter? ๐ญ
i rlly dont know what to do
cry
:(
You should just be able to create an adapter for EnchantmentStorageMeta
can I run a runable the same way as a Bukkitrunnable?
yeah
@Override
public void run() {
if(player.isDead()) {
return;
}
player.removePotionEffect(PotionEffectType.SPEED);
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, PotionEffect.INFINITE_DURATION, 0, false, false));
player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, PotionEffect.INFINITE_DURATION, 1, false, false));
}
};
task.runTaskLater(parent, 1200);```
hmm
Bukkit.getScheduler().runTaskLater(parent, task, 1200);
And by parent he means plugin instance
josh
ik
read the code
what is the maven version for 1.13?
example of 1.8.8:
<version>1.8.8-R0.1-SNAPSHOT</version>
1.13-R0.1-SNAPSHOT
parent is how I set it up
thanks
where can I find the list for all versions?
Nou
More likely than Haskell. Haskell code only has no side effects because its never-run
you can pretty much just write them bc they're all major.minor.patch-R0.1-SNAPSHOT
okay
Whats the reasoning behind the R0.1 btw?
how can i put org.bukkit.craftbukkit.v1_8_r3 in gradle?
who knows, why is craftbukkit relocated we can only guess
it was that way at one point, You'll have to ask the founders
So the reason it, we always did it like that, so it stays that. Great reason /s
0.1 because itโs never production ready
compileOnly('org.spigotmc:spigot:1.8.8-R0.1-SNAPSHOT')
I mean isn't that already indicated by the SNAPSHOT? And even if not, its never increased, so it serves no purpose
Damn all the Meta questions today
Snapshot is so maven automatically redownloads it or whatever
and Snapshots can be replaced in maven repos
where as release versions can not be unless you otherwise specify
Yeah that
The version could be incremented each build but then people would have to update their pom
I already got thay
idk why i cant import it
Like to my fule
File
Did you run buildtools for that version
ahh paper user to test
how do i run buildtools
if that solves my problem
?bt
thanks
Wow you didnโt point him to the gui :p
I figured he can run a command line tool
we need that merged
damn
isnt difficult to run buildtools
just one command
and still people needing a gui?
yes ๐ฅน
java -jar BuildTools.jar --pr BUKKIT:926 CRAFTBUKKIT:1282 --compile spigot
run buildtools with this command and then code with it forever :3
you see it improves Bukkit's Inventory API
don't you need to build for 1.8 though
java -jar BuildTools.jar --rev 1.8.8
you should check out my greatest Inventory PR of all time
Please help guys D:
what does pr mean?
oh yea
thought it was
personal record
forgot i dont have 8 on enviroment vars
lol
the gui auto manages java versions for you too <3
if you have multiple
yeah just saying
Also @river oracle I just checked, the suppression of the Message was added pre 1.13, so it makes somewhat sense because iirc before datapacks, custom advancement namespaces where not a thing, but now its not something we should suppress anymore
Probably better that way. 1.8 belongs in the dumpster by now
You a big fan of Inventory PRs???
99% of my playerbase plays on their chromebooks so 1.8 is the only option without viaversion
Why you asking?
I happen to have one
get a different playerbase /j
no thank you i get a nice amount of income from this
sure, I can take a look
tell them its not good to use school technology for minecraft
Is it possible to use spigot api to check by %%USER%% id
if they bought plugin or not?
not my problem
Oh yeah I saw that one
and its a website they go to ( i dont host the client)
Finally
eaglercraft 1.8.8 moment
atleast its not the old 1.5.2 eaglercraft
use JDK 8 for 1.8.8
yea
only thing I need to fix is funking InventoryHolders god i hate those things I wish I could rip them out of the API
im trying that
i recommend windspigot if you really want to use 1.8.8 https://github.com/Wind-Development/WindSpigot
i wonder how spigot build times could be improved
Inventories in General are such a PITA. I'm one of the main Developers of Mockbukkit, and reimplementing those fucking Inventories SUCKS
@weak meteor just use the gui :P
use gradle
I'm sorry for your loss MenuType is not going to be friendly to you
it would help but i doubt md would merge it
Oh well
yeah not gonna happen
better tooling can be achieved without gradle just need somone to work on it
granted that takes time I wish I had the infinite amount of time necessary to do these things
get to work then
I'm annoyed to need to change things. but I am happy for those things to finally be less of a pain for developers
IT DOESNT RUN
i prefer use spigot
the jar doesn't run ๐จ
Oh yeah for sure, but having the gradle build cache would already be a massive improvement
so everyone can run it in their forks
oh god
i literally
yea i know
I use maven cache extension ๐ช
just build against 1.8.8 spigot jar
this guy isn't a server owner he is a dev using spigot is advantageous over some random ass fork
it doesnt matter for that
i supr deleted jdk 18
and
well
idk where tf i change the enviroment var
I'm a dev too I recommend the WindSpigot patches for 1.8.8 because they patch vulnerabilities
what vulnerabilities
he isn't a server owner it doesn't matter
you can still ALWAYS build against the spigot jar
nah spigot patched that
But like genuinely, why do you prefer maven over gradle. Like I'm the last one to dismiss a valid reason to stay with tooling, but I haven't heard any reasonsbto use maven yet
no theres like 20 vulnerabiltiies in 1.8.8 by itself
where tf do i delete jdk 18
well
im not server owner
not responsible ๐ป
i just make shitty ass plugins
it supports java 17 ยฏ_(ใ)_/ยฏ
IDK I STILL NEED TO FINISH THIS JAVA PROJECT OR ILL GET MY ASS WHOOPED TOMORROW
ok ill reinstall jdk 18
now it runs
.exe still doesnt run
I love when I buy a plugin off builtbybit and in the license it says I'm allowed to modify it
Sorry if I'm asking to many controversial questions today, I just genuinely want to understand Why certain decisions are made
no
also when its shittily obfuscated so i can do that easier โค๏ธ
tbh its just easier to use. I find it much harder to shoot myself in the foot. This is something I feel has been an issue with me and gradle thus far. Plus I don't feel like learning kotlin which is the only thing that would make gradle an advantage for me as a developer. Why should I spend the hours and hours it takes to learn kotlin just to make a build file when Maven doesn't limit my abilities currently. In the long run sure Gradle is definitely more powerful you can run so many scripts with it and it can be way less verbose within the build scripts. I don't hate gradle I'm just much more comfortable with maven because its much easier and I don't feel limited by it.
i love when people can do reverse engineering and i cant
thats smth i need to learn this vacations
its suprisingly not hard
nah
Maven Vs Gradle shouldn't be controversial, know when to use a tool. If you have no reason to leverage the abilities of gradle its pretty pointless to use it over maven when its so easy to just scrap together an xml build file
with C# just throw it in ILSpy and boom source
HELP
damn