A performant, multithreaded Minecraft server software.

Overview

WindSpigot GitHub Workflow Status Codacy Badge

WindSpigot is a 1.8.8 Minecraft server software focused on improving overall server performance and pvp mechanics. WindSpigot is based on a fork of NachoSpigot.

Current State

Java 17 is now natively supported, and ViaVersion is patched at runtime to work with Nacho's modifications.

WindSpigot supports Java 8 to Java 17!

Downloads

See the releases tab for the latest release. Alternatively, you can download the latest build here. The latest build may be unstable, but contains more features.

FAQ

What combat mechanics are improved on?

WindSpigot makes potion speed and hit delay configurable. We also have NachoSpigot's configurable knockback.

What does WindSpigot do to improve overall performance?

WindSpigot moves heavy work off of the main server thread and splits up the server load.

What is done asynchronously to achieve this?

  • Worlds (ticked parallel to each other)
  • TNT calculations (from NachoSpigot)
  • The entity tracker (updated with multiple threads, based on this)
  • Knockback (packets are sent with high priority, based on this)

What other modifications does WindSpigot have?

See the patches list below.

Patches

All credit goes to the people that made these patches.
Give credit where credit is due!

[WindSpigot-0001] Thread Affinity
[WindSpigot-0002] WindSpigot Config
[WindSpigot-0003] Mob AI toggle command
[WindSpigot-0004] Parallel world ticking
[WindSpigot-0005] Disable mob spawning if tps is not stable
[WindSpigot-0006] Remove fastmath usage from explosions
[WindSpigot-0007] Player ping command
[WindSpigot-0008] Make NachoSpigot's async TNT configurable
[WindSpigot-0009] Configurable entity hit delay
[WindSpigot-0010] Configurable potion speeds
[WindSpigot-0011] Make console display of player ips toggleable

[Spigot-0097] Remove DataWatcher Locking by spottedleaf
[Spigot-0138] Branchless NibbleArray by md5
[Spigot-2380] Hitting in the air will always load the chunk at 0,0 by md_5

[Paper-0021] Implement Paper VersionChecker
[Paper-0033] Optimize explosions
[Paper-0044] Use UserCache for player heads
[Paper-0072] Fix Furnace cook time bug when lagging by Aikar
[Paper-0076] Optimized Light Level Comparisons by Aikar
[Paper-0083] Waving banner workaround by Gabscap
[Paper-0068] Use a Shared Random for Entities by Aikar
[Paper-0085] Add handshake event to allow plugins to handle client handshaking logic themselves
[Paper-0093] Don't save empty scoreboard teams to scoreboard.dat by Aikar
[Paper-0097] Faster redstone torch rapid clock removal by Martin Panzer
[Paper-0100] Avoid blocking on Network Manager creation by Aikar
[Paper-0102] Update log4j
[Paper-0103] Add setting for proxy online mode status
[Paper-0112] Reduce IO ops opening a new region file by Antony Riley
[Paper-0122] Don't let fishinghooks use portals by Zach Brown
[Paper-0125] Optimize World.isLoaded(BlockPosition)Z by Aikar
[Paper-0125] Improve Maps (in item frames) performance and bug fixes by Aikar
[Paper-0141] Do not let armorstands drown
[Paper-0144] Improve Minecraft Hopper Performance by Aikar
[Paper-0152] Disable ticking of snow blocks by killme
[Paper-0164] [MC-117075] TE Unload Lag Spike by mezz
[Paper-0168] Cache user authenticator threads by vemacs
[Paper-0207] Shame on you Mojang moves chunk loading off https thread by Aikar
[Paper-0249] Improve BlockPosition inlining by Techcable
[Paper-0254] Don't blindly send unlit chunks when lighting updates are allowed by Shane Freeder
[Paper-0266] [MC-99321] Dont check for blocked double chest for hoppers
[Paper-0302] Don't load chunks for villager door checks by Aikar
[Paper-0313] Optimize World Time Updates by Aikar
[Paper-0321] Server Tick Events
[Paper-0342] Always process chunk removal in removeEntity by Aikar 2018
[Paper-0344] [MC-111480] Start Entity ID's at 1
[Paper-0346] [MC-135506] Experience should save as Integers
[Paper-0347] don't go below 0 for pickupDelay, breaks picking up items by Aikar
[Paper-0350] use a Queue for Queueing Commands by Aikar
[Paper-0352] Optimize BlockPosition helper methods by Spottedleaf
[Paper-0353] Send nearby packets from world player list not server list by Mystiflow
[Paper-0389] performance improvement for Chunk.getEntities by wea_ondara
[Paper-0539] Optimize NetworkManager Exception Handling by Andrew Steinborn
[Paper-0451] Reduce memory footprint of NBTTagCompound by spottedleaf
[Paper-0797] Use Velocity compression and cipher natives
[Paper-????] Cleanup allocated favicon ByteBuf by Shane Freeder

