#help-development
1 messages · Page 1320 of 1
quite possible since there is like 3-4 packets that cause updates in general
which is quite annoying
it's one big light update packet
and a light + chunk update
I'm not sure if the server's fighting me or if it's the client
I think it's the client
only way to know if it is the client would be to intercept on the client but that would be a pain to implement
Uhh remind me was there a way to have an invisible entity display
they have a brightness thing
I don't think they'd display the data then
/data merge entity <selector> {Invisible:1b} this is how you would do it using vanilla commands
Display entities are already invisible
Except for whatever they are displaying of course
I assumed they meant completely invisible?
true you could do that too
That just controls how bright it gets rendered
hm
there are some handy things you can do with invisible entities though
If you want invisible light use light blocks
sounds like you would be better off with some kind of custom shader
This guy basically wants a spotlight
could be doable with shaders but I'm not a shader dev
light blocks it is
that doesn't look too bad
but if the build's tiny the scatter's too big
we could lower scatter but that means lowering brightness
if only you could lower the darkness instead
you mean apply high brightness and darken everything around? yeah gl with that too
the lighting engine adds light, it doesn't remove
if I have a source of 15 + a source of 4
the 15 outshines the 4
well, not quite. Just meant that if you could lower the darkness you wouldn't need to lower the brightness as it would appear to get brighter or dimmer
but yeah, can't really do that either
would be nice
Clearly we need dark blocks
add antimatter to minecraft
breakthrough
shaders?
no
still lights
still packets
Batch updates instead of a packet per block
and it only works if the ceiling is covered
doesn't work with natural light afaik
well it kinda does
but it's cursed
it also breaks a lot
Lots of artifacting
I can probably fix those by tracking light data
but that's not worth the price I'm charging
i dont think they ever left
in mojangs defense, spigot is not intended
I think this is the best I can get it going
In case someone needs it later
bit hacky with multi world support but I dgaf
and I just realized I'm looping over the same collection twice
i also had this issue when doing something similar; it looks like the client just loses track of light updates if you send too many
i ended up sending each light update several times so it would for sure get processed by the client
In my case updating the neighbouring chunks that don't have any light data does the trick
Hi guys can anyone help me how to make rpg class work in mmoitem mythic mobs itemsadder model engine cause mine is a rpg server
I appreciate if someone could help me
Buddy you'll have to get into detail about what you want instead of asking the same question every hour
public final class RocketPropelledGrenade extends ExplosiveProjectileWeapon {
private final float blastRadiusMeters;
private final float directHitDamage;
private final float splashDamage;
private final float projectileSpeedMetersPerSecond;
private final int maxAmmo;
private int currentAmmo;
@Override
public boolean canFire() {
return currentAmmo > 0 && !isReloading();
}
Here's how I would design an RPG class tbh
meters
bro wants metres
also that but in the game you usually see things being measured in blocks
i mean a block is a metre
I believe it is
or no, maybe the player statistics refer to distance as metres
Through the travel distance stats
i would ditch a measurement form altogether lol
blastRadius and projectileSpeed
the metrics? fuck around and find out
Nautical miles per minute
Technically light year is also time!
But it’s just a year
player.getWorld().spawnParticle(
Particle.REDSTONE,
loc,
25, // number of particles
new Particle.DustOptions(Color.fromRGB(255, 255, 255), 1.0F)
);
// Yellow particle
player.getWorld().spawnParticle(
Particle.REDSTONE,
loc,
25, // number of particles
new Particle.DustOptions(Color.fromRGB(255, 255, 0), 1.0F)
);
Im getting this error "Cannot resolve symbol 'REDSTONE'"
how could i fix
It's just called "dust" now isn't it?
is that ai 🤔
is there a simple way to retrieve all chests (and their contents) within a region? double/single
I feel like doing a for loop through all blocks would be bad? because.. what if theres a double chest, how do i check if its a double chest or a single chest?
public List<Chest> getAllChests(Chunk chunk) {
return Arrays.stream(chunk.getTileEntities()).filter(Chest.class::isInstance).map(Chest.class::cast).collect(Collectors.toList()); //newer Java .toList();
}```
the real question is how to handle double chests on the edge of the border where one half is outside
that cant happen in my case
Maybe just check if the chest has 27 or 54 slots?
oh so its a tile entity? hmmmmmmmmmmmmmmmmmmm
Thats my schizo approach
thank you for that, ill play around
yes, chests are tile entities
Okay thanks, do you know how can I generate a loot table in a chest too ?
Is there something in the api for this or do I need nms ?
The loot table has a fill inventory method
Okay perfect thanks 😄
Or if you want to set the loot table on a chest theres a different method for that
Yeah that's what I want
I see on spigot api that there is fillInventory for the inventory but it's different for chest inventories ?
Setting a loot table is different than putting in items
If you want to set the loot table call set lootable on the Chest
?paste
Looking to paste something? Try a code block or one of the following websites:
- https://pastes.dev/
- https://sourceb.in/
- https://mclo.gs/ (best for server logs)
Hi, how can I serialize an ItemStack to Base64 and a Base64 value to an Itemstack?
you could use https://hub.spigotmc.org/javadocs/spigot/org/bukkit/util/io/BukkitObjectOutputStream.html in combination with a bytearrayoutputstream and use the Base64 class to encode
declaration: package: org.bukkit.util.io, class: BukkitObjectOutputStream
to deserialize you just flip the table and use the input streams
ty :)
How i can create a Sign object, without using a placed block?
would that be the blockstate or the blockdata
no, i need to create a sign in the code and than show it to player, with no any other blocks and so on
i think there is no way to do it
only using nms
are you intending to show the sign editing gui? there's an api method for that iirc
you can create a Sign blockstate via the respective sign BlockData
Material.FUCKALL_SIGN.createBlockData().createBlockState() or something or the other
and yes there is an api method to open a sign with it
no nms needed
u know what would be kinda cool
if ServerListPingEvent was cancellable
like one niche use-case as a pseudo-firewall and thats all i got
or just disable enable-status in server.properties, though neither option would stop connections from knowing there's a minecraft server there
Just reply with 404 not found
but how would normal players see motd then 😞
True
is there? i didn't find any methods for this
this method opens already existing sign in a world (which has already placed), so i'm need to show sign without existing sign
that is a blockdata sign
or no, that is a blockstate sign
but like emily said you can create one without placing a block
unfortunately no
the sign must be placed by the player (or only in client)
iirc what people do is they create a sign block at the bedrock level for 1 tick before sending the packet
but i vaguely recall the method doing that internally already
this question has already been asked here #help-development message
similarly to how Player::openBook places a written book in your hand for a tick
yea but that one is doing it through throwing packets at the player, not the api; i could be wrong but i recall the api method doing the sign placement for you
I really hoped so
it works, but i have a problem with sign, it is empty...
This #help-development message is the same problem
for some reason, signBlockEntity.getUpdatePacket(), don't change any lines
It looks sound
All I can think of is maybe delaying the editor open packet by a tick
And confirming that the sign lines are actually set on the client by looking at the sign without the editor
Hello. I'm new to NMS and I'm getting these errors during compilation
cannot access org.bukkit.craftbukkit.v1_21_R1.CraftServer
cannot access org.bukkit.craftbukkit.v1_21_R1.CraftWorld
cannot access org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot access org.bukkit.craftbukkit.v1_20_R4.CraftServer
cannot access org.bukkit.craftbukkit.v1_20_R4.CraftWorld
cannot access org.bukkit.craftbukkit.v1_20_R4.entity.CraftPlayer
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.20.6</artifactId>
<version>1.20.6</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/spigot-1.20.6.jar</systemPath>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.21.1</artifactId>
<version>1.21.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/spigot-1.21.1.jar</systemPath>
</dependency>
Im using remapped mojang jars
it needs craftbukkit and you are using spigot?
Yes i using spigot
But 1.17-1.16-1.18-1.19 nms doesnt have error
Use local repository. And can you give us the reason you're using NMS?
NPC tracker
How idk
i used buildtools and saved local repository
And i getted jars in local repo
I have an issue with horses about horse keep rearing after jump
also tested with no plugin but still issue
it doesn't have this on vanilla
latency? i feel like this is how it's always worked, but then again i haven't touched vanilla since horses were added
is there any other way to resolve this :l
Get closer to hosting region 🥀
true
there should be a plugin that makes cacti grow with bulbous outgrowths like these
when will we get sideways cactus
come to think of it, the way how the purpur plant things work is quite cactus-adjacent, isn't it
the what is huh now
the shit in the end
it should be retextured to be green
i thought u meant the server software and just could not wrap my head around what u were saying
Could not find artifact org.spigotmc.spigot:spigot-1.17.1-R0.1-SNAPSHOT-remapped-mojang:pom:1.17.1-R0.1-SNAPSHOT in sonatype (https://oss.sonatype.org/content/groups/public/)
C:\Users\nixol.m2\repository\org\spigotmc\spigot-1.17.1-remapped-mojang\spigot-1.17.1-R0.1-SNAPSHOT-remapped-mojang.jar here have a jar but saying error:
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.17.1-R0.1-SNAPSHOT-remapped-mojang</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Did 1.17.1 have mojmap?
Classifier remapped-mojang?
Iirc it started in 1.17.2
no
1.14.4
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.17.1-remapped-mojang</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version>
<classifier>remapped-mojang</classifier>
<scope>provided</scope>
</dependency>
i did but same error
Could not find artifact org.spigotmc:spigot-1.17.1-remapped-mojang🫙remapped-mojang:1.17.1-R0.1-SNAPSHOT in sonatype (https://oss.sonatype.org/content/groups/public/)
Try to run Maven import with -U flag (force update snapshots)
That’s when Mojang started releasing mappings
Doesn’t mean spigot did
https://imgur.com/a/juvQn0Y in here have a jar
Ah, my bad
private void applyFortune(Player player, Block block) {
var skill = config.getSkill(block.getType());
if (skill == null) return;
var fortuneStat = skill.getFortuneStat();
if (fortuneStat == null) return;
var user = plugin.getUser(player);
var total = (int) user.getStat(fortuneStat);
if (total <= 0) return;
var bonus = total / 100;
var chance = total % 100;
var tool = player.getInventory().getItemInMainHand();
for (var drop : block.getDrops(tool)) {
if (drop.getAmount() > 0) {
int amount = drop.getAmount() + bonus;
if (ThreadLocalRandom.current().nextInt(100) < chance) {
amount++;
}
drop.setAmount(Math.max(amount, 1));
}
}
}```
Why does this work on farming stuff but not for foraging or mining?
Like when i mine carrots, potatoes i get modified amount but it's not same for ores or logs
Hello. I'm new to NMS and I'm getting these errors during compilation
cannot access org.bukkit.craftbukkit.v1_21_R1.CraftServer
cannot access org.bukkit.craftbukkit.v1_21_R1.CraftWorld
cannot access org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot access org.bukkit.craftbukkit.v1_20_R4.CraftServer
cannot access org.bukkit.craftbukkit.v1_20_R4.CraftWorld
cannot access org.bukkit.craftbukkit.v1_20_R4.entity.CraftPlayer
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.20.6</artifactId>
<version>1.20.6</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/spigot-1.20.6.jar</systemPath>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.21.1</artifactId>
<version>1.21.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/spigot-1.21.1.jar</systemPath>
</dependency>
Im using remapped mojang jars
ur dependency paths look strange
if you pulled those jars from buildtools, they are not remapped jars
Hm I think CraftBukkit/NMS classes are not included inside the Spigot jar
?bootstrap
Bootstrap Jar
The main spigot-1.18.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.18-R0.1-SNAPSHOT-shaded.jar, or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.
Please read the release notes for further information: https://www.spigotmc.org/threads/9-years-of-spigotmc-spigot-bungeecord-1-18-1-18-1-release.534760/#post-4305163
?nms
Uh can someone look into this? I know i can just drop them manually but i want to know the reason
could anyone make me a free custom plugin for my server with t pack too ?
?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/
?
Could anyone work for me for free?
cool! how much do you pay?
bro do u not see free in the sentences
ohh you‘re right, my bad! let me sacrifice my own time and energy into something i dont believe in for free
im using buildtools and this jars remapped i checked with recaf buildtools have a remapped jars option
follow the two posts in that link
can any one make me a custom free minecraft plugin for a server ?
yes! how much do you pay?
£0
must be a pathetic plugin if its not worth any money
?
?services go here, you won't get much success here
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/
Error 404 in download link
Hello. I'm new to NMS and I'm getting these errors during compilation
cannot access org.bukkit.craftbukkit.v1_21_R1.CraftServer
cannot access org.bukkit.craftbukkit.v1_21_R1.CraftWorld
cannot access org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot access org.bukkit.craftbukkit.v1_20_R4.CraftServer
cannot access org.bukkit.craftbukkit.v1_20_R4.CraftWorld
cannot access org.bukkit.craftbukkit.v1_20_R4.entity.CraftPlayer
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
cannot find symbol
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.20.6</artifactId>
<version>1.20.6</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/spigot-1.20.6.jar</systemPath>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-1.21.1</artifactId>
<version>1.21.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/spigot-1.21.1.jar</systemPath>
</dependency>
Im using remapped mojang jars
What do I do there
Make a post, it's a forum
Pls ?
How
I don't know, I never did that. Try using your brain perhaps ?
so you can't read?
You don't need to repost the whole wall of text
What is giving you 404, "download link" is not specific enough. But I assume it's the link under Bootstrap Jar which is not what you want rn
You use BuildTools to generate the jars you want, then you depend on them as described in the post
Not whatever system bs you're doing
And if you're trying to depend on 2 versions at once... don't
its the api jar, there is a download link next to it, but they don't need to download the api jar
obviously they can't read and would rather be spoonfed instead
lazy kids these days -.-
I'm new to NMS, and currently 1.16.5 - 1.17 - 1.18 - 1.19 are not causing any issues, but even though I'm using remapped jars with buildtools, it's the same.
anyways, the two posts clearly tells them how to setup their maven pom
for what they are doing
this is because those versions were not bundled
surely you could make your own
yes, ask on the fucking forum omg
I'm fumb
How tf do U do it
this is not the place to ask such question
well keep on asking here and one of the mods may just remove you just fyi
I'm using chat gpt ig
then do it bro
but there are files on Recaf
do i have to use mojang mappings if i want nms on 1.21?
No, but it's highly recommended
is this maven issue?
cannot access net.minecraft.server.MinecraftServer
cannot access net.minecraft.server.level.ServerLevel
cannot access org.bukkit.craftbukkit.v1_21_R3.CraftWorld
you'll be forced to do so in upcoming versions anyway
Could be. Show your pom
How are you building
maven package
Through your IDE?
yers
If you're using Intellij make sure you have a Java 21 jdk set in project settings
Can I run 300 players on an Intel Xeon-E3 1270 v6
4 c / 8 t
3.8 GHz / 4.2 GHz?
in the latest version
sure
I'm talking about TPS on 20
And I'm going to divide the players into several servers
no lol
why it is not possible?
If each server has 50 players, and I have 6 servers, that already supports 300 players
A server running version 1.21 can handle 50 players with teleportation on 1.21 version I would say
The question is whether the processor can handle 6 Minecraft servers simultaneously
Well it only has 4 real cores
if you think that it'll work, just try it and see
I doubt it's going to work well with even one server with 50 players
you have 4 physical cores, and the modern server does many things asynchronously; expect to see at least 3 maxed out cores with 50 players
running the numbers you need like 12 cores + headroom for the gc and jitter
and you're not going to run 50 players on a single instance on those specs either
So maybe I should look for better options at OVH
How many threads does a modern server use at minimum
why not?
too slow
at a minimum? 1
Obviously there’s the main thread, idk what the limits are for the worker threads and Netty threads
the cpu i said?
you can configure the netty thread count on spigot.yml
the cpu is webhosting-tier
So that CPU I mentioned can't even handle 50 simultaneous players in a single instance?
yeahhh you need beefy single-core perf for minecraft
Surely you need at least 1 Netty thread
This is like the i7-7700k, right?
the server will definitely reserve probably a dozen or so threads at a minimum
but most of them will be sleeping almost all of the time
off the top of my head i'd throw an absolute minimum of 6
gc needs threads, chunk io, netty io, server main thread
yeah at an absolute minimum it'll be, like, 1 for main, 1 for netty, 1 for chunk gen, uhhhhh chat, idk if that's configurable on spigot or how many it uses
let's not forget plugins
oh yeah chat is its own thread
don't know about that cpu, but it definitely can't manage what you want either
judging by the number it's the same level of old and slow
maybe AMD Ryzen 5 5600X
6 c / 12 t
3,7 GHz / 4,6 GHz ?
paper adds a watchdog thread
i have an i7 7700 and i can play with my gf that's all i need it for
I want the cheapest option possible, based on what I told you. Any recommendations?
Isn’t the watchdog vanilla
my recommendation is lowering your expectations
Also didn’t the chat thread get nuked with chat signing
you get what you pay for
i mean, async chat event is still a thing so idk
for 300 players, get the best hardware you can physically source
oh yeah and the auth pool too
and then pray it's enough
geez
You're saying that an old CPU can't even handle 20 simultaneous players lol
it might not if you don't optimize well enough
a lot of these threads by percentage are going to be mostly sleeping, but yeah it's still a lot of work
not at 20 tps
oh an old cpu? definitely not
I'm building the infrastructure based on that
default settings + old cpu = maybe like 10 players
Yes this is fine and you can easily run 4-5 servers on a single box with those specs
if you optimize it well, i give you barely 20
So I'll have to pay €50 per month either way -- and that probably already raises high expectations for the number of initial players
and that's with like deleting villagers and bees and making hoppers tick once a millennium
Old cpu means nothing in the world of servers
it means a lot in the world of minecraft servers
Someone else is telling me that I can't even run one server 🤔
not web servers, but this is not it
this isn't a webserver frost
Anyways what they are wanting to do is perfectly fine. The only server they will have issues regardless is survival server
don't list then to them I have ran that cpu before. It can handle 300 players but it really depends what those servers are actually doing
My server is box smp
on that box if you do it right, it can handle 1k players with no problems
yeah sure
Box smp is fairly compact iirc
single thread rating 2451
Won’t have to worry about a ton of loaded chunks at least
i give you 20 players per instance
In my view, what the server does has more influence on the server's tps than on the CPU usage itself.
this is also true
yes and no
the problem is rtp
Do I not understand wtf a box smp is
And in older versions like 1.8, what would you guess?
pvp servers without any chunk loading or ticking blocks can run 10x the players a smp server can
your issue is going to be survival regardless of your specs. Recommend pre-genning it to avoid generating chunks. And tailor the entity limits.
mmm on 1.8 i'd maybe guesstimate that to 50 with good optimization
As for other game modes where its not super dynamic, those are not a problem
Okay it seems boxsmp is just Gen alpha skyblock
ironically the laggiest servers are skyblock servers
Box SMP is a Skyblock game, but then there's a world you can mine, and there will be chunk loading. This game mode is good because several players can have hoppers in their homes, and then the hopper load is divided among servers, which usually lags a lot
Okay, your estimate is hugely wrong
not because of anything intrinsic to skyblock but because the meta is to throw huge farms at them and sell spawners and make it a "farming server"
where are you getting your numbers from?
I've seen 700 players running on an i7-7700k at 1.8 version
i pulled it out of my ass
I no longer believe your estimate 😂
i know 1.8 runs much faster than modern versions, but i don't remember seeing single smp instances with more than 300 players
just anecdotally though, i haven't run a 1.8 smp server so i don't know the specs
yea to clarify i meant a single instance
you could just try it and come back with your findings instead of doing stuff based on the conjecture here
Maybe they’re on Chocos laptop
wdym hypixel is currently running 30k players :kappa:
not on a single box
I run my server with these specs on version 1.8 and I've already had 80 players using 30% of the CPU with the tps at 20
And it's survival
is that a single instance?
yes
shooould probably be fine then if you just want to scale to 300 players
what's your mspt?
with 80 players idk
minecraft is horribly unoptimized, even their protocol. So you will have limits because of that. Anyways, just make your servers. The hub I recommend no more then 2GB and use a stripped down version of the server where you remove anything you are not using. Typically you would do this with other game modes too
i dont have 80 players anymore
I think they are using a single Raspberry Pi
the box you have will easily run 4-5 instances of MC. for survival I recommend running it in a ramdisk and throw like 10GB at it lol
seems to do the best that way, all other servers would need no more then 4-6 gb of ram
Do you have any servers running?
you are going to want to use JVM arguments too to tailor your jvm's
Or are you pulling this data out of your ass?
in the past I routinely ran a network with 1-2k players
and I only had 3-4 phyisical boxes
and the server had chunk loading?
and what was the server name
of course? do you mean chunk generating?
I limited chunk generation. When you start to get into high player counts your servers simply don't have the time to be generating chunks all over the place. You can however simulate this instead
There is more to running servers then just simply having hardware
and you will always have limitations regardless of what you do
the goal is to run your applications to those limits and then learning how to bypass or get around those limitations
most of your limitations are going to come from MC
also, I never ran SSD's either
I know how to do that, but there are things that only miracles can accomplish, and I don't want to buy a CPU that's only usable by performing miracles
caveat though is that I did run the survival server in a ramdisk
wdym?
see, something for you to learn about
Maybe if you use different words I'll understand what you're saying
also, when it came to updating the servers, I utilized network file system (NFS)
filesystem in random access memory
chunk loading is fast when you don't go to the hard drive to get the things to load
I know what NFS is
I use SlimeWorldManager. I imagine it changes the approach you're talking about
odd you know what that is but not a ramdisk
The slime worlds use this approach if it's what I'm thinking.
the things I talk about, is setting this stuff up yourself and not using some weird application to do it for you.
if you have no idea what these things are or even how to use them, you need to do some learning. Fortunately you can learn on the go 🙂
So go ahead and program in binary code
lmao
I could imagine an HDD bottlenecking chunkloading though
I know what ASWM does. I don't know if what you're saying is what they actually do. I didn't understand your way of speaking
hence I ran the survival server in a ramdisk 😉
everything else however was fine since it wasn't needing to generate anything or load massive amounts of chunks
my reason for using HDD over SSD was simply because HDD lasted longer and at the time it was cheaper to get mass amounts of storage space
so I worked around the limitation of HDD
Yeah I get that, but pretty sure most modern configurations will provide enough SSD storage so you can use your memory more efficiently
also I made sure that the MC stuff was on the inside of the disk and had the OS always sit in the middle of the disk since rebooting and the sorts was not common
"No performance impact. SWM uses in-memory worlds, which means that the whole world is loaded at once. Then, every time the server needs to load a chunk, it just grabs it from memory, instead of having to read it from the filesystem, and then converting it to something usable. As a result, chunks are loaded seamlessly, without anyone noticing."
yeah I agree, I still recommend ramdisk for survival though it was the best lmao
Is that what you're talking about?
in memory world is not the same as a ramdisk
literally a ramdisk is taking a portion of your ram and treating it like a harddisk. It gets formatted and everything
the OS handles that
A ramdisk is just a virtual disk inside your RAM
whats better? aswm or ramdisk
Windows
you would have to do test to determine which is better
i assume the manager uses the slime world format?
however some of the advantages of a ramdisk is that you can take a snapshot images of it
If I have to do this to determine which is best, then my approach is good enough
the server generates huge heaps of garbage when parsing anvil format chunk data from disk into in-memory chunks
whether the disk is backed by ram or is actually sitting on a drive doesn't affect this
so if slime whatever addresses that, it could well be better
though come to think of it, did 1.8 even use the anvil format? it's been so long
Yes
Anvil is like 1.2
The slime format is mostly for storage size afaik
Hypixel designed it for housing
you are correct had to go look but you are spot on. 1.2.1 to be exact
And it's not meant to be used for big survival worlds
if I recall the slime format was to remove a bunch of garbage data that was not always needed or ever needed
and yes it was to control the size on disk
Yeah, useful for things like skyblock worlds which are very limited in size anyways
the side affect of removing the garbage data is that you got a boost to loading and saving
eventually when you get super large like past 2k players you will need to think of doing stuff like that
because as I said, most of your limitations come from MC lol
the issue with loading the data is that it first gets loaded as a massive nbt tree and all the block palettes and light nibbles allocate byte array tags and string tags
because I ran the survival server in a ramdrive, my backups were simply disk images 🙂
in principle you could probably just mmap a file and shove your chunk data into it as-is and that'd be your region
but i suppose nbt is much more robust
i did want to look into a garbageless chunk data parser at some point but then got distracted by something else
plus maintaining patches on top of all the refactorings mojang does these days is a chore
easier to just throw more memory and gzgc at it
I mean the lazy way to do that would just be to reuse objects a ton
myeah, though there is still a lot of surface area with nms; you have to replace all constructors with factory calls and then you also have to track where the object goes and release it back into the pool when it's no longer in use
0 GC but a higher base memory usage
nbt is really compact, the only mistake before they moved to strings was how they stored chunks. There was a more optimal way to store such things, which I had saved. Other that though it is pretty optimal
nbt as the format is great
I wonder how moonrise compares in terms of garbage
it's just that it has the same problem as gson json trees vs json streams
When do we get to stream NBT
as in the impl mojang ships with the server doesn't have the latter; doing anything allocates trees
i am lorax and i speak for the trees
it's still in principle parseable from a stream just like json is, but i don't know if an impl for it exists
it probably does but it's probably written by someone chinese and is on google docs and was last updated in 2015
Quick make a mod about a sky dimension and then get hired at Mojang and then make a streaming impl
the end dimension is a colossal disappointment
No no not that sky dimension
it was "based" on the aether mod, wasn't it?
just they took everything good out of it
and made it lame and boring
or maybe i misremember, god knows at this point
The original end was just a single island in the sky
I mean maybe they claimed it was based on the aether but that’s like saying a bicycle is based on a rocket ship
Ones a bit more advanced
odd, i remember being mad about it
its quite possible they added the end because of it but didn't base it off of it
that sounds vaguely right
How to make a licence system for my plugin?
I'm not posting it on spigot
it's a paid plugin and im scared to my plugin get leaked
It will happen sooner or later
Probably cracked
oh
?nms
well, thats usually a luxury problem
first make sure your plugin gets enough attention for that to be an issue
?mappings
Compare different mappings with this website: https://mappings.dev/
Just be cisco and charge for everything
java was never designed for the purpose of preventing such things. All it takes is for someone to remove the offending code that stops it from working or does whatever check.
If you make it like license key stuff, then it must ask your api if its valid. And if you just change if isValid to just if (true), then boom
I can't just wait and see somone buys my plugin and sells my plugin or gives it to his friend for free
It's still better to have a layer of protection
I don't have any api, is there any free api for this?
that is just it, there is no layer of protection regardless of what you do
Make it yourself. But its very easy to bypass
- I have proguard installed
It needs host
As someone who sell premium plugin, just don't bother doing that lmao, it's all useless.
So what should i do
I don't even have to run your jar directly to bypass anything, I can load your jar by using another jar, remove anything I don't like. I can decompile your jar, remove what I don't like and recompile. I can use bytecode manipulation. It doesn't even matter if you change the name of the methods or classes as the names are not what are necessary but the code itself etc.
The people who downloaded cracked version will never be your customer anyway since they don't have money to purchase it.
The best thing you can do, is one make sure you do good with your followers and routinely update
or they just can't buy it cause they dont have paypal or visa card
So u guys saying it's useless?
Usually they would dm you to purchase with another payment method.
it doesn't really matter the reason why they can't buy it. If they sourcing it by other means then they had no intention of buying it usually.
its like getting upset at a thief that routinely steals becaus they didn't buy your stuff but stole it instead
Anyways, the worst you can expect is you have some people who don't buy your plugin. As for stealing code that isn't really a thing unless you made some revolutionary thing
Fun fact, it took like 3-4 years for someone to duplicate a piece of code in one of my open source projects 🙂
simply because they couldn't understand how it worked
Nvm i'm just not doing it
but aside from that one feature everything else was easy to do, just thought it hilarious that even for it being an open source project many had a hard time duplicating that one feature of it XD
Because u dont make code clean or what?
no, they didn't understand how it functioned
Oh
In iran not many people don't know how to decompile the code and edit it for themselves
That's the reason i want to make a license system in my plugin
about half the code used NMS and reflection. But anyways the feature was touch holograms
But will the majority of users be from Iran?
Yeah
How come. What will you be making that makes it exceptionally popular in iran?
Does anyone know if there's an event for when a copper golem fires?
"when a copper golem fires"
what, a gun ?
How to set RGB display name for item?
Rgb as in a hex colour
Or a gradient
as you wish
Wot
i want to get away from ChatColor enums
Other options are translateColorCodes or you could use something like minimessage
translateColorCodes isn't support RGB, only default color codes and minimessage is paper-api
It is possible to use minimessage with net.kyori:adventure-platform-bukkit, but it allows only send messages to play and something else
but there is no way to set display name for ItemMeta
It does support hex
It’s just super verbose
Can translate to legacy iirc
How?
If you about net.kyori LegacyComponentSerializer.legacySection().deserialize(message);, then it doesn't work as it should
It just converts difficult RGB into simplified color codes
translateAlternateBlahblah(‘&’, “&x&0&a&b&6&6&Fmessage”)
Im on phone but you just do each char preceeded by your character and an x at the start
It’s not great
thanks, it works
it's unbearable
Can definitely make a wrapper function for it
i just use the minimessage formatting, and now i can't connect them
you need to make a custom instance of the LCS if you wanna use hex rgb with it
Where i can find net.md_5/org.spigotmc javadoc and are they up to date?
?jd
thanks, so what about org.spigotmc, there is no any classes org.spigotmc classes in spigot java doc
hm... Why in the my IDE i see many classes, for example org.spigotmc.SpigotCommand or org.spigotmc.ActivationRange, but in the javadoc only one class CustomTimingsHandler??
Back working with Brigadier (non MC)
Creating custom arguments, and just now I realize that this things flow is controlled by exceptions 💀
I find this horrifying
exceptions can be good for flow control when used judiciously
I guess ?
It's just that his way of working is new for me so it took me a bit to get my head around it
i fail to see how throwing a command syntax exception when the syntax of the command is not to be accepted by the arguments is used for control flow
?paste
Looking to paste something? Try a code block or one of the following websites:
- https://pastes.dev/
- https://sourceb.in/
- https://mclo.gs/ (best for server logs)
if you think about it, throwing an exception with an informative message when you encounter exceptional (i.e. unexpected) input during command parsing, is the exact same way you use exceptions in programming in general
same can be extended to state, such as not having an applicable command target selected, or not being a player
yeah mfw properly handling exceptions is control flow
all exception handling is control flow
conversely, explicitly checking conditions and returning is roughly comparable to explicitly checking status codes as you'd do in low level languages, and there's a reason why high level languages use exceptions instead
Exception in thread "main" org.eclipse.jgit.api.errors.CannotDeleteCurrentBranchException: Branch patched is checked out and cannot be deleted
at org.eclipse.jgit.api.DeleteBranchCommand.call(DeleteBranchCommand.java:104)
at org.spigotmc.builder.Builder.startBuilder(Builder.java:623)
at org.spigotmc.builder.Bootstrap.main(Bootstrap.java:60)```
im getting this error in BuildTools i cant get 1.8.8 craftbukkit jar
restart and never try again later
holdup
Instead of
List<String> lines = Arrays.asList(ChatColor.translateAlternateColorCodes('&', "&eWhile your within this region, the bleed amount of redstone is increased."));
I can do
List<String> lines = Collections.singletonList(ChatColor.translateAlternateColorCodes('&', "&eWhile your within this region, the bleed amount of redstone is increased."));
?
Ignore ze grammar please
What's the difference?
fist one creates modifiable array list
second creates unmodifiable whatever this is
It’s a list without the list
modifiable but not resizable 🧠
huh, pretty sure you can add more elements if you construct it from array
this is well specified in the javadoc for Arrays.asList, you're just confusing java.util.ArrayList with the private java.util.Arrays.ArrayList :3
bruh I am
I didn't look that closely lol
oh
how does noDamageTick and attack speed work together?
if noDamageTicks > 0, the attack doesn't deal damage
attack speed affects the strength of the attack
both are in play at the same time; noDamageTicks on the receiver, attack cooldown on the attacker
so even if i set the attack speed to 10000 the mob will get 0 damage as long as it is on cooldown right?
or to be more specific, it will only deal damage if the last recorded damage on the damaged mob is less than the damage that'd be dealt
aside from the above specificity, yes
this is so that e.g. a mob taking 0.5 damage from burning doesn't become immune to a 20 damage attack from the mace
essentially the no damage ticks is a time window during which at most, not the total damage over all attacks, but the highest damage of any attack in that window, can be received by the mob
okay
Somebody can help me?
I need to create a server that has 3 servers, and since they are multi-instance, I need all 3 servers. But my dedicated server currently doesn't have enough RAM to start 3 more servers (it's in production). What should I do? Is the only alternative to create a localhost?
Get more ram or lower the amount of ram per server?
i cant do that
Doesn’t sound like a very good dedicated server then
Modifiable but not structurally modifiable; it's size can't be changed as it's backed by the array
So it’s just a fancy array wrapper
Well, normal array lists are also a fancy array wrapper, but they can resize the backing array
So it’s a less fancy array wrapper
Everything is a fancy array wrapper if you look hard enough
Oops all arrays
always has been 🔫
mfw pointers
oi!
everything is a pointer with the right attitude
Just store all 256 possible bytes in memory and have everything else be a pointer to them
a pointer to a pointer to a pointer
Is there any new events to do with the Code of Conduct Mojang added
What
mojang added? Are you talking about the eula message when you first start a Spigot server? If that still happens
its been so long since I setup a NEW server
Apparently it’s a new server.properties setting that will just show a text file to players
for example right now if you try to set game mode using join listeners and the player has not accepted the code of conduct, The Listener was still trigger but none the code will work since the player hasn't been loaded into the game
interesting side effect
minecraft has fonts?
it has like 5 fonts
in my hubris it appears i sent an incomplete thought
i meant to ask what fonts minecraft has besides the """main""" font and enchanting text
(and ig the unicode font option)
Mojangles (default font)
Alternative ("alt")
Uniform
Illageralt
Standard Galactic Alphabet (used for enchanting table)
Easiest way might just be to use the font property in a text component in tellraw
They're not like tff's or anything sensible so you can't very easily throw them into your editor of choice
But the mojangles default font exists as a tff and probably every other font spec under the sky, if that's the one you want to preview specifically
Is there an API for camera distance feature (was added in 1.21.6)
declaration: package: org.bukkit.attribute, interface: Attribute
Highly recommend checking out the javadocs
Is there a TPA plugin that supports multiple server instances?
this would i think probably get a faster/better answer in help-server since it's about an existing plugin
did you bother to search for "bungeecord tpa plugin"
what the best
now it's definitely a help-server question
Steak or roast pork dinner is teh best
yeees
"What's the best X" js try every plugin and pick one
i want the more optimized one
"whats the best plugin" mfs after having to try out every plugin on spigot
should be fairly simple to write from scratch
since both the source and destination servers are guaranteed to have a player online, you can use plugin messaging
but is that lag free ?!?!?!
Rewrite everything in Rust
make it async 🪿
Arent virtual threads the new hot thing?
they are, but unless you're on java 25 or something they are still kind of shit
since synchronized and some other operations still pin them to os threads
unless you are performing blocking IO or other blocking ops with locks or whatever, VTs are useless
java 24
well yeah
in my experience though, it makes concurrent programming much easier, since you can do away with e.g. complicated completablefuture chains
completablefutures are goated
you spawn a virtual thread that just blocks on whatever you want to do, possibly joining said futures instead of chaining on them
they are, but they get nasty when you have to do e.g. flow control with them
yes virtual threads are also goated
probably
thats not the virtual threads problem
you should just use them for networking stuff
they are certainly overhyped
which leads to misuse
don't get me wrong, it's cool stuff and it definitely has lots of uses
yes but you could missuse any programm language or librarry feature if you're a bad dev
but more often than not people are like "omg virtual threads fast and async" and it's like :harold:
ChatGPT write me a spigot plugin that makes heavy use of virtual threads kthx
new $200 paper fork that changes all the executors to use virtual threads
now you can have unlimited async io threads
I’ll take your entire stock
guys
do you think the bungee schedular uses the correct executorservice
i dont like it right now
people asking to switch the chat thread pool or the bukkit scheduler thread pool to use VTs every now and then :harold:
noo but what about my blocking mysql queries on the chat thread
its good
although honestly
u ensure chat is not spammed to much by adding some blocking stuff there
with how hard the bukkit async scheduler gets abused, i wouldn't mind it being made use a virtual thread executor
yeah i suppose
right now it's an unbounded thread pool which means if some plugin fucks up you oom with 25,000 bukkit task threads
yes same in bungee
i wanna change it
But that’s half the fun
the bungee scheduler iirc just spawns a thread and then sleeps it for every task to "schedule" it to run later
not a bad case for virtual threads either
but that's not really the right tool for the job lmao
it should use a proper scheduler instead
its also using a no limit thread pool
i'd argue that bukkit/bungee providing built-in ("async") schedulers is a mistake to begin with
well, which definition of the word async? the bukkit one or the real one?
does it still count ticks and run them at the start of a tick? or is it just like any scheduled executor
bukkit async tasks
every tick it pushes the scheduled tasks onto the threaded scheduler
which is kinda cringe, the dispatching of tasks is bound to the tick loop
Wait, when is it a bad case to use virtual threads?
makes sorta sense if you want your logic to be bound to the tick loop, as for most "in-game" tasks you probably do
how else would youe schedule something in a specific tick amount
well yeah but that means that if i want to fire something to a separate thread from the main thread there is at a minimum 50ms delay
i'd say that if the bukkit scheduler still counts ticks for the async tasks, it's not entirely redundant; to get the same effect without it, you'd need to schedule a sync task to n ticks and then pass your task to some async executor in it
this makes is a little bit distinct from throwing tasks at an executor service
eh
i've heard that for highly linear tasks that bottleneck on the cpu, they can be bad for throughput, but i haven't seen any numbers or noticed anything myself
the async one has no reason to be tick-bound
the other issue, which isn't really intrinsic to them, is that pre java24, you can easily exhaust your os threads if your virtual threads happen to get pinned to them, which is completely out of your control and can't be accounted for
eeeh i still sometimes use the async scheduler when i need something to happen n ticks later, but async
for stuff i want done immediately i toss them into an executor service
basically for anything that is not blocking-bound which is pretty much just IO and locks
doesn't really make any difference if the server is running at 20tps i guess but in principle some things should be bound to the tick loop despite being async
i suppose, i haven't been there personally
i can't exactly recall an example either but i'm sure it has happened at least once lol
i'm not sure if you lose out on anything still, even if there's no benefit i'm not aware of there being much harm
except for something that's very throughput sensitive like the main server thread maybe
no clue though, i haven't actually tested making everything virtual and seeing what happens
i am just not a fan of the idea of hogging the underlying scheduler with compute-bound tasks when doing so provides no benefit
mmmaybe, though that's pretty similar to how thread pools work; you shove your tasks into a queue and they get done at the pace the pool can keep up
what i'd like to see with virtual threads is more control over how they get assigned to os threads
right now i think they have free reign to mount any hardware thread completely willy nilly, so one virtual executor with a billion tasks can easily exhaust another
i wouldn't mind having a bounded thread pool and then a virtual executor on top of it that can only mount the os threads from the pool
though i suppose that does go against the point of virtual threads; short-lived and mostly-blocking
yeah right now it's "just" a fork-join pool under the hood
they've been experimenting with allowing for custom scheduling and stuff but it isn't going to be here tomorrow, lol
?ask
If you have a question, please just ask it. Don't look for staff or topic experts. Don't ask to ask or ask if people are awake or available. Just ask the question to the channel straight out, and wait patiently for a reply. Make sure you use the right channel regarding the topic of your question. Create a thread in case the channel is already in use!
do it here in this channel; random people who happen to chat here aren't your personal plugin support hotline
and yes ask your specific question (here) if you need help with something
Ask in #help-server as this is a server setup question.
minecraft can detect if player made correct structure like nether portal and end frames
so how do I add new something like that
For example check if the structure match what it should be .
In short How can I check player made a custom portal like ether gate?
manually, by checking the surrounding blocks of the structure you want to identify
that's how the game does it
You can create a system to check against a collection of blocks
And then load that collection of blocks from something like a structure file
is PlayerSpawnLocationEvent called after PlayerJoinEvent
What's the best listener to use for when a player actually goes in Minecraft server
so I can display welcome text on their screen
Join Event
with some caveats
wait no
e.g. the resourcepack loading screen and the new code of conduct screen
with the new code of conduct, join event is called when it first shows
but the player hasnt spawned in yet
i think (?)
yes this
wow we both had the same thought
yeah several things can pop up immediately after the join event
is that an intended effect by the way
personally since i run a 🏴☠️ server i just run the welcome things after players /login; you might have to listen to them moving for the first time or something
right
there is an event for the resourcepack being loaded
so you can use that to delay the messages until that screen goes away
about the code of conduct, i'm not sure
you ought to be able to intercept the packet if nothing else
like pirate roleplay?
can i sail the seven seas
For a pool of operations in MySQL, should I use newCachedThreadPool or fixed?
I'm using Executors.newFixedThreadPool(10); which is the maximum number of connections in my database pool. Am I correct?
Sets the maximum size of the MySQL connection pool.
- Basically this value will determine the maximum number of actual
connections to the database backend.
- More information about determining the size of connection pools can be found here:
https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
maximumPoolSize: 10
so funny how copying text from what im assuming is a github wiki page copies the markdown
Pretty sure a fixed thread pool will always have that many threads active, they’ll just be idle if not needed
Whereas a cached one can grow and shrink dynamically, but you don’t have direct control over it
However you can make your own ThreadPoolExecutor with specific limits
Or, you could just use Hikari
I know that, but I think having a fixed limit is better, since the cache can create more threads than the MySQL connection pool limit
im already using
return CompletableFuture.supplyAsync(() -> {
try (DatabaseExecutor executor = database.execute()) {
executor.query(..);
}
}, databaseExecutor);
I need the pool to pass to the supplyasync block
This way I will perform operations on the database in the commonPool
why not virtual threads?
idk
I'm supposed to use virtual threads for everything then
Hey the common pool needs to earn its pay!
anything that is blocking or io
network operations like mysql queries are blocking io
wanna park our ships together in pirate roleplay
:3c
hi guys when can we expect the latest 1.21.11 version in build tools
When 1.21.11 is released
xD
Surely John Spigot gets early access builds?
Is there any place I can go for outdated help?
There's no rule against asking here, but it's up to people if they want to help you
If it's something trivially done in newer versions then people are especially unlikely to help
Spigot 1.8.... Invisible players in teams (Tab sorting) name tags show, I searched all of google can't find a solution... I tried ProtocolLib. What should I use to fix it?
Did you place the players in the same team
Nope P1 in one team P2 in another
TeamTemplate template = rank.getTeamTemplate();
for(String entry : template.getPlayers()) {
User target = Server.getUser(entry, "FSB");
if(target == null) continue;
Team team = sBoard.registerNewTeam(rank.getOrderID() + (entry.length() > 6 ? entry.substring(0, entry.length() - 6) : entry));
String relationColor = ChatHandler.getColor(user, FactionManager.getFaction(target));
team.setPrefix(ChatColor.translateAlternateColorCodes('&', template.getPrefix()) +
ChatColor.translateAlternateColorCodes('&', target.getNameTagPrefix()) +
ChatColor.translateAlternateColorCodes('&', relationColor));
team.setAllowFriendlyFire(true);
team.setCanSeeFriendlyInvisibles(false);
team.addEntry(entry);
}
}```
and name tags still shown to each other
Why is everythibg in a for statement
Max team name length
Currently, I have a loop that runs every 20 ticks, constantly checking the player's main-hand item. It stores the item in a map and applies its stats to the player. On the next tick, if the held item doesn't match the current item, it retrieves the old item from the map, removes its stats, and applies the stats of the new item if it is valid.
I want to know which approach is better
checking every 20 ticks, or using event listeners like the held item change event, player item drop event, player right-click event, etc.
do they share the same scoreboard
either way sounds fine to me
what you are doing right now sounds like attributes, is there any chance you could just use those instead? What stats do you apply onto the player?
also, you'd want to check every tick instead of every second, otherwise it is just inaccurate
Some are attributes and some are custom
by custom you mean
crit damage, crit chance etc
Actually, it's just a simple skill plugin
if that's all it is then I'd just listen to the damage event and check if the weapon has a PDC with the attribute in question
though criticals are a mechanic and not a chance thing so unsure how that works
oh yes Why I didn't think of this before
it is chance based more crit chance = more chances of extra damage
Anyway thanks for the suggestion!
Why there is diffrence between bukkit velocity and bungee?
why make devs work harder?
too bad Spigot doesn't expose DamageSource#isCritical, would've made things simpler
they are different because they're made by different people, with different goals in mind
Bukkit is the api for craftbukkit which is a Minecraft server built on top of vanilla
Bungeecord and velocity are standalone proxies
it doesn't make anyone's job harder, you just choose one and go with that if their goals align with yours
Bungeecord is constructed api-wise similar to spigot
Sharing some apis
And velocity is its own thing
With googles DI
Forgot what it was called
guice or dagger
Guice
Personally very annoying to work with
Things that would normally be compile errors become runtime errors
if you mean it from the perspective of a public plugin trying to support multiple proxy platforms, then that's really on you. Nobody is forced to support multiple platforms, ideally you just choose to support the platform your users make use of
but the same thing applies when trying to support spigot and paper, or spigot and fabric. At some point your life will be harder because you are making your scope bigger, but that's a decision for you to make
that was before hardfork, it isn't so simple anymore
Hardfork isn't a thing yet
I was hoping there would be an easy way, but okay, I'll do it, thank you.
internals have a fancy utility for that, but it is really clunky
oh nevermind, they seem to have replaced that
Same reason there are differences between a fork spoon and a knife
Tools for their jobs
Nobody wants to eat soup with a spork
first of all bukkit and bungee/velocity do completely different things
secondly, velocity is maintained by the paper team iirc
its like asking why there are multiple soda brands because it makes it hard to choose one to buy, its just because they do different things in different ways, but are ultimately used for the same goal
Velocity is to bungee roughly what paper is to spigot; setting aside that it's a rewrite rather than a fork, it serves the same purpose
I think it would be more like what fabric is to spigot
i reckon sponge would be a fairer comparison
precisely!
Does a server sends a persistent data container of ItemStack to a player?
for entities, chunks and worlds similarly?
No
worlds i don't think so, not chunks either, but entities yes
I don’t think it’s sent on entities
i'm faaairly sure it is since it's just shoved in the same nbt that gets thrown at the player in the entity meta packet
or hold on, entities use that watched data property shit now
It wouldn’t even be saved on entities if spigot didn’t patch it
might not get sent in that case
it definitely exists in the nbt, but i recall that entity meta packet isn't just a nbt blob now, but that each entity has "properties" that are sent over individually, similarly to item components
That’s been a thing for a while :p
Look at the entity and press F3 + Shift + I to copy it’s clientside data
hm
alright yeah looks like i didn't press shift
what an unwieldy key combination
but yeah doesn't appear in clientside data, makes sense
So... only itemstacks?
seems like so
Yeah
Yep because the client sends back ItemStacks to the server
So if it's not sent, then fun
Hi, I'm trying to find the net.md_5.bungee.api dependency.
Where is it located now?
MB i import the wrong jar..
Whats up devs, with Uautorestart, is it
possible to send all players connected to one server, to a different "limbo" server while the other one boots back up, once it is finished all players are sent back to respective servers ?
Should i be using a different restart plugin ?
that's feasible, and i do that
just a few lines of code on a proxy plugin + a companion backend plugin
Where would i start with this
i have 0 knowledge on writing plugins and very little on scripts
there is a command that links java tutorials but i don't remember what it is
agh i think i know what you're talking about
if you're looking for a pre-existing plugin, you probably should ask in help-server
depends; i know some who couldn't get into it to save their lives, to others it comes almost naturally
if you've done any sort of scripting before, it makes things easier
it's not that complicated in the end, but then again, that's what everyone says about everything
thanks
I've got it working now lol
took 2 hours
Do any of y'all nerds have a FastBoard variant that lets me change player nametags and stuff
cba doing it myself
Hello guys!
Can anyone help me with spigot stash downloading?
After 5 minutes it just shows EOF error
I ve also tried to download via Gitea but..
feels like a connection issue to me
I would recommend just running BuildTools, that way you have all the relevant repos cloned in a place
can I downgrade sources from buildtools?
From 1.8 to 1.3.2 and 1.6.4
I don't think those versions are in the repository anymore
if git history was kept clean, you might be able to
but for those versions, I would recommend just running LegacyFabric
That's the main question: is buildtools contains .git history?
yes
like, it clones the respective repositories (That is, Spigot, Bukkit, CraftBukkit)
strongly recommend just doing this though
there's little benefit to running spigot in 1.3.2 (if that even existed, not sure when Spigot started their Bukkit fork)