xginko / anarchyexploitfixes Goto Github PK
View Code? Open in Web Editor NEWFix exploits on anarchy Minecraft servers
License: GNU General Public License v3.0
Fix exploits on anarchy Minecraft servers
License: GNU General Public License v3.0
Hi Moo! My log seems to be filling up with these events and I'm not sure if the problem is config issue or something else. Could you take a look? This happens on both my live 1.15.2 paper server and my test 1.16.5 purpur server.
Edit: for some reason the entire log may not be showing. First two lines:
02.05 18:06:52 [Server] ERROR Could not pass event InventoryOpenEvent to AnarchyExploitFixes v18.0.9
02.05 18:06:52 [Server] INFO java.lang.IllegalArgumentException: Material cannot be null
02.05 18:06:52 [Server] INFO java.lang.IllegalArgumentException: Material cannot be null
02.05 18:06:52 [Server] INFO at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.craftbukkit.v1_16_R3.inventory.CraftInventory.remove(CraftInventory.java:421) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at me.moomoo.anarchyexploitfixes.patches.Illegals.lambda$onInventoryOpenEvent$2(Illegals.java:92) ~[?:?]
02.05 18:06:52 [Server] INFO at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_265]
02.05 18:06:52 [Server] INFO at me.moomoo.anarchyexploitfixes.patches.Illegals.onInventoryOpenEvent(Illegals.java:88) ~[?:?]
02.05 18:06:52 [Server] INFO at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:40) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callInventoryOpenEvent(CraftEventFactory.java:1287) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callInventoryOpenEvent(CraftEventFactory.java:1273) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.craftbukkit.v1_16_R3.entity.CraftHumanEntity.openCustomInventory(CraftHumanEntity.java:334) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.craftbukkit.v1_16_R3.entity.CraftHumanEntity.openInventory(CraftHumanEntity.java:319) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at com.lishid.openinv.internal.v1_16_R3.AnySilentContainer.activateContainer(AnySilentContainer.java:173) ~[?:?]
02.05 18:06:52 [Server] INFO at com.lishid.openinv.listeners.PlayerListener.onPlayerInteract(PlayerListener.java:81) ~[?:?]
02.05 18:06:52 [Server] INFO at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor40.execute(Unknown Source) ~[?:?]
02.05 18:06:52 [Server] INFO at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:531) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at net.minecraft.server.v1_16_R3.PlayerInteractManager.a(PlayerInteractManager.java:533) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1815) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:32) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:10) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:52 [Server] INFO at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1326) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1319) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1295) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1139) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Purpur-"2e66f83"]
02.05 18:06:53 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]```
Fix bowbomb exploit please
Server version: 1.17.1
Error: https://p.reflex.rip/lopa.pl
I updated to the newest version and pushed it with a restart but golden apples are still uncraftable and are deleted from your inventory if you find them anywhere in the world.
Could it be where that when redstone is disabled at the set tps, can it then resume what the redstone was doing once the TPS is back up? Currently, it says frozen until broken and replaced etc.
Walking over waterlogged slabs will lag you back as if you're burrowing. This always happens on 1x1 water logged bottom slabs that are levelled with the floor and sometimes happens with slabs in large bodies of water.
(Video from player on server, checked to make sure it AEF)
https://user-images.githubusercontent.com/93623798/175166355-d009bb78-6bf7-46d7-8415-a5c3f8c6bab5.mp4
Testing discord webhook
I got no idea why but my server console keeps spamming random stuff like moomo patches illegal like wtf here is the thing to it plz tell me how to fix ty
One day I actually discovered that my server had crashed and noticed multiple errors with AnarchyExploitFixes and nothing else. First there was a single error with a ChunkLoadEvent error popping up. After this error popped up, the server started spamming "TIMING_STACK_CORRUPTION" errors until the server crashed. Not entirely sure what caused this error to pop up in the first place. Hope this can be fixed. If you need any more information let me know.
Initial Error: https://pastebin.com/K8kYSvDi
Second Error that was spammed for a while: https://pastebin.com/swaLzuaM
Third and final error that was spammed until the server crashed: https://pastebin.com/SuRLh1jr
I hardly see any updates.
Basically by players tracking entities like chests, animals etc, they can still see loaded chunks and get coords that way
Heya! I've received this error today:
[11:39:15] [Netty Epoll Server IO #1/WARN]: java.lang.IllegalStateException: Asynchronous Async Chunk Load! Blocking thread until it returns
[11:39:15] [Netty Epoll Server IO #1/WARN]: at net.minecraft.server.v1_12_R1.MCUtil.ensureMain(MCUtil.java:54)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at org.bukkit.craftbukkit.v1_12_R1.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:18)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:143)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:126)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:122)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftWorld.getChunkAt(CraftWorld.java:182)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at org.bukkit.craftbukkit.v1_12_R1.CraftWorld.getBlockAt(CraftWorld.java:119)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at me.moomoo.anarchyexploitfixes.patches.ProtocolLib$2.onPacketReceiving(ProtocolLib.java:58)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.SortedPacketListenerList.invokeReceivingListener(SortedPacketListenerList.java:114)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(SortedPacketListenerList.java:67)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:537)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(PacketFilterManager.java:509)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.netty.ProtocolInjector.packetReceived(ProtocolInjector.java:360)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketReceiving(ProtocolInjector.java:325)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.netty.ChannelInjector.decode(ChannelInjector.java:593)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at com.comphenix.protocol.injector.netty.ChannelInjector$2.channelRead(ChannelInjector.java:289)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:432)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[11:39:15] [Netty Epoll Server IO #1/WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
Would be awesome if you could fix it.
If someone lands an anvil on you, you will be teleported up upon moving your character or head, this can be used as a strategy to get players out of their holes. This is why I would like the burrow patch to ignore anvils.
Add support for 1.17.1, the plugin itself works, but some functionality of the plugin does not work, due to the specifics of the 1.17.1 update.
After updating to Version 1.25.2 the following error gets spammed in console:
[14:33:36 ERROR]: Could not pass event BlockPlaceEvent to AnarchyExploitFixes v1.25.2
java.lang.NullPointerException: Cannot invoke "org.bukkit.Material.equals(Object)" because the return value of "org.bukkit.craftbukkit.v1_18_R2.legacy.CraftLegacy.getMaterial(String)" is null
at me.moomoo.anarchyexploitfixes.patches.ChunkBan.onBlockPlace(ChunkBan.java:31) ~[anarchyexploitfixes-1.25.2.jar:?]
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:git-Purpur-1606]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:631) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:393) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.world.item.ItemStack.useOn(ItemStack.java:383) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.server.level.ServerPlayerGameMode.useItemOn(ServerPlayerGameMode.java:616) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItemOn(ServerGamePacketListenerImpl.java:1924) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.handle(ServerboundUseItemOnPacket.java:33) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.a(ServerboundUseItemOnPacket.java:9) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1426) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:188) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1403) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1396) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1374) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1256) ~[purpur-1.18.2.jar:git-Purpur-1606]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:320) ~[purpur-1.18.2.jar:git-Purpur-1606]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
All I understand is that a ChunkBan patch is causing the error, can't figure out much else
Server version: 1.18.2
Plugin version: 1.25.0
Does this plugin patch the 1.18 vulnerabilities mentioned by the Illegal stack remover plugin?
Dear moom0o, when i set RevertUnEnchantable to true it will reverse enchanted golden apples to normal golden apples if you need my config tell me
[Server thread/ERROR]: Could not pass event ChunkLoadEvent to AnarchyExploitFixes v4.2
java.lang.IllegalArgumentException: x out of range (expected 0-15, got 48)
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:168) ~[patched_1.16.2.jar:git-Paper-183]
at org.bukkit.craftbukkit.v1_16_R2.CraftChunk.validateChunkCoordinates(CraftChunk.java:332) ~[patched_1.16.2.jar:git-Paper-183]
at org.bukkit.craftbukkit.v1_16_R2.CraftChunk.getBlock(CraftChunk.java:97) ~[patched_1.16.2.jar:git-Paper-183]
at me.moomoo.anarchyexploitfixes.Main.onChunkLoadEvent(Main.java:319) ~[?:?]
at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:37) ~[patched_1.16.2.jar:git-Paper-183]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[patched_1.16.2.jar:git-Paper-183]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.2.jar:git-Paper-183]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.Chunk.loadCallback(Chunk.java:815) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.PlayerChunk.lambda$null$15(PlayerChunk.java:744) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.PlayerChunkMap$CallbackExecutor.run(PlayerChunkMap.java:149) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.ChunkProviderServer$a.executeNext(ChunkProviderServer.java:1054) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.ChunkProviderServer.runTasks(ChunkProviderServer.java:636) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:1144) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:1128) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1202) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:999) ~[patched_1.16.2.jar:git-Paper-183]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-183]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
if i duplicate a command, aef blocks them
Thx
When players join, it will prompt the following error:
System Info: Java 15 (Java HotSpot(TM) 64-Bit Server VM 15.0.2+7-27) Host: Windows 10 10.0 (amd64)
And maybe you should be here plugin.yml Add api-version:1.13
Recent log:
latest.log
In addition: no problem run in 1.12.2
throw 32k box inside lava to bypass antiillegals
Hello! It appears the block / chunk limiting features are not working. My server is running 1.18.2 and anarchyexploitfixes-1.25.2.2.jar. Players are able to exceed the limits specified here. This is the relevant section of the config:
MaxEnchantmentTablePerChunk: 32
MaxEnderchestPerChunk: 64
MaxContainerPerChunk: 256
MaxSignPerChunk: 100
MaxSlimePerChunk: 128
MaxBeaconPerChunk: 32
MaxHopperPerChunk: 64
MaxPistonPerChunk: 32 # Would allow 64 if sticky pistons are also being used.
MaxGlowstonePerChunk: 99999 # Set to 99999 by default, limit if you wish.
MaxBannersPerChunk: 100
MaxSkullsPerChunk: 50
AEF version: 1.26.1
MC Version: 1.18.2
pretty much title
video: https://0x0.st/ouTZ.mp4
Newest version of this plugin v1.26.1.1 doesn't work (on 1.18.2 at least) error message: https://pastebin.com/GnSrDcgb
This is a great plug-in, can you make it support 1.16.5, because 2b2t.org is about to upgrade to 1.16.5, my server also needs to upgradel, but the plug-in is not compatibe with 1.16.5.
[10:11:36 INFO]: [AnarchyExploitFixes] 64/14
[10:11:36 INFO]: [AnarchyExploitFixes] 336/165
[10:11:36 INFO]: [AnarchyExploitFixes] 64/14
[10:11:36 INFO]: [AnarchyExploitFixes] 336/165
[10:11:37 INFO]: [AnarchyExploitFixes] 64/14
[10:11:37 INFO]: [AnarchyExploitFixes] 336/165
[10:11:37 INFO]: [AnarchyExploitFixes] 64/14
[10:11:37 INFO]: [AnarchyExploitFixes] 336/165
[10:11:44 INFO]: [AnarchyExploitFixes] 64/14
[10:11:44 INFO]: [AnarchyExploitFixes] 336/165
[10:11:45 INFO]: [AnarchyExploitFixes] 64/14
[10:11:45 INFO]: [AnarchyExploitFixes] 336/165
[10:11:45 INFO]: [AnarchyExploitFixes] 64/14
[10:11:45 INFO]: [AnarchyExploitFixes] 336/165
[10:11:46 INFO]: [AnarchyExploitFixes] 64/14
[10:11:46 INFO]: [AnarchyExploitFixes] 336/165
[10:11:46 INFO]: [AnarchyExploitFixes] 64/14
[10:11:46 INFO]: [AnarchyExploitFixes] 336/165
[10:11:48 INFO]: [AnarchyExploitFixes] 64/14
[10:11:48 INFO]: [AnarchyExploitFixes] 336/165
[10:11:49 INFO]: [AnarchyExploitFixes] 64/14
[10:11:49 INFO]: [AnarchyExploitFixes] 336/165
[10:11:49 INFO]: [AnarchyExploitFixes] 64/14
[10:11:49 INFO]: [AnarchyExploitFixes] 336/165
[10:11:50 INFO]: [AnarchyExploitFixes] 64/14
[10:11:50 INFO]: [AnarchyExploitFixes] 336/165
[10:11:50 INFO]: [AnarchyExploitFixes] 64/14
[10:11:50 INFO]: [AnarchyExploitFixes] 336/165
Server-version 1.17.1
Plugin version: 1.25.1
Please add the tab completion of the command "/toggleconnectionmsgs" and make the prompt message after the instruction input changeable.
People could still fly under the netherfloor to travel fast, so that makes this patch kinda pointless since there is no check for if a player is under y 0
The server crashes 3 times and the crash logs mention this.
Every 3 times just that.
[18:37:24] [Paper Watchdog Thread/ERROR]: exploitfixes.jar//me.moomoo.anarchyexploitfixes.patches.Elytra.onChunkLoad(Elytra.java:191)
[18:37:24] [Paper Watchdog Thread/ERROR]: com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor140.execute(Unknown Source)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.plugin.EventExecutor$$Lambda$5508/0x0000000801b7df00.execute(Unknown Source)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:630)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.world.level.chunk.LevelChunk.loadCallback(LevelChunk.java:988)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.ChunkHolder.lambda$updateFutures$22(ChunkHolder.java:873)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.PlayerChunk$$Lambda$7588/0x000000080239c228.run(Unknown Source)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.ChunkMap$CallbackExecutor.run(ChunkMap.java:182)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.ChunkHolder.updateFutures(ChunkHolder.java:883)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.DistanceManager.runAllUpdates(DistanceManager.java:215)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.ServerChunkCache.runDistanceManagerUpdates(ServerChunkCache.java:850)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.DistanceManager.addPriorityTicket(DistanceManager.java:418)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.DistanceManager.markUrgent(DistanceManager.java:345)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.ServerChunkCache.getChunkFutureMainThread(ServerChunkCache.java:766)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.server.level.ServerChunkCache.getChunk(ServerChunkCache.java:670)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//net.minecraft.world.level.chunk.ChunkSource.getChunk(ChunkSource.java:14)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.craftbukkit.v1_17_R1.CraftWorld.getChunkAt(CraftWorld.java:298)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.craftbukkit.v1_17_R1.CraftWorld.getChunkAt(CraftWorld.java:882)
[18:37:24] [Paper Watchdog Thread/ERROR]: app//org.bukkit.Location.getChunk(Location.java:123)
[18:37:24] [Paper Watchdog Thread/ERROR]: exploitfixes.jar//me.moomoo.anarchyexploitfixes.patches.Elytra.onChunkLoad(Elytra.java:191)
i dont know the config but theres a boatfly bypass on kami
(according to one of the players on my server)
I just changed the nickname color, it also applies to chat
I get this error even if I turn off all features in the config
https://imgur.com/a/9zNVAHH
It seems like ProtocolLib might be causing some issues when receiving dig packets, but I'm by no means knowledgeable in Java stack traces. A few of these errors were sent in the server console regarding block breaking and break abortion packets before it stopped responding and effectively crashed.
[21:29:22 ERROR]: [AnarchyExploitFixes] Unhandled exception occured in onPacketReceiving(PacketEvent) for AnarchyExploitFixes
java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getLocation()" because the return value of "com.comphenix.protocol.events.PacketEvent.getPlayer()" is null
at me.moomoo.anarchyexploitfixes.patches.ProtocolLib$4.onPacketReceiving(ProtocolLib.java:135) ~[anarchyexploitfixes-1.25.1.jar:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokeReceivingListener(SortedPacketListenerList.java:114) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(SortedPacketListenerList.java:67) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:537) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(PacketFilterManager.java:509) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.ProtocolInjector.packetReceived(ProtocolInjector.java:360) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketReceiving(ProtocolInjector.java:325) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.ChannelInjector.decode(ChannelInjector.java:600) ~[ProtocolLib.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at com.comphenix.protocol.injector.netty.ChannelInjector$2.channelRead(ChannelInjector.java:292) ~[ProtocolLib.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:432) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-all-4.1.68.Final.jar:4.1.68.Final]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
[21:29:22 ERROR]: Parameters:
net.minecraft.network.protocol.game.PacketPlayInBlockDig@3fd771e5[
a=BlockPosition{x=2959741, y=71, z=-118255}
b=south
c=START_DESTROY_BLOCK
]
[21:29:22 ERROR]: [AnarchyExploitFixes] Unhandled exception occured in onPacketReceiving(PacketEvent) for AnarchyExploitFixes
This isn't on every dig packet, but (seemingly?) randomly happened.
This plugin dos not protect against items with negative durability.
Hi! I have some players that are using "block 36" (moving_piston) to create falling sand lag machines. I have AEF configured to limit falling blocks per chunk to 50, and I've even tried lowering it 20. Is there any way to check if AEF is working?
Is there some additional configuration required to get AEF to limit falling sand? Is it possible for AEF to remove "block 36" without damaging legit redstone contraptions?
The server is 1.15.2 on Paper.
https://www.youtube.com/watch?v=IwB3KiN0ags
It can bypass AnarchyExploitFixes and any plugin I know of.
I know it's fixed on paper here: PaperMC/Paper#7866
but not on the previous version
Describe the bug
When sending messages, some will fail and a message will appear in the console - " FAILED to send message due to slowmode: "
To Reproduce
Steps to reproduce the behavior:
Install the latest release of AEF and watch the console of a busy server.
Expected behavior
Chat not being held back.
When players cast their eyes into unloaded chunks after a few seconds, it disappears.
patch the no sky light update exploit
https://www.youtube.com/watch?v=Ke2XP1zOsC0&t
There is atm no way to disable this as far as i know besides maybe the main check.
Could there be a config option to disable in specific worlds or to adjust/disable the checkl in specific worlds?
PreventCommandSign prevents players from coloring their oak signs with glowink or colors in 1.18. Every other wood type sign works fine though.
Please, add beacons limit to ChunkBan feature because they cause lags too.
When removing all ticks from true on the settings and placing a single chest full of full shulkers boxes with stuff and breaking the chest some times some of the shulkers will duplicate, sometimes it will duplicate empty shulkers.
Server-version: 1.17.1 (pufferfish)
nvm was an issue on my side
I have some players that are trying to get all the advancements: The "War Pigs" advancement requires them to raid a chest in a Pilgin Bastion Remnant. It seems that this advancement is triggered when the chest loot generates when the player opens the chest.
AEF's illegal items scan might be intercepting this action so it's impossible for the player to get the achievment: as far as the server is concerned, the loot was already generated when the player opened the chest.
This is a fairly popular plugin Anarchy servers use for DeathBan
https://www.spigotmc.org/resources/deathbans-1-7-1-16-2-support.83171/
For some reason, this plugin makes it so deathbanned players can still rejoin. I've tried disabling a lot of things in the AEF config but to no avail. Is there any solution?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.