<--> by Heath
[Nacho-0001] Remove stream usage when counting entities
[Nacho-0002] Check if the fuel is coal first before checking others
[Nacho-0003] Disable Snooper
[Nacho-0004] Do not repeatily allocate EnumDirection
[Nacho-0005] Do not reallocate enums via values
[Nacho-0006] Use Caffeine instead of Guava for player heads
[Nacho-0007] Add timings for packets
[Nacho-0008] Upgrade Netty version to 4.1.50 and support java 14
[Nacho-0009] Remove an extra file io call within world credit bob7l
[Nacho-0010] Use jchambers' FAST UUID methods
[Nacho-0011] Optimize weather update loops
[Nacho-0012] Don't load chunks for physics
[Nacho-0013] Use less resources for collisions
[Nacho-0014] stop timings crashing the server but still print the error
[Nacho-0015] Remove the usage of BlockPosition from getCubes
[Nacho-0016] faster getHighestBlockYAt function
[Nacho-0017] tiny winy optimization for async lighting
[Nacho-0018] more tiny winy optimization to lighting
[Nacho-0019] Avoid lock every packet send
[Nacho-0020] Packet Listener Api
[Nacho-0021] Add setMaxPlayers within Bukkit.getServer() and SetMaxSlot Command
[Nacho-0022] Stop raytracing loading chunks
[Nacho-0023] Optimize EntityTracker for the chunk updater
[Nacho-0024] Do not create new BlockPosition when loading chunk
[Nacho-0025] Disable random tickSpeed being modified (Every call it had to convert String into int via a string key which is costly)
[Nacho-0026] Optimize packet Split by Velocity
[Nacho-0027] Netty IP_TOS 0x18
[Nacho-0028] only fire InventoryCloseEvent if inventory is open
[Nacho-0029] add leash api
[Nacho-0030] add a ChunkPreLoadEvent
[Nacho-0031] remove unused vars
[Nacho-0033] Faster Operator search method
[Nacho-0048] Don't allocate empty int arrays for particles
[Nacho-0049] Option to disable Enchantment table ticking

<--> by Rastrian
[Nacho-????] Async entity tracker
[Nacho-????] Async knockback and hit detection packets
[Nacho-????] Ticking fixes, tile optimization, and optional fast math
[Nacho-????] Many more config options

<--> by Sculas
[Nacho-0034] Remove Java 8 message from TacoSpigot which made it so you couldn't run Java 8 or higher
[Nacho-0035] Made it so you can switch the brand name in nacho.yml
[Nacho-0036] Add toggles for commands "reload", "version" and "plugins"
[Nacho-0037] Add toggle for "Faster Operator"
[Nacho-0039] Fixed a bug in Netty's epoll when using Windows
[Nacho-0040] Change deprecated Netty parameter in ResourceLeakDetector
[Nacho-0041] Fix block placement
[Nacho-0042] Remove Spigot Watchdog
[Nacho-0043] Fix Citizens
[Nacho-0044] Async obfuscation
[Nacho-0045] Add Player#jump and Player#sendActionBar
[Nacho-0046] Little anti-malware
[Nacho-0047] Little anti-crash
[Nacho-0050] Custom knockback
[Nacho-0051] Rework ServerConnection and MinecraftPipeline (credits to Minestom)

[Yatopia-0030] Don't save Fireworks and Arrows by tr7zw (Arrows and firework Entities, eg stuck arrows in the ground)
[Yatopia-0047] Smarter statistics ticking
[Yatopia-0050] Smol entity optimisation

[IonSpigot-0003] Explosion Improvements
[IonSpigot-0006] Fix Chunk Loading
[IonSpigot-0012] Movement Cache
[IonSpigot-0013] Implement PandaWire
[IonSpigot-0014] Faster Chunk Entity List
[IonSpigot-0020] Faster EntityTracker Collections
[IonSpigot-0026] Lag Compensated Potions
[IonSpigot-0035] Optimise Entity Collisions
[IonSpigot-0037] Fast Cannon Entity Tracker

[InsanePaper-269] Cache Chunk Coordinations
[InsanePaper-390] Heavily optimize Tuinity controlled flush patch

[Akarin-0001] Avoid double I/O operation on load player file by tsao chi
[Akarin-0010] Save Json list asynchronously

[Tuinity-????] Skip updating entity tracker without players
[Tuinity-0017] Allow controlled flushing for network manager by Spottedleaf
[Tuinity-0018] Consolidate flush calls for entity tracker packets
[Tuinity-0052] Optimise non-flush packet sending

[SportPaper-0027] Fix head rotation packet spam
[SportPaper-0043] Get blocks in Chunk API
[SportPaper-0162] Fix PlayerInteractEvent not cancelling properly
[SportPaper-0197] Optimize head rotation patch
[SportPaper-0201] Cache block break animation packet
[SportPaper-0203] Fix Teleport Invisibility
[SportPaper-0204] Optimize toLegacyData removing unneeded sanity checks

[PaperBin-????] WorldServer#everyoneDeeplySleeping optimization

[KigPaper-0039] Fix Entity and Command Block memory leaks
[KigPaper-0128] Fix Entity and Command Block memory leaks
[KigPaper-0129] Fix more EnchantmentManager leaks
[KigPaper-0138] Fix some more memory leaks
[KigPaper-0161] Fix CraftingManager memory leak
[KigPaper-0167] Add setType without lighting update API
[KigPaper-0172] NBT no-op for block place packet
[KigPaper-0191] Don't calculate initial light if not requested

[FlamePaper-0102] Fixed chunk memory leak
[FlamePaper-0103] Limit CraftChatMessage iterations
[FlamePaper-0104] Return last slot by default
[FlamePaper-0105] Fix memory leaks by Minetick
[FlamePaper-0106] Fix sending irrelevant block updates to the client
[FlamePaper-0110] Fix NullPointerException exploits for invalid logins
[FlamePaper-0113] Remove unused code from beacons
[FlamePaper-0115] Patch Book Exploits
[FlamePaper-0117] Pearl through blocks

[MineTick-0006] Fix Occasional Client Side Unloading of Chunk 0 0
[MineTick-0011] Optimize Idle Furnaces
[MineTick-0017] Fix Insane Nether Portal Lag

[Migot-0009] Prevent Creature Spawning in Unloaded Chunks

[Sugarcane-0022] Add YAML comments

[AW-Spigot-????] Fast random
Comments
  • TPS lock at max 19.7 using Java 17

    TPS lock at max 19.7 using Java 17

    Describe the bug When I start my server using java 17 and try to do / tps (using Spark as plugin), I see that everything is perfect and the tps crashes at MAXIMUM 19.7, this problem is not present when using Java 11 or Java 8 nor when using Paper 1.8.8 with Java 17.

    Bug on latest Yes, the bug is present in all versions of WindSpigot (even the dev builds) and also in those of NachoSpigot. I noticed that I am on Paper 1.8.8 the TPS would seem not to crash at 19.7 on Java 17. Also on SportPaper there is this bug, from what I remember also flamepaper should have the same problem.

    To Reproduce Use Java 17 with WindSpigot in localhost and start the server.

    Screenshots 2022-05-17_10 55 03

    Additional context Java version used: Java 17. WindSpigot version used: WindSpigot build Respect config option for async path searching WindSpigot Build and Upload #200. Operative System Used: Windows 10. RAM used to test: 4Gb. Use of Aikar Flags: yes

    bug 
    opened by Fredh1000 21
  • citizens error spam

    citizens error spam

    Describe the bug

    [06:47:50 INFO]: [Citizens] Exception while updating 93: null.
    [06:47:50 WARN]: java.lang.NullPointerException
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.NavigationAbstract.a(NavigationAbstract.java:107)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.NavigationAbstract.a(NavigationAbstract.java:87)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.PlayerNavigation.a(PlayerNavigation.java:84)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl$3.apply(NMSImpl.java:444)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl$3.apply(NMSImpl.java:441)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl$4.update(NMSImpl.java:495)
    [06:47:50 WARN]:        at net.citizensnpcs.npc.ai.MCNavigationStrategy.update(MCNavigationStrategy.java:83)
    [06:47:50 WARN]:        at net.citizensnpcs.npc.ai.CitizensNavigator.run(CitizensNavigator.java:172)
    [06:47:50 WARN]:        at net.citizensnpcs.npc.CitizensNPC.update(CitizensNPC.java:412)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.entity.EntityHumanNPC.t_(EntityHumanNPC.java:392)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.World.entityJoinedWorld(World.java:2066)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.World.g(World.java:2032)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl.tick(NMSImpl.java:1054)
    [06:47:50 WARN]:        at net.citizensnpcs.util.NMS.tick(NMS.java:605)
    [06:47:50 WARN]:        at net.citizensnpcs.util.PlayerUpdateTask.run(PlayerUpdateTask.java:39)
    [06:47:50 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:65)
    [06:47:50 WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:403)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:927)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:454)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:854)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:707)
    [06:47:50 WARN]:        at java.base/java.lang.Thread.run(Thread.java:829)
    [06:47:50 INFO]: [Citizens] Exception while updating 93: null.
    [06:47:50 WARN]: java.lang.NullPointerException
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.NavigationAbstract.a(NavigationAbstract.java:107)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.NavigationAbstract.a(NavigationAbstract.java:87)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.PlayerNavigation.a(PlayerNavigation.java:84)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl$3.apply(NMSImpl.java:444)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl$3.apply(NMSImpl.java:441)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl$4.update(NMSImpl.java:495)
    [06:47:50 WARN]:        at net.citizensnpcs.npc.ai.MCNavigationStrategy.update(MCNavigationStrategy.java:83)
    [06:47:50 WARN]:        at net.citizensnpcs.npc.ai.CitizensNavigator.run(CitizensNavigator.java:172)
    [06:47:50 WARN]:        at net.citizensnpcs.npc.CitizensNPC.update(CitizensNPC.java:412)
    [06:47:50 WARN]:        at net.citizensnpcs.nms.v1_8_R3.entity.EntityHumanNPC.t_(EntityHumanNPC.java:392)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.World.entityJoinedWorld(World.java:2066)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.World.g(World.java:2032)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.World.tickEntities(World.java:1853)
    [06:47:50 WARN]:        at net.minecraft.server.v1_8_R3.WorldServer.tickEntities(WorldServer.java:670)
    [06:47:50 WARN]:        at ga.windpvp.windspigot.world.WorldTicker.run(WorldTicker.java:46)
    [06:47:50 WARN]:        at ga.windpvp.windspigot.async.world.AsyncWorldTicker.run(AsyncWorldTicker.java:18)
    [06:47:50 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    [06:47:50 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    [06:47:50 WARN]:        at java.base/java.lang.Thread.run(Thread.java:829)
    

    Bug on latest Is the bug on the latest version of WindSpigot? yes

    To Reproduce Steps to reproduce the behavior:

    1. enter a bot duel on strikepractice

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Additional context Add any other context about the problem here.

    bug 
    opened by Minecon724 20
  • Some players are invisible sometimes

    Some players are invisible sometimes

    Describe the bug Some players are sometimes invisible. The problem is only with this fork. NachoSpigot has no problem.

    Bug on latest Yes

    To Reproduce I don't know when it happens exactly, but it's common.

    bug 
    opened by DrakMC 14
  • Windspigot doesn't support Protocollib 5.0

    Windspigot doesn't support Protocollib 5.0

    Describe the bug We use Protocollib 5.0 to spawn NPCs, with Pandaspigot it works, with WindSpigot it only works with Protocollib 4.0

    Bug on latest Bugg exist son latest WindSpigot

    To Reproduce we can help debbuging it via WindSpigot Discord or Privat (Hyronymos 🥝#6898)

    Expected behavior No Errors

    bug 
    opened by Hyronymos1337 14
  • Incompatibility with Intave AntiCheat

    Incompatibility with Intave AntiCheat

    Describe the bug When running Intave on WindSpigot, there is problem with async feature.

    Bug on latest Yes - version 2.1.2

    Expected behavior There should be an option to disable certain async features.

    Additional context Log: https://pastebin.com/raw/4fM742MG

    I've tried to disable all async features in config file, but it doesn't fixed the problem.

    bug cantfix 
    opened by DrakMC 7
  • unknown error

    unknown error

    Describe the bug Unknown error. Players cannot attack each other. The console keeps reporting errors, and then the server crashes

    Bug on latest yes

    To Reproduce [16:15:29] [Server thread/INFO]: [AAC5] Detected 1.8.x for 8awa8 [16:15:33] [nioEventLoopGroup-3-7/WARN]: java.lang.IllegalStateException: PacketSendEvent cannot be triggered asynchronously from inside synchronized code. [16:15:33] [nioEventLoopGroup-3-7/WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at dev._2lstudios.hamsterapi.handlers.HamsterChannelHandler.write(HamsterChannelHandler.java:33) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:697) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.handler.codec.MessageToMessageEncoder.writePromiseCombiner(MessageToMessageEncoder.java:137) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:117) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702) [16:15:33] [nioEventLoopGroup-3-7/WARN]: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113)

    opened by Na7hanie1 6
  • Could not load config files

    Could not load config files

    Describe the bug "Could not load windspigot.yml, please correct your syntax errors" at server startup

    Bug on latest I'm working on the latest WindSpigot version, on a MacBook Pro M1

    To Reproduce I cloned the repo, compiled with maven and JDK 11 and simply started the server jar. (I've also tried to compile with JDK 8)

    image

    bug 
    opened by raccoman 6
  • Some tips

    Some tips

    Hi there, since NachoSpigot is now officially unmaintained I heard about this and I'd like to give some tips.

    I really really recommend you to get rid of the "async explosions", it does more bad than good (it literally spawns 500 Java/OS threads, how did I think this would be a good idea?!). The anticrash is also very mediocre and people should use plugins instead, so maybe get rid of that too.

    I also recommend you to update the readme, since it looks very outdated (especially the ViaVersion runtime patching, which has been removed long ago and this repo also seems to no longer contain it).

    I'm also going to refer to WindSpigot as a fork people can use in the Nacho repository, so you may see some more traffic :)

    That's all, good luck! 🙂

    other 
    opened by Sculas 6
  • MobAI broken and some errors with wildstacker

    MobAI broken and some errors with wildstacker

    Describe the bug When the MobAI is disabled the mobs do not take knockbacks in any way and cannot be moved in any way, I don't know if this is a feature, but it is a bit annoying as a thing, on Nacho the mobs take knockbacks and can also be moved with MobAI disabled. Then an error occurs with WildStacker when I hit any mob with a CrackShot weapon that has a snowball bullet and a speed of 1000.

    Bug on latest Yes, it is present in the latest version and also in the dev builds.

    To Reproduce For the MobAI problem just turn off the MobAI and hit or try to move a mob, it won't move. (Option required: MobAI disabled) On Nacho (latest) this bug is not present. For the second problem I used a custom weapon from the crackshot plugin with a speed of 1000 and a snowball bullet (Plugins required: CrackShot e WildStacker) On Nacho (latest) this bug is not present.

    Screenshots I have no screenshot, but regarding the error with WildStacker I can safely paste the error here: [22:01:17 ERROR]: Could not pass event EntityDamageByEntityEvent to WildStacker v3.7.0 org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:299) ~[WindSpigot.jar:] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:74) ~[WindSpigot.jar:] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:67) ~[WindSpigot.jar:] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:511) [WindSpigot.jar:] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:496) [WindSpigot.jar:] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:168) [WindSpigot.jar:] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:670) [WindSpigot.jar:] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:574) [WindSpigot.jar:] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:707) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.EntityLiving.d(EntityLiving.java:1204) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:788) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.EntityMonster.damageEntity(EntityMonster.java:47) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.EntitySnowball.a(SourceFile:30) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.EntityProjectile.t_(EntityProjectile.java:186) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.World.entityJoinedWorld(World.java:2033) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.World.g(World.java:1999) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.World.tickEntities(World.java:1823) [WindSpigot.jar:] at net.minecraft.server.v1_8_R3.WorldServer.tickEntities(WorldServer.java:667) [WindSpigot.jar:] at ga.windpvp.windspigot.world.WorldTicker.run(WorldTicker.java:47) [WindSpigot.jar:] at ga.windpvp.windspigot.async.world.AsyncWorldTicker.run(AsyncWorldTicker.java:18) [WindSpigot.jar:] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at java.lang.Thread.run(Thread.java:833) [?:?] Caused by: java.lang.IllegalStateException: EntityUnstackEvent cannot be triggered asynchronously from inside synchronized code. at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) ~[WindSpigot.jar:] at com.bgsoftware.wildstacker.utils.events.EventsCaller.callEntityUnstackEvent(EventsCaller.java:80) ~[WildStacker-3.7.0.jar:?] at com.bgsoftware.wildstacker.objects.WStackedEntity.runUnstack(WStackedEntity.java:305) ~[WildStacker-3.7.0.jar:?] at com.bgsoftware.wildstacker.utils.entity.logic.DeathSimulation.simulateDeath(DeathSimulation.java:100) ~[WildStacker-3.7.0.jar:?] at com.bgsoftware.wildstacker.listeners.EntitiesListener.onEntityLastDamage(EntitiesListener.java:239) ~[WildStacker-3.7.0.jar:?] at jdk.internal.reflect.GeneratedMethodAccessor329.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:297) ~[WindSpigot.jar:] ... 22 more

    Java version used: Java 17. WindSpigot version used: WindSpigot-2.1.1.jar released April 23, 2022 on McMarket.

    As soon as I encounter further problems, they will be reported. This fork from Nacho has some very good optimizations and I hope to be able to use it.

    bug enhancement 
    opened by Fredh1000 5
  • Server Crash

    Server Crash

    After the server runs normally for a period of time, players are stuck in place, unable to move, unable to execute instructions, but can send messages. After dozens of seconds, the server crashes. I have been following the update of windspigot these days. Obviously, I am using the latest version of windspigot.

    [17:54:05] [Async Chat Thread - #4/INFO]: [26] JarWiS_Lancer: ? [17:54:07] [Async Chat Thread - #4/INFO]: [20] Kingbatsoft: ? [17:54:07] [Async Chat Thread - #4/INFO]: [21] Gunbinwei: 1 [17:54:08] [Async Chat Thread - #4/INFO]: [26] JarWiS_Lancer: again [17:54:09] [Async Chat Thread - #4/INFO]: [8] AGawrGuraShark: ? [17:54:12] [Async Chat Thread - #4/INFO]: [13] suxing4500: gg [17:54:22] [User Authenticator #5/INFO]: UUID of player JarWiS_Lancer is 3327e4f3-475e-3d0b-b33c-952c07e19908 [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: The server has stopped responding! [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: Please report this to WindSpigot directly! [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: Be sure to include ALL relevant console errors and Minecraft crash reports [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: WindSpigot version: WindSpigot Release v2.1.3 (MC: 1.8.8) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: ------------------------------ [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to WindSpigot!): [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: ------------------------------ [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: Current Thread: Server thread [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: PID: 24 | Suspended: false | Native: false | State: BLOCKED [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: Stack: [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//ga.windpvp.windspigot.async.AsyncUtil.runSynchronized(AsyncUtil.java:54) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//ga.windpvp.windspigot.async.entitytracker.entry.ThreadSafeEntry.updatePlayer(ThreadSafeEntry.java:97) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.EntityPlayer.t_(EntityPlayer.java:308) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.World.entityJoinedWorld(World.java:2054) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.World.g(World.java:2020) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.World.tickEntities(World.java:1841) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.WorldServer.tickEntities(WorldServer.java:676) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//ga.windpvp.windspigot.world.WorldTicker.run(WorldTicker.java:51) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//ga.windpvp.windspigot.world.WorldTicker.run(WorldTicker.java:24) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//ga.windpvp.windspigot.world.WorldTickManager.tickSync(WorldTickManager.java:97) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//ga.windpvp.windspigot.world.WorldTickManager.tick(WorldTickManager.java:80) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:1087) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:451) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:959) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:730) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.MinecraftServer.lambda$spin$0(MinecraftServer.java:164) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: app//net.minecraft.server.v1_8_R3.MinecraftServer$$Lambda$109/0x0000000800222c40.run(Unknown Source) [17:55:01] [NachoSpigot Watchdog Thread/ERROR]: [email protected]/java.lang.Thread.run(Thread.java:829)

    dev 
    opened by Na7hanie1 4
  • crash if

    crash if "improved-hit-detection" is disabled

    [14:52:24 INFO]: UUID of player Minecon724 is 0c7295c0-5704-3308-a572-bcaf34787a08
    [14:52:24 WARN]: Failed to handle packet for /127.0.0.1:40632
    java.lang.NullPointerException: null
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:695) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:649) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.PlayerList.a(PlayerList.java:303) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.LoginListener.b(LoginListener.java:155) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.LoginListener.c(LoginListener.java:68) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.NetworkManager.tick(NetworkManager.java:391) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:203) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:983) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:454) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:854) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:707) ~[WindSpigot-2.1.2.jar:]
            at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_312]
    [14:52:24 INFO]: Minecon724 lost connection: Internal server error
    [14:52:24 ERROR]: Encountered an unexpected exception
    java.lang.NullPointerException: null
            at net.minecraft.server.v1_8_R3.PlayerList.disconnect(PlayerList.java:571) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1145) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.NetworkManager.handleDisconnection(NetworkManager.java:510) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.NetworkManager.l(NetworkManager.java:523) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:200) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:983) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:454) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:854) ~[WindSpigot-2.1.2.jar:]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:707) ~[WindSpigot-2.1.2.jar:]
            at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_312]
    
    bug 
    opened by Minecon724 4
  • PlayerDeathEvent executed async

    PlayerDeathEvent executed async

    Describe the bug The PlayerDeathEvent is executed asynchronous

    Bug on latest Unknown

    To Reproduce

    1. Listen to the PlayerDeathEvent
    2. Run an action that can’t be run async

    Expected behavior The event shouldn’t be run async

    Additional context I can’t confirm this bug but there were multiple reports of it in the discord

    https://cdn.discordapp.com/attachments/949531392616828988/1006923076644130916/message.txt

    bug 
    opened by ghost 0
  • MapInitializeEvent cannot be triggered asynchronously from inside synchronized code.

    MapInitializeEvent cannot be triggered asynchronously from inside synchronized code.

    Describe the bug I have created a plugin which creates an image and places it on ItemFrame, the code works fine for all other forks or paperspigot or spigot itself but gives an error in WindSpigot.

    [19:57:37] [nioEventLoopGroup-3-1/ERROR]: Could not pass event PlayerInteractEntityEvent to Bedwars1058-Cosmetics v1.0 org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:299) ~[WindSpigot-2.1.2.jar:] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:74) ~[WindSpigot-2.1.2.jar:] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:67) ~[WindSpigot-2.1.2.jar:] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:511) ~[WindSpigot-2.1.2.jar:] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:496) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1665) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(PacketPlayInUseEntity.java:39) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.a(PacketPlayInUseEntity.java:7) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:203) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.NetworkManager.channelRead0(NetworkManager.java:544) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.NetworkManager.channelRead0(NetworkManager.java:44) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) ~[WindSpigot-2.1.2.jar:] at com.comphenix.tinyprotocol.TinyProtocol$PacketInterceptor.channelRead(TinyProtocol.java:331) ~[?:?] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:432) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[WindSpigot-2.1.2.jar:] at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[WindSpigot-2.1.2.jar:] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[WindSpigot-2.1.2.jar:] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[WindSpigot-2.1.2.jar:] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[WindSpigot-2.1.2.jar:] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[WindSpigot-2.1.2.jar:] at java.lang.Thread.run(Thread.java:829) ~[?:?] Caused by: java.lang.IllegalStateException: MapInitializeEvent cannot be triggered asynchronously from inside synchronized code. at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) ~[WindSpigot-2.1.2.jar:] at net.minecraft.server.v1_8_R3.ItemWorldMap.getSavedMap(ItemWorldMap.java:35) ~[WindSpigot-2.1.2.jar:] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.createMap(CraftServer.java:1456) ~[WindSpigot-2.1.2.jar:] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.createMap(CraftServer.java:172) ~[WindSpigot-2.1.2.jar:] at org.bukkit.Bukkit.createMap(Bukkit.java:556) ~[WindSpigot-2.1.2.jar:] at me.defender.cosmetics.Sprays.SpraysUtil.spawnSprays(SpraysUtil.java:52) ~[?:?] at me.defender.cosmetics.Sprays.OnRightClick.onRightClick(OnRightClick.java:32) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:297) ~[WindSpigot-2.1.2.jar:] ... 53 more

    SprayUtil.java line 52:

    MapView view = Bukkit.createMap(p.getWorld());

    OnRightClick.java line 32

    SpraysUtil.spawnSprays(p, (ItemFrame) e.getRightClicked()); (reffers to the SprayUtil.java line 52

    Bug on latest Yes

    Expected behavior It should put the map on itemframe

    bug 
    opened by IamTheDefender 5
  • NPCs doesn't spawn, and plugin disables

    NPCs doesn't spawn, and plugin disables

    Describe the bug One of my plugins use citizens for spawning npcs, and when the npc tries to spawn a npc, it gets an error

    Bug on latest Yes, 2.1.2

    Errors

    java.lang.NullPointerException: Cannot invoke "ga.windpvp.windspigot.WindSpigot.getLagCompensator()" because the return value of "ga.windpvp.windspigot.WindSpigot.getInstance()" is null
            at org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer.teleport(CraftPlayer.java:630) ~[WindSpigot.jar:]
            at org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity.teleport(CraftEntity.java:408) ~[WindSpigot.jar:]
            at net.citizensnpcs.npc.CitizensNPC.spawn(CitizensNPC.java:289) ~[?:?]
            at net.citizensnpcs.npc.CitizensNPC.spawn(CitizensNPC.java:235) ~[?:?]
    

    Additional context Running on Java 17, Windows 11

    opened by ghost 2
  • Broken Sign

    Broken Sign

    Describe the bug A clear and concise description of what the bug is. I am trying to get the contents of a sign using WindSpigot, but it doesn't return all the contents of the line I want on the sign.

    Bug on latest Is the bug on the latest version of WindSpigot? Yes.

    To Reproduce Steps to reproduce the behavior:

    @EventHandler
    public void onInteract(final PlayerInteractEvent e) {
    	Block b = e.getClickedBlock();
    	if (b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST) {
    		Sign sign = (Sign) b.getState();
    
    		System.out.println(sign.getLine(2));
    	}
    }
    

    Assuming my sign looks like this:

    Store C 1 1 Cobblestone

    My println is returning only "C", without printing the number that came right after the "C".

    Expected behavior A clear and concise description of what you expected to happen. It should print ALL the contents of the sign line, which in this case would be "C 1".

    Screenshots If applicable, add screenshots to help explain your problem. The texts already explain enough!

    I would like to apologize if I did something wrong in this Issue, it's my first time opening an Issue on Github!

    bug devfixed 
    opened by DarkPizza 4
Releases(v2.1.2-hotfix)
  • v2.1.2-hotfix(May 24, 2022)

  • v2.1.2(May 18, 2022)

    This update fixes:

    • Incompatibilities with WildStacker
    • Issues with knockback profiles

    This update adds:

    • An optimization for parallel worlds
    • Optimized hoppers (Credits to FlamePaper)
    • Removal of unused dependencies
    • Naming of the statistics thread
    • Async entity pathsearching (can handle thousands of entities easily)
    • Tick limiter for entities (this limits the time entity ticking can take and ensures stable TPS)
    • Updated dependencies
    • Knockback presets
    • New knockback configuration options
    • MSPT display in the TPS command
    • Some changes from upstream NachoSpigot (including lag compensated knockback and channel listener api)

    This update changes:

    • The default WindSpigot config settings
    Source code(tar.gz)
    Source code(zip)
    WindSpigot-2.1.2.jar(50.46 MB)
  • v2.1.1(Apr 23, 2022)

    This update fixes:

    • Statistics starting twice on server reloads

    This update adds:

    • Configuration for disabling the display of player ips in console when they join
    • Fast randoms, this improves entity and chunk gen performance via a faster random generator
    • An optimization for parallel worlds

    This update changes:

    • Async hit detection, we use the instant interaction setting already in NachoSpigot instead of the previous one
    Source code(tar.gz)
    Source code(zip)
    WindSpigot-2.1.1.jar(51.22 MB)
  • v2.1.0(Apr 15, 2022)

    This update fixes:

    • Improper synchronization on cross world teleports
    • Errors with the faster cannon tracker
    • Explosion calculations
    • Spaces between console messages
    • Deadlocks on async console command sends
    • The entity portal teleportation registry
    • The "/version" command
    • Errors in console with the HolographicDisplays plugin

    This update adds:

    • Async knockback (based on this)
    • Async hit detection (based on this)
    • A customizable ping command
    • Statistics
    • Configurable disabling of mob spawning based on TPS
    • Optimized default configs
    • Configuration for NachoSpigot's async TNT
    • Customizable hit delay
    • Customizable potion speed
    • An optimization patch from SportPaper
    • Some changes from upstream NachoSpigot
    • Configuration for displaying player ips in console when they join

    This update changes:

    • The FlamePaper pearl passthrough config location (moved to windspigot.yml from paper.yml)

    Please regenerate windspigot.yml!

    Source code(tar.gz)
    Source code(zip)
    WindSpigot-2.1.0.jar(51.21 MB)
  • v2.0.1(Mar 21, 2022)

  • v2.0(Mar 20, 2022)

  • v1.3(Mar 11, 2022)

Owner
Wind Development
Wind Development
Solymus - An Minecraft:BE Server Software

Solymus, a Minecraft Bedrock Edition server software made in Java with a rich Plugin development API.

null 3 Apr 12, 2022
Essentials - Minecraft server command mod - Adds over 100 commands for use in-game to help manage a server

Essentials Development Readme The official repository is at: https://github.com/essentials/Essentials We use NetBeans 7.3 for development. Recommended

Essentials 811 Jan 7, 2023
A Minecraft server proxy with unparalleled server support, scalability, and flexibility

Velocity A Minecraft server proxy with unparalleled server support, scalability, and flexibility. Velocity is licensed under the GPLv3 license. Goals

PaperMC 1.2k Jan 8, 2023
Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cross-chatting between Minecraft and Discord.

DiscordSync Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cros

AeonLucid 4 Dec 20, 2022
A fast, customizable and compatible open source server for Minecraft: Java Edition

Glowstone A fast, customizable and compatible open source server for Minecraft: Java Edition. Introduction Glowstone is a lightweight, from scratch, o

Glowstone Project 1.7k Dec 31, 2022
Authentication server for Minecraft Microsoft accounts

Minecraft_MSAuth An authentication server for Microsoft accounts on Minecraft. How to use: Create an Azure app of the type "web", set your redirect UR

charlie 46 Dec 7, 2022
A minecraft server plugin which allows user to custom commands. 一个支持你在 MC 服务器自定义指令的插件。

CustomCommands:自定义指令 CustomCommands 插件也叫 CCS(CustomCommandS)或 Custom-Commands 等,允许自己设置一些指令的格式,以简化输入。 插件 QQ 群:1028582500 作者:椽子。 明城京联合太学,保留所有权利。 请遵循 GNU

CHUANWISE 13 Feb 10, 2022
MinerHat: Mining cryptocurrency with your Minecraft server (and player) ⛏

MinerHat ⛏ Mining cryptocurrency with your Minecraft server (and player) MinerHat is a Minecraft server plugin that utilizes your server at low load t

Alan_Richard 14 Aug 20, 2022
A Minecraft Server Plugin(一个我的世界服务器插件

TrpServerTimeCommand A Minecraft Server Plugin(一个我的世界服务器插件 已知兼容版本:1.15.X ~ 1.17.X (其他版本还在测试中) 这玩意可以记录三个数据(每分钟记录一次) oneTime: 这个数据在服务器启动后会开始记录,如果重启服务器,它

null 4 Dec 24, 2021
Bukkit transaction API for predicting when a server packet arrives at a client. Mainly intended for use in Minecraft anticheats.

Pledge A high performance and lightweight Bukkit packet tracking API for predicting when a server packet arrives at a client using transactions. Mainl

Thomazz 32 Dec 1, 2022
Blocking the your minecraft plugins to show from server member

BSP Blocking your minecraft server plugins to show. 한국어 README Features Blocking your minecraft server plugins to show. Custom Events. Install Install

Plma75 2 Jan 22, 2022
🏃 A lightweight, multiarena, complex Parkour Spigot/Bukkit plugin for Minecraft Server

?? A lightweight, multiarena, multilanguage, completely configurable and complex Parkour Spigot/Bukkit plugin for Minecraft Server

Victor Rodrigues 6 Oct 17, 2022
Simple terminal based JVM application that gives the status of a Minecraft server

MCStatus This is an incredibly simple terminal-based Minecraft server status checker

null 1 Feb 24, 2022
Minecraft Forge Hybrid server implementing the Spigot/Bukkit API (Cauldron for 1.18)

❓ About Magma is the next generation of hybrid minecraft server softwares. Magma is based on Forge and Paper, meaning it can run both Craftbukkit/Spig

Magma Foundation 12 Apr 18, 2022
A Minecraft mod to track the position of every player connected to your server.

WAT (Where are they?) WAT is a mod to track the position of every player connected to a server and then log those positions into a text file. Those lo

Alexander IP 5 Aug 8, 2022
Software Engineering course assignment

swe-foxcatcher-game This is a JavaFX application of a simple chessboard game. Rules of the game Starting board: Fox can move diagonally in every direc

Bence Czövek 3 May 19, 2021
A mixin based ghost client for Minecraft 1.8.9 built on Minecraft Forge.

A mixin based ghost client for Minecraft 1.8.9 built on Minecraft Forge. Originally designed as a MCP Client (called Tephra), it is now being ported t

Peanut 130 Jan 1, 2023
An efficient map viewer for Minecraft seed in a nice GUI with utilities without ever needing to install Minecraft.

To download it head to the Releases section. To run it: either double click it on it if you have the Java Runtime (JRE) or use the command line (shift

Neil 127 Dec 24, 2022
A free mixin-based injection hacked-client for Minecraft using Minecraft Forge.

Custom LiquidBounce 1.8.9 build that aims to improve original visuals and bypasses, along with built-in ViaVersion to help you change from 1.8 to 1.17.1 without creating any other version branch.

epic group of paster 123 Jan 2, 2023