AnarchyExploitFixes
Fix exploits on a Minecraft Anarchy Server
NOTICE
This plugin has many features that are broken or do not work properly on version 1.19 or higher. Please submit pull requests and issues for 1.19 problems.
Requirements
- ProtocolLib - This is for preventing packet exploits, if it's not present these exploits will not be prevented, and you will get an warning message every minute.
Prebuilt jar
Go to releases, download the latest jar
If you wish to have a prebuilt BETA jar with the latest code, click Actions at the top of the page, click the latest build, and download the artifact.
Building from source
git clone https://github.com/moom0o/AnarchyExploitFixes.git
Run mvn package
Servers using AEF:
Add your server in a pull request
constantiam.net (70-80), 5b5t.org (50-150), openanarchy.org (40-150), scfanarchy.ggs.gg (0-3)
Commands
These commands are only able to be executed by console or opped players.
- /aef ver - Plugin version.
- /aef reload - Reload the config
- /aef kickphrase (phrase) - Kick all players that have said these words. Currently broken will fix when feel like it.
- /aef geared - See how many players have armor or are new.
- /aef elytra - See who is flying on an elytra.
- /aef lag - artificially lag the server for testing. Every time you run the command the server freezes for 1 second by default, add milliseconds to the end of the command for custom time.
Donate
You can send bitcoin to 3DJan1GpSkhiWHYec55xKhchZC8NeC829S
You can send Monero to 49aXC8ZatrK4MrQXeSpUGsYk5HKLpeuhTZKMW8MtXuXxhNob8rQQBrkRj471Zv4ZNoCu6teYwsMy42HznLp6grCt1AUDCrW
You can also send gift cards, contact me on Discord.
Contact
Need to let me know of any exploits in private? Contact me on discord: moo#0529
or email moom0o@protonmail.com
Notice
Please note that some exploits already patched by 2LS ExploitFixer & Papaya (My paper fork) are probably not fixed in AEF, I recommend using those 2 alongside AEF to patch the majority of exploits.
Features
This list does not include all features, check the config for all features!
All features listed here can be disabled or enabled in the config.
- Prevent NoCom exploit. - Prevent the 'NoCom' coordinate exploit
- Prevent a new lag exploit where fireworks can bring tps down to single digits.
- Prevent BowBomb exploit. - Prevent an exploit where bows can instantly kill a player.
- Prevent burrow hack - Where you step inside a block so crystals can't do any damage.
- Prevent boatfly exploit - Prevent the futureclient/rusherhack boatfly exploit.
- Prevent book-ban - All characters still work! The size of each page is just limited to 255 bytes (customizable). This allows to fill the whole page with latin characters. Characters that use more bytes such as Chinese may be limited in length.
- Prevent unbreakable packet elytra fly.
- Prevent packet fly exploit.
- Prevent end gateway crash exploit. - https://www.youtube.com/watch?v=c5nVBQeYo-I
- Patch end portal dupe. - https://www.youtube.com/watch?v=n-fN6txZNgc
- Prevent Y256 dispenser crash exploit. - https://www.youtube.com/watch?v=XL17P87O6xA
- Anti-illegal system. - Automatically remove illegal items, stacked items, high enchanted items, unenchantable items, and items in shulkers.
- Limit speed of snowballs to prevent clientside lag.
- Limit crafting table autorecipe speed to prevent a lag exploit.
- Prevent all coordinate exploits related to teleporting by vanishing a player right before they are teleported.
- Prevent destroying end portal frames.
- Prevent multiple end dragons from being created.
- Prevent portal traps - Disabled by default.
- Automatically fill in the bedrock floor/roof if the bedrock has been broken.
- Prevent players from going below the bedrock floor by teleporting them up. - Useful so people can't elytra fly below the world.
- Remove wither heads automatically to prevent lag. - Removes on chunk unload or after 10 seconds (customizable)
- Option to disable wither spawning at spawn. - Disabled by default.
- Prevent chunk ban exploit. - Checks how much of each block is in a chunk.
- Prevent chat spam. - Delay between messages, Max messages per a certain time, seperate link delay, character limit, and more!
- Prevent god mode exploit. - Prevent most godmode exploits, please note, there could still be bypasses.
- Prevent invalid names. - Disallow login from players with invalid characters/too long of a name.
- Prevent command signs. - Prevent players from right clicking signs that have been placed with a command attached. For example, from a backdoor.
- Limit falling blocks per chunk to prevent lag.
- Limit exp bottles per chunk to prevent lag.
- Prevent projectiles from going through portals, shooting projectiles through portals can get them stuck in the same place on the other side, once they are loaded the server can crash.
- Prevent too many vehicles, such as minecarts, in chunks.
- Prevent bedtraps. - Disabled by default.
- Prevent nether roof access. - Disabled by default.
- Prevent placing blocks on nether roof
- Option to disable chests on donkeys. - This is unlike IllegalStack's, no items will drop if the chest is broken. Useful to prevent many dupe exploits, Disabled by default.
- Option to prevent donkeys from going through portals. - Useful to prevent many dupe exploits, disabled by default.
- Option to mask all kick messages. - Change every kick message to "You have lost connection to the server", or whichever you specify. Disabled by default.
- Option to enable first join message. - Disabled by default.
- Command whitelist - Useful for only allowing commands that you want to be allowed, so players can't find your plugins. Disabled by default.
- Elytra speed limits for old and new chunks, and bursting settings for when tps is high.
- Elytra action bar to show players the speed they are going and speed limit.
- Option to ratelimit levers, disabled by default.
- Options to disable certain game features at specific TPS. Redstone, Elytra, Explosions, Falling Blocks.
- Option to disable any class you wish.
Config options
Missing config options after an update? Reset your config or manually add the options.
config.yml
# Illegal block preventions
# These are required to be enabled for things like stacked items and 32ks to be prevented.
PreventPlacingIllegalBlocks: true
RemoveIllegalBlockOnPlace: true
RemoveIllegalBlocksOnInteract: true
RemoveIllegalBlocksOnJoin: true
RemoveIllegalBlocksOnInventoryOpen: true
RemoveIllegalBlocksOnDrop: true
RemoveIllegalBlocksOnClick: true
RemoveIllegalBlocksOnPickup: true
RemoveIllegalBlocksOnMove: true
# Remove illegal blocks on chunkload, useful if players have placed a lot of bedrock/other blocks and you want to get rid of it this is automatically disabled on non 1.12.2 versions due to errors.
RemoveALLIllegalBlocksOnCHUNKLOAD: false # Please note this may lower tps slightly (or heavily if players have big stashes)
RemoveIllegalHeadsOnChunkLoad: false # NOT RECOMMENDED TO TURN ON, RAPES TPS!
RevertStackedItems: true
RevertEnchantments: true
RevertUnEnchantable: true # Removes enchantments that normally can't be applied to that item.
RevertSpecificEnchantments: false # Only revert specific enchantments
SpecificEnchantments: # If RevertSpecificEnchantments is enabled, only these specific enchantments will be reverted.
- "DIG_SPEED" # The name of the enchantment in the spigot api
ItemsSkipped: # Items that won't be reverted from illegal enchants or unbreakablity.
- "GOLDEN_APPLE" # Make sure to keep this line here or else enchanted golden apples will be reverted to normal ones.
DataValues:
RevertSpecificDataValues: true # Required for rest of config options
RevertIllegalGoldenApple: true #Revert golden apples that aren't 0 or 1.
SpecificDataValues: # If you want to ban any other data values
- "SuperIllegalItem(0)" # (0) is the data value. For example GOLDEN_APPLE uses (0) for unenchanted and (1) for enchanted. - NEWER VERSIONS: It is currently not possible to ban specific data values, ALL DATA VALUES WILL BE 0.
RevertUnbreakables:
Enabled: true # Revert unbreakable items, items with less than 0 durability will be automatically removed or set to 0 durability, which will break on the next use. Items with higher than max durability will be set to legal maximum durability.
EnableWhitelist: false # If enabled, only items in the whitelist will be reverted.
Whitelist:
- "DIAMOND_CHESTPLATE" # The name of the item in the spigot api
SkipZeroDurability: true # Make sure to keep enabled, otherwise netherite tools will mistakenly be set to maximum durability, due to some bug in spigot.
# Only removes player heads, not mob heads
RemoveIllegalHeads: true
RemoveSpawnEggs: true
# Check for items every X time may cause lag, disable if you have lag issues
StrictIllegalPrevention: false
LookForIllegalsInShulkers: false # WARNING: DO NOT ENABLE IF YOU DON'T WANT A DUPE. Atleast in 1.17 shulkers can easily be duplicated with this enabled. https://cdn.discordapp.com/attachments/810446565822038016/858851144750989312/jbIAkzJ9CU.mp4
# Bugfixes
PreventNoComCoordinateExploit: true
NoComMaxDistance: 64 # Recommended not to increase
PreventEndGatewayCrashExploit: true
PreventDispenserCrashExploit: true
PreventSnowBallExploit: true
PreventFireworksInPortals: true # Patches lag exploit
PreventDropppedItemsInPortals: true # May prevent a lag exploit.
PreventAllEntitiesInPortals: false # Only enable if you must... Players are not affected.
ProjectilesMaxPerTime: 3
ProjectileTimeTicks: 10 # 3 projectiles can be sent every 10 ticks (0.5 seconds)
PreventCraftingRecipeLagExploit: true
CraftingRecipeDelay: 5 # in ticks
# Patches coordinate exploit for teleportation commands such as /tpa, /home ASWELL as respawn exploits (such as finding location from bed respawn point) Works by vanishing the player for x ticks before teleporting.
PreventTeleportCoordExploit: true
TeleportVanishTime: 10 # in ticks
MinDistanceToVanishPlayer: 100 # Minimum distance to vanish player when teleporting, useful to prevent players from teleporting very fast in the same spot and making the tablist go crazy.
PreventDestroyingEndPortals: true
PreventMultipleEnderDragons: true # Prevents multiple ender dragons from spawning when one goes into an end gateway
PreventPortalTraps: false
PreventInvalidNames: true # Prevent names with characters that are non letters, numbers, or underscores, or too long/too short.
PreventBurrow: true # Preliminary burrow patch, please test. Makes players take damage every time they move when their feet are in a block
BurrowDamageWhenMoving: 1 # Half a heart of damage every time you move.
TeleportBurrow: true #Teleport player above block
PreventBurrowIfBlockAbove: false # Prevent burrow even if there is a block above the block they are burrowing in, please note this may allow creating an "elevator", players will keep teleporting up until they hit air
BreakAnvilInsteadOfTeleport: true # Break anvil instead of teleporting player.
AllowSlabsInBurrow: true # Disabled by default in 1.12, needs to be enabled to prevent a bug where players are teleported above a slab when the slab is underwater, only happens in newer versions.
PreventBookBan: true
MaxByteSize: 255 # Per page - Not recommended to touch this
# These are automatically disabled on non 1.12.2 versions due to errors.
FillInBedrockFloor: true
FillInBedrockRoof: true
#
PreventGoingBelowBedrockFloor: true
DisableAllElytras: false
DisableWithers: false
RemoveWitherHeadsAutomatically: true # Experimental: Will remove wither heads on chunk unload or if its been longer than x ticks
RemoveWitherHeadsAutomaticallyTicks: 200 # 10 seconds
RemoveAllWitherSkulls: false
DisableWitherSpawningAtSpawn: #Switching all to false will disable it completely
overworld: false
nether: false
end: false
radius: 5000
message: "&4Wither spawning is disabled in %radius% blocks from spawn."
DisableExplosions: false
FixChatcoIgnoreBug: true
# Attempt to prevent chunk bans/fps lag.
# Automatically disabled in non 1.12 due to a shit ton of errors
PreventChunkBan: true
CustomMaxPerChunk: # CUSTOM block chunk limit configuration - SPIGOT ITEM NAMES!! FIND ON https://papermc.io/javadocs/paper/1.12/org/bukkit/Material.html
BARRIER: 5
MaxEnchantmentTablePerChunk: 16
MaxEnderchestPerChunk: 64
MaxContainerPerChunk: 1000
MaxSignPerChunk: 100
MaxSlimePerChunk: 128
MaxBeaconPerChunk: 32
MaxHopperPerChunk: 32
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
#
# Antispam time in seconds
PreventSpam: true
# Global limit
AntiSpamTime: 1 # 1 message per second
# How many messages should we allow to send in x seconds (converted to ticks)
AntiSpamCheckTime: 30
AntiSpamMessagesPerTime: 10 # ~1 message every 3 seconds if constantly spamming
AntiSpamWordTime: 60
AntiSpamLinkTime: 300
AntiSpamCommands: true # Use the same antispam options for commands aswell.
AntiSpamCommandsUseWhitelist: true # Only enable antispam for commands specified below.
AntiSpamCommandsWhitelist:
- /msg
- /message
- /r
- /reply
- /w
- /whisper
- /tell
CharacterLimit: 128
PreventUnicodeDot: true
MoreLenientLinkCheck: true # Won't get triggered by just the word discord and dc
AllowLinksForOP: true
#
# Removes entities or players if "invalid", not sure if this works. Seems too simple. But again, mojang is retarded.
ExperimentalGodModePatch: true
PreventCommandSign: true
# Disable the 1.16 fish from spawning, there is a shit ton of them that spawn and this can cause a ton of lag, automatically disabled in 1.12
DisableFish: true
# Prevent massive sand chunks from killing the server, prevents any falling blocks from falling if there is more than 50 falling blocks in a chunk
LimitFallingBlocks: true
FallingBlockLimit: 50 # Max in a chunk
# Prevent having a shit ton of exp bottles in one chunk then loading it to kill the server
LimitExpBottles: true
ExpBottleLimit: 25 # Max in a chunk, doesn't limit the actual xp orbs.
# Prevent projectiles such as xp bottles and snowballs from going through portals, this can cause a shit ton of lag especially if there is new chunks on the other end, this wont prevent mobs or items
PreventProjectilesFromGoingThroughPortals: true
PreventMinecartLag: true
MaxVehiclesInChunk: 25
StrictVehicleCheck: false # Check all chunks every 10 seconds (200 ticks) for vehicles.
PreventTooManyEntitiesInChunk: false # Check all chunks every 30 seconds for too many entities, removes any entities left after reaching limit
MaxEntitiesInChunk: 100 # Does not include living entities. (animals/monsters) useful if players are placing a shit ton of crystals etc in one chunk and crashing the server.
LogEntityRemovals: false
EntityCheckTimeTicks: 20 # 1 second
PreventBowBombExploit: true # Please report any problems in GitHub/Discord.
MaxBowSquaredVelocity: 15 # Fully pulled bow is ~9-10. 15 is default just to be safe.
AntiBedTrap: false
AntiBedTrapDeathAmount: 2 # x deaths in 30 secs will reset someones bed.
# This will automatically teleport players below nether roof if they are too high. Use permission node anarchyexploitfixes.netherroofbypass to bypass
PreventNetherRoof: false
#Dupe preventions
DisableChestsOnDonkeys: false
PreventDonkeysFromGoingThroughPortals: false
PatchEndPortalDupe: true # https://www.youtube.com/watch?v=RLvErqzeK3Y
# Not sure if this works, please try it
ExperimentalDupePatch: true
# I don't know if this works, someone on discord said I should prevent the mobs from despawning if they are 500 blocks near a player.
# Automatically disabled in non 1.12 because it causes a SHIT ton of mobs to spawn: https://i.imgur.com/f691cep.png and disabled by default in the config because a shit ton of enderman spawn
ExperimentalDupePatch2: false
# Other options
# If the server is running a version higher than 1.12.2 there will be a shit ton of errors for some config options. It is not recommended to enable this unless you know they work.
OverideConfigChanges: false
DisableAllProtocolLib: false # Use only if you are having problems with protocollib when starting the plugin (especially 1.16)
MaskKickMessages: false
KickMessage: "&6You have lost connection to the server"
PreventSpamKick: false
Preventlinks: false # Code by John200410, edited by moomoo
Replace@: false
# If you want to hide yourself or someone else when logging into the game, just give these rights:
# anarchyexploitfixes.silentJoin
# anarchyexploitfixes.silentLeave
JoinLeaveMessages: false
ConnectionMsgsOnByDefault: true # /toggleconnectionmsgs
EnableFirstJoinMessage: false
FirstJoinMessage: "&7%player% joined the game for the first time. They are %players_num% to join." # %players_num% is how many players have joined the server + the current one (ex. 351th)
JoinMessage: "&7%player% joined the game."
LeaveMessage: "&7%player% left the game."
DisabledMessage: "&7Disabled connection msgs"
EnabledMessage: "&7Enabled connection msgs"
# COMMAND WHITELIST
# This will make it pretty much impossible to find your plugins as only the commands you specify will be able to work. Any other commands will show "Bad command. Type /help for all commands."
CommandWhitelist: false
AllowOPStobypass: true
CommandsWhitelisted:
- /help
- /msg
- /kill
- /discord
- /togglechat
- /toggletells
- /ignore
- /ignorelist
- /toggledeathmsg
- /stats
- /tps
- /w
- /m
- /t
- /pm
- /tell
- /whisper
- /r
- /reply
BannedWords:
- "what's 2+2"
BannedRegex:
- "^This is a(.*)banned message" # Prevents any message that starts with "This is a" and ends with "banned message"
LinkRegex:
- "(https?://(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?://(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})"
- "[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z()]{1,6}\\b([-a-zA-Z()@:%_+.~#?&/=]*)"
# Specific Elytra speed settings for ONLY NEW and OLD chunks (set nocheatplus elytra settings to 999999)
# Disable by setting to 999999
ElytraOldChunkSpeed: 1.81 # 130km/h
ElytraNewChunkSpeed: 1.81 # 130km/h
# Burst elytra speed settings, if the tps is above the amount it will use these settings.
EnableBursting: true
ElytraBurstOldChunkSpeed: 5
ElytraBurstOldChunkTPS: 18
ElytraBurstNewChunkSpeed: 3.12 # 223km/h
ElytraBurstNewChunkTPS: 19
# Spawn elytra settings
ElytraAtSpawn:
Enabled: false
SpeedOldChunks: 1.0
SpeedNewChunks: 0.8
Radius: 3000
LimitRenderDistanceBasedOnTPS: false # Recommended not to use, papers render distance changer is laggy? Try at your own will.
# Radius for chunks when the server is below your tps amount
NewChunkRadius: 3
OldChunkRadius: 3
# Radius for chunks when the server is above your tps amount
NewChunkBurstRadius: 3
OldChunkBurstRadius: 6
# If the server is below this tps it will use the non burst radius.
NewChunkBurstTPS: 19
OldChunkBurstTPS: 18
# Show some info on the actionbar while flying with elytra.
ElytraActionBar: true
# Patches the future/rusherhack/kamiblue 2b2t elytra fly exploit
PatchPacketElytraFly: false
OnlyElytraPacketKick: false #If enabled, the plugin will not remove elytra from the player, but simply disconnect from the server.
PacketElytraActionBar:
enabled: false
message: "&cDisable Packet Elytra Fly." # for action bar and kick message
# Recommended to not go lower as there could be false positives.
MaxElytraOpensPer10Seconds: 25 # Will only allow players to go about 85km/h on kami blue, and won't even work on rusherhack.
# Patch future/rusher packet fly
PreventPacketFly: true
# Max teleport packets per 10 seconds, this is how the packet fly works, 25 is usually fine, if you go lower players may get stuck.
MaxTeleportPacketsPer10Seconds: 25
LogPacketFlyEvents: false
# Patch futureclient/rusherhack boat fly exploit
# This does not affect boats at all! Even on land.
BoatflyPatch: true
MaxEntityPacketsPer10Seconds: 15 # Only counts for boats
LogBoatFlyEvents: true
# List of banned blocks.
# WARNING: ADDING MOB SPAWNER TO THIS LIST WHILE HAVING RemoveALLIllegalBlocksOnCHUNKLOAD ENABLED WILL REMOVE ALL MOB SPAWNERS IN YOUR WORLD.
# You can also add non blocks and they should get removed from inventories aswell.
BANNED_BLOCKS: # SPIGOT ITEM NAMES!!! YOU WILL RECEIVE AN ERROR IF YOU DO NOT FOLLOW https://papermc.io/javadocs/paper/1.12/org/bukkit/Material.html
- BEDROCK
- BARRIER
- COMMAND
- STRUCTURE_BLOCK
- ENDER_PORTAL_FRAME # the issue where the plugin thinks a player has placed a end portal frame when activating the portal has been fixed.
DisableBannedBlocksWarnings: false # Disable warnings for some reason
BANNED_NAMES: # Remove items that were custom named to a specific string. Suggested by STORMIN.
- "Super Insane Mega Sussy Item" # case sensitive
OnlyRevertStacksForCertainItems: false
RevertStackedItemsList:
- TOTEM
# The item banned blocks are replaced with.
Replacement_Item: STONE
# Redstone
# Will kick player if they hit lever LeverLimitAmount times within LeverLimitTime
RateLimitLevers: false
LeverLimitAmount: 5
LeverLimitTime: 40
RateLimitKick: false
RateLimitKickMsg: "&cLevers are currently disabled due to an exploit"
# DISABLE STUFF AT CERTAIN TPS
# SET TO -1 TO ENABLE ALL THE TIME.
Redstone: 16
Elytra: 13
# Removes the elytra from the player's chestplate slot, there is no need to do this as this will make players fall to their death once tps is low.
RemoveElytra: false
Explosions: 17
FallingBlocks: 19
# Disable certain classes - Semi advanced users only. Useful if you are having problems with specific classes or would like the negligible performance improvement of not needing to register events in the class.
# Caps SENSITIVE - To disable ProtocolLib, set DisableAllProtocolLib to true.
DisabledClasses:
- "TestClass" # MUST BE CORRECT CAPITALS, CHECK SOURCE CODE, ERROR MESSAGES, OR TIMINGS REPORTS FOR CLASS NAMES.
# END OF CONFIG
# No need to mess with these they are meant for my server
# 1b1t options
AllowBreakingBedrock: false
1b1tPlaceBedrock: false
UseSparkhealth: false
nickresetonly: false
5000blocksawaytoteleport: false
# Enable the shitty 1b1t slow! dupe - 5% chance of duplicating items by punching an item frame.
SlowDupe: false
MakeSpecificCommandsHurtYou: false
HurtCommands:
- /tpa
DisableNCPGeyser: false
BypassSlots: false
Optimization Guide
You can find an optimization guide at the file GUIDE.md
Probably won't be added
- Auto-updater, because you shouldn't trust me and instead read the code yourself.