diff --git a/paper-server/patches/sources/com/mojang/brigadier/CommandDispatcher.java.patch b/paper-server/patches/sources/com/mojang/brigadier/CommandDispatcher.java.patch
new file mode 100644
index 0000000000..25e60973c6
--- /dev/null
+++ b/paper-server/patches/sources/com/mojang/brigadier/CommandDispatcher.java.patch
@@ -0,0 +1,19 @@
+--- a/com/mojang/brigadier/CommandDispatcher.java
++++ b/com/mojang/brigadier/CommandDispatcher.java
+@@ -3,6 +3,7 @@
+ 
+ package com.mojang.brigadier;
+ 
++// CHECKSTYLE:OFF
+ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+ import com.mojang.brigadier.context.CommandContext;
+ import com.mojang.brigadier.context.CommandContextBuilder;
+@@ -538,7 +539,7 @@
+         for (final CommandNode<S> node : parent.getChildren()) {
+             CompletableFuture<Suggestions> future = Suggestions.empty();
+             try {
+-                future = node.listSuggestions(context.build(truncatedInput), new SuggestionsBuilder(truncatedInput, truncatedInputLowerCase, start));
++                if (node.canUse(parse.getContext().getSource())) future = node.listSuggestions(context.build(truncatedInput), new SuggestionsBuilder(truncatedInput, truncatedInputLowerCase, start)); // CraftBukkit
+             } catch (final CommandSyntaxException ignored) {
+             }
+             futures[i++] = future;
diff --git a/paper-server/patches/sources/com/mojang/brigadier/tree/CommandNode.java.patch b/paper-server/patches/sources/com/mojang/brigadier/tree/CommandNode.java.patch
new file mode 100644
index 0000000000..bb35aa4fcd
--- /dev/null
+++ b/paper-server/patches/sources/com/mojang/brigadier/tree/CommandNode.java.patch
@@ -0,0 +1,52 @@
+--- a/com/mojang/brigadier/tree/CommandNode.java
++++ b/com/mojang/brigadier/tree/CommandNode.java
+@@ -3,6 +3,7 @@
+ 
+ package com.mojang.brigadier.tree;
+ 
++// CHECKSTYLE:OFF
+ import com.mojang.brigadier.AmbiguityConsumer;
+ import com.mojang.brigadier.Command;
+ import com.mojang.brigadier.RedirectModifier;
+@@ -23,6 +24,8 @@
+ import java.util.concurrent.CompletableFuture;
+ import java.util.function.Predicate;
+ 
++import net.minecraft.commands.CommandListenerWrapper; // CraftBukkit
++
+ public abstract class CommandNode<S> implements Comparable<CommandNode<S>> {
+     private final Map<String, CommandNode<S>> children = new LinkedHashMap<>();
+     private final Map<String, LiteralCommandNode<S>> literals = new LinkedHashMap<>();
+@@ -32,6 +35,13 @@
+     private final RedirectModifier<S> modifier;
+     private final boolean forks;
+     private Command<S> command;
++    // CraftBukkit start
++    public void removeCommand(String name) {
++        children.remove(name);
++        literals.remove(name);
++        arguments.remove(name);
++    }
++    // CraftBukkit end
+ 
+     protected CommandNode(final Command<S> command, final Predicate<S> requirement, final CommandNode<S> redirect, final RedirectModifier<S> modifier, final boolean forks) {
+         this.command = command;
+@@ -61,7 +71,17 @@
+         return modifier;
+     }
+ 
+-    public boolean canUse(final S source) {
++    // CraftBukkit start
++    public synchronized boolean canUse(final S source) {
++        if (source instanceof CommandListenerWrapper) {
++            try {
++                ((CommandListenerWrapper) source).currentCommand = this;
++                return requirement.test(source);
++            } finally {
++                ((CommandListenerWrapper) source).currentCommand = null;
++            }
++        }
++        // CraftBukkit end
+         return requirement.test(source);
+     }
+ 
diff --git a/paper-server/nms-patches/net/minecraft/CrashReport.patch b/paper-server/patches/sources/net/minecraft/CrashReport.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/CrashReport.patch
rename to paper-server/patches/sources/net/minecraft/CrashReport.patch
diff --git a/paper-server/nms-patches/net/minecraft/advancements/AdvancementHolder.patch b/paper-server/patches/sources/net/minecraft/advancements/AdvancementHolder.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/advancements/AdvancementHolder.patch
rename to paper-server/patches/sources/net/minecraft/advancements/AdvancementHolder.patch
diff --git a/paper-server/nms-patches/net/minecraft/advancements/AdvancementTree.patch b/paper-server/patches/sources/net/minecraft/advancements/AdvancementTree.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/advancements/AdvancementTree.patch
rename to paper-server/patches/sources/net/minecraft/advancements/AdvancementTree.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/CommandDispatcher.patch b/paper-server/patches/sources/net/minecraft/commands/CommandDispatcher.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/CommandDispatcher.patch
rename to paper-server/patches/sources/net/minecraft/commands/CommandDispatcher.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/CommandListenerWrapper.patch b/paper-server/patches/sources/net/minecraft/commands/CommandListenerWrapper.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/CommandListenerWrapper.patch
rename to paper-server/patches/sources/net/minecraft/commands/CommandListenerWrapper.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/ICommandListener.patch b/paper-server/patches/sources/net/minecraft/commands/ICommandListener.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/ICommandListener.patch
rename to paper-server/patches/sources/net/minecraft/commands/ICommandListener.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/arguments/ArgumentEntity.patch b/paper-server/patches/sources/net/minecraft/commands/arguments/ArgumentEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/arguments/ArgumentEntity.patch
rename to paper-server/patches/sources/net/minecraft/commands/arguments/ArgumentEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/arguments/blocks/ArgumentBlock.patch b/paper-server/patches/sources/net/minecraft/commands/arguments/blocks/ArgumentBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/arguments/blocks/ArgumentBlock.patch
rename to paper-server/patches/sources/net/minecraft/commands/arguments/blocks/ArgumentBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/arguments/selector/ArgumentParserSelector.patch b/paper-server/patches/sources/net/minecraft/commands/arguments/selector/ArgumentParserSelector.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/arguments/selector/ArgumentParserSelector.patch
rename to paper-server/patches/sources/net/minecraft/commands/arguments/selector/ArgumentParserSelector.patch
diff --git a/paper-server/nms-patches/net/minecraft/commands/arguments/selector/EntitySelector.patch b/paper-server/patches/sources/net/minecraft/commands/arguments/selector/EntitySelector.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/commands/arguments/selector/EntitySelector.patch
rename to paper-server/patches/sources/net/minecraft/commands/arguments/selector/EntitySelector.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/cauldron/CauldronInteraction.patch b/paper-server/patches/sources/net/minecraft/core/cauldron/CauldronInteraction.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/cauldron/CauldronInteraction.patch
rename to paper-server/patches/sources/net/minecraft/core/cauldron/CauldronInteraction.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/component/DataComponentPatch.patch b/paper-server/patches/sources/net/minecraft/core/component/DataComponentPatch.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/component/DataComponentPatch.patch
rename to paper-server/patches/sources/net/minecraft/core/component/DataComponentPatch.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorBoat.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorBoat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorBoat.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorBoat.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorItem.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorItem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorItem.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorItem.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorProjectile.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorProjectile.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorProjectile.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorProjectile.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorShears.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorShears.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorShears.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorShears.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorShulkerBox.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorShulkerBox.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/DispenseBehaviorShulkerBox.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/DispenseBehaviorShulkerBox.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/EquipmentDispenseItemBehavior.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/EquipmentDispenseItemBehavior.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/EquipmentDispenseItemBehavior.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/EquipmentDispenseItemBehavior.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/IDispenseBehavior.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/IDispenseBehavior.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/IDispenseBehavior.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/IDispenseBehavior.patch
diff --git a/paper-server/nms-patches/net/minecraft/core/dispenser/MinecartDispenseItemBehavior.patch b/paper-server/patches/sources/net/minecraft/core/dispenser/MinecartDispenseItemBehavior.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/core/dispenser/MinecartDispenseItemBehavior.patch
rename to paper-server/patches/sources/net/minecraft/core/dispenser/MinecartDispenseItemBehavior.patch
diff --git a/paper-server/nms-patches/net/minecraft/nbt/NBTCompressedStreamTools.patch b/paper-server/patches/sources/net/minecraft/nbt/NBTCompressedStreamTools.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/nbt/NBTCompressedStreamTools.patch
rename to paper-server/patches/sources/net/minecraft/nbt/NBTCompressedStreamTools.patch
diff --git a/paper-server/nms-patches/net/minecraft/nbt/NBTTagByteArray.patch b/paper-server/patches/sources/net/minecraft/nbt/NBTTagByteArray.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/nbt/NBTTagByteArray.patch
rename to paper-server/patches/sources/net/minecraft/nbt/NBTTagByteArray.patch
diff --git a/paper-server/nms-patches/net/minecraft/nbt/NBTTagIntArray.patch b/paper-server/patches/sources/net/minecraft/nbt/NBTTagIntArray.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/nbt/NBTTagIntArray.patch
rename to paper-server/patches/sources/net/minecraft/nbt/NBTTagIntArray.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/NetworkManager.patch b/paper-server/patches/sources/net/minecraft/network/NetworkManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/NetworkManager.patch
rename to paper-server/patches/sources/net/minecraft/network/NetworkManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/PacketDataSerializer.patch b/paper-server/patches/sources/net/minecraft/network/PacketDataSerializer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/PacketDataSerializer.patch
rename to paper-server/patches/sources/net/minecraft/network/PacketDataSerializer.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/chat/ChatHexColor.patch b/paper-server/patches/sources/net/minecraft/network/chat/ChatHexColor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/chat/ChatHexColor.patch
rename to paper-server/patches/sources/net/minecraft/network/chat/ChatHexColor.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/chat/IChatBaseComponent.patch b/paper-server/patches/sources/net/minecraft/network/chat/IChatBaseComponent.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/chat/IChatBaseComponent.patch
rename to paper-server/patches/sources/net/minecraft/network/chat/IChatBaseComponent.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/PlayerConnectionUtils.patch b/paper-server/patches/sources/net/minecraft/network/protocol/PlayerConnectionUtils.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/PlayerConnectionUtils.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/PlayerConnectionUtils.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.patch b/paper-server/patches/sources/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/common/custom/DiscardedPayload.patch b/paper-server/patches/sources/net/minecraft/network/protocol/common/custom/DiscardedPayload.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/common/custom/DiscardedPayload.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/common/custom/DiscardedPayload.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/ClientboundInitializeBorderPacket.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundInitializeBorderPacket.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/game/ClientboundInitializeBorderPacket.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundInitializeBorderPacket.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/ClientboundSetBorderCenterPacket.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetBorderCenterPacket.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/game/ClientboundSetBorderCenterPacket.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetBorderCenterPacket.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayInUseItem.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/PacketPlayInUseItem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayInUseItem.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/game/PacketPlayInUseItem.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/game/PacketPlayOutMultiBlockChange.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.patch b/paper-server/patches/sources/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.patch
rename to paper-server/patches/sources/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.patch
diff --git a/paper-server/nms-patches/net/minecraft/network/syncher/DataWatcher.patch b/paper-server/patches/sources/net/minecraft/network/syncher/DataWatcher.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/network/syncher/DataWatcher.patch
rename to paper-server/patches/sources/net/minecraft/network/syncher/DataWatcher.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/AdvancementDataPlayer.patch b/paper-server/patches/sources/net/minecraft/server/AdvancementDataPlayer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/AdvancementDataPlayer.patch
rename to paper-server/patches/sources/net/minecraft/server/AdvancementDataPlayer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/AdvancementDataWorld.patch b/paper-server/patches/sources/net/minecraft/server/AdvancementDataWorld.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/AdvancementDataWorld.patch
rename to paper-server/patches/sources/net/minecraft/server/AdvancementDataWorld.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/CustomFunctionData.patch b/paper-server/patches/sources/net/minecraft/server/CustomFunctionData.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/CustomFunctionData.patch
rename to paper-server/patches/sources/net/minecraft/server/CustomFunctionData.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/DispenserRegistry.patch b/paper-server/patches/sources/net/minecraft/server/DispenserRegistry.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/DispenserRegistry.patch
rename to paper-server/patches/sources/net/minecraft/server/DispenserRegistry.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/Main.patch b/paper-server/patches/sources/net/minecraft/server/Main.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/Main.patch
rename to paper-server/patches/sources/net/minecraft/server/Main.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/MinecraftServer.patch b/paper-server/patches/sources/net/minecraft/server/MinecraftServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/MinecraftServer.patch
rename to paper-server/patches/sources/net/minecraft/server/MinecraftServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/ScoreboardServer.patch b/paper-server/patches/sources/net/minecraft/server/ScoreboardServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/ScoreboardServer.patch
rename to paper-server/patches/sources/net/minecraft/server/ScoreboardServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/ServerTickRateManager.patch b/paper-server/patches/sources/net/minecraft/server/ServerTickRateManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/ServerTickRateManager.patch
rename to paper-server/patches/sources/net/minecraft/server/ServerTickRateManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/bossevents/BossBattleCustom.patch b/paper-server/patches/sources/net/minecraft/server/bossevents/BossBattleCustom.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/bossevents/BossBattleCustom.patch
rename to paper-server/patches/sources/net/minecraft/server/bossevents/BossBattleCustom.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandDifficulty.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandDifficulty.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandDifficulty.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandDifficulty.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandEffect.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandEffect.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandGamerule.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandGamerule.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandGamerule.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandGamerule.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandGive.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandGive.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandGive.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandGive.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandList.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandList.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandList.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandList.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandLoot.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandLoot.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandLoot.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandLoot.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandReload.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandReload.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandReload.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandReload.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandSchedule.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandSchedule.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandSchedule.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandSchedule.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandSetWorldSpawn.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandSetWorldSpawn.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandSetWorldSpawn.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandSetWorldSpawn.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandSpawnpoint.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandSpawnpoint.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandSpawnpoint.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandSpawnpoint.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandSpreadPlayers.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandSpreadPlayers.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandSpreadPlayers.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandSpreadPlayers.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandSummon.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandSummon.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandSummon.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandSummon.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandTeleport.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandTeleport.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandTeleport.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandTeleport.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandTime.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandTime.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandTime.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandTime.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandWeather.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandWeather.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandWeather.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandWeather.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandWorldBorder.patch b/paper-server/patches/sources/net/minecraft/server/commands/CommandWorldBorder.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/CommandWorldBorder.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/CommandWorldBorder.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/commands/PlaceCommand.patch b/paper-server/patches/sources/net/minecraft/server/commands/PlaceCommand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/commands/PlaceCommand.patch
rename to paper-server/patches/sources/net/minecraft/server/commands/PlaceCommand.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/dedicated/DedicatedServer.patch b/paper-server/patches/sources/net/minecraft/server/dedicated/DedicatedServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/dedicated/DedicatedServer.patch
rename to paper-server/patches/sources/net/minecraft/server/dedicated/DedicatedServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/dedicated/DedicatedServerProperties.patch b/paper-server/patches/sources/net/minecraft/server/dedicated/DedicatedServerProperties.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/dedicated/DedicatedServerProperties.patch
rename to paper-server/patches/sources/net/minecraft/server/dedicated/DedicatedServerProperties.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/dedicated/DedicatedServerSettings.patch b/paper-server/patches/sources/net/minecraft/server/dedicated/DedicatedServerSettings.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/dedicated/DedicatedServerSettings.patch
rename to paper-server/patches/sources/net/minecraft/server/dedicated/DedicatedServerSettings.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/dedicated/PropertyManager.patch b/paper-server/patches/sources/net/minecraft/server/dedicated/PropertyManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/dedicated/PropertyManager.patch
rename to paper-server/patches/sources/net/minecraft/server/dedicated/PropertyManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/gui/ServerGUI.patch b/paper-server/patches/sources/net/minecraft/server/gui/ServerGUI.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/gui/ServerGUI.patch
rename to paper-server/patches/sources/net/minecraft/server/gui/ServerGUI.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/ChunkMapDistance.patch b/paper-server/patches/sources/net/minecraft/server/level/ChunkMapDistance.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/ChunkMapDistance.patch
rename to paper-server/patches/sources/net/minecraft/server/level/ChunkMapDistance.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/ChunkProviderServer.patch b/paper-server/patches/sources/net/minecraft/server/level/ChunkProviderServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/ChunkProviderServer.patch
rename to paper-server/patches/sources/net/minecraft/server/level/ChunkProviderServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/EntityPlayer.patch b/paper-server/patches/sources/net/minecraft/server/level/EntityPlayer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/EntityPlayer.patch
rename to paper-server/patches/sources/net/minecraft/server/level/EntityPlayer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/EntityTrackerEntry.patch b/paper-server/patches/sources/net/minecraft/server/level/EntityTrackerEntry.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/EntityTrackerEntry.patch
rename to paper-server/patches/sources/net/minecraft/server/level/EntityTrackerEntry.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/PlayerChunk.patch b/paper-server/patches/sources/net/minecraft/server/level/PlayerChunk.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/PlayerChunk.patch
rename to paper-server/patches/sources/net/minecraft/server/level/PlayerChunk.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/PlayerChunkMap.patch b/paper-server/patches/sources/net/minecraft/server/level/PlayerChunkMap.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/PlayerChunkMap.patch
rename to paper-server/patches/sources/net/minecraft/server/level/PlayerChunkMap.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/PlayerInteractManager.patch b/paper-server/patches/sources/net/minecraft/server/level/PlayerInteractManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/PlayerInteractManager.patch
rename to paper-server/patches/sources/net/minecraft/server/level/PlayerInteractManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/RegionLimitedWorldAccess.patch b/paper-server/patches/sources/net/minecraft/server/level/RegionLimitedWorldAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/RegionLimitedWorldAccess.patch
rename to paper-server/patches/sources/net/minecraft/server/level/RegionLimitedWorldAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/TicketType.patch b/paper-server/patches/sources/net/minecraft/server/level/TicketType.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/TicketType.patch
rename to paper-server/patches/sources/net/minecraft/server/level/TicketType.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/level/WorldServer.patch b/paper-server/patches/sources/net/minecraft/server/level/WorldServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/level/WorldServer.patch
rename to paper-server/patches/sources/net/minecraft/server/level/WorldServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/HandshakeListener.patch b/paper-server/patches/sources/net/minecraft/server/network/HandshakeListener.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/HandshakeListener.patch
rename to paper-server/patches/sources/net/minecraft/server/network/HandshakeListener.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/LegacyPingHandler.patch b/paper-server/patches/sources/net/minecraft/server/network/LegacyPingHandler.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/LegacyPingHandler.patch
rename to paper-server/patches/sources/net/minecraft/server/network/LegacyPingHandler.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/LoginListener.patch b/paper-server/patches/sources/net/minecraft/server/network/LoginListener.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/LoginListener.patch
rename to paper-server/patches/sources/net/minecraft/server/network/LoginListener.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/PacketStatusListener.patch b/paper-server/patches/sources/net/minecraft/server/network/PacketStatusListener.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/PacketStatusListener.patch
rename to paper-server/patches/sources/net/minecraft/server/network/PacketStatusListener.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/PlayerConnection.patch b/paper-server/patches/sources/net/minecraft/server/network/PlayerConnection.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/PlayerConnection.patch
rename to paper-server/patches/sources/net/minecraft/server/network/PlayerConnection.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/ServerCommonPacketListenerImpl.patch b/paper-server/patches/sources/net/minecraft/server/network/ServerCommonPacketListenerImpl.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/ServerCommonPacketListenerImpl.patch
rename to paper-server/patches/sources/net/minecraft/server/network/ServerCommonPacketListenerImpl.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.patch b/paper-server/patches/sources/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.patch
rename to paper-server/patches/sources/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/network/ServerConnection.patch b/paper-server/patches/sources/net/minecraft/server/network/ServerConnection.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/network/ServerConnection.patch
rename to paper-server/patches/sources/net/minecraft/server/network/ServerConnection.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/ExpirableListEntry.patch b/paper-server/patches/sources/net/minecraft/server/players/ExpirableListEntry.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/ExpirableListEntry.patch
rename to paper-server/patches/sources/net/minecraft/server/players/ExpirableListEntry.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/GameProfileBanEntry.patch b/paper-server/patches/sources/net/minecraft/server/players/GameProfileBanEntry.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/GameProfileBanEntry.patch
rename to paper-server/patches/sources/net/minecraft/server/players/GameProfileBanEntry.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/JsonList.patch b/paper-server/patches/sources/net/minecraft/server/players/JsonList.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/JsonList.patch
rename to paper-server/patches/sources/net/minecraft/server/players/JsonList.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/NameReferencingFileConverter.patch b/paper-server/patches/sources/net/minecraft/server/players/NameReferencingFileConverter.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/NameReferencingFileConverter.patch
rename to paper-server/patches/sources/net/minecraft/server/players/NameReferencingFileConverter.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/PlayerList.patch b/paper-server/patches/sources/net/minecraft/server/players/PlayerList.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/PlayerList.patch
rename to paper-server/patches/sources/net/minecraft/server/players/PlayerList.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/SleepStatus.patch b/paper-server/patches/sources/net/minecraft/server/players/SleepStatus.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/SleepStatus.patch
rename to paper-server/patches/sources/net/minecraft/server/players/SleepStatus.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/players/UserCache.patch b/paper-server/patches/sources/net/minecraft/server/players/UserCache.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/players/UserCache.patch
rename to paper-server/patches/sources/net/minecraft/server/players/UserCache.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/rcon/RemoteControlCommandListener.patch b/paper-server/patches/sources/net/minecraft/server/rcon/RemoteControlCommandListener.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/rcon/RemoteControlCommandListener.patch
rename to paper-server/patches/sources/net/minecraft/server/rcon/RemoteControlCommandListener.patch
diff --git a/paper-server/nms-patches/net/minecraft/server/rcon/thread/RemoteControlSession.patch b/paper-server/patches/sources/net/minecraft/server/rcon/thread/RemoteControlSession.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/server/rcon/thread/RemoteControlSession.patch
rename to paper-server/patches/sources/net/minecraft/server/rcon/thread/RemoteControlSession.patch
diff --git a/paper-server/nms-patches/net/minecraft/stats/RecipeBookServer.patch b/paper-server/patches/sources/net/minecraft/stats/RecipeBookServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/stats/RecipeBookServer.patch
rename to paper-server/patches/sources/net/minecraft/stats/RecipeBookServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/stats/ServerStatisticManager.patch b/paper-server/patches/sources/net/minecraft/stats/ServerStatisticManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/stats/ServerStatisticManager.patch
rename to paper-server/patches/sources/net/minecraft/stats/ServerStatisticManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/stats/StatisticManager.patch b/paper-server/patches/sources/net/minecraft/stats/StatisticManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/stats/StatisticManager.patch
rename to paper-server/patches/sources/net/minecraft/stats/StatisticManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/util/SpawnUtil.patch b/paper-server/patches/sources/net/minecraft/util/SpawnUtil.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/util/SpawnUtil.patch
rename to paper-server/patches/sources/net/minecraft/util/SpawnUtil.patch
diff --git a/paper-server/nms-patches/net/minecraft/util/TickThrottler.patch b/paper-server/patches/sources/net/minecraft/util/TickThrottler.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/util/TickThrottler.patch
rename to paper-server/patches/sources/net/minecraft/util/TickThrottler.patch
diff --git a/paper-server/nms-patches/net/minecraft/util/datafix/DataConverterRegistry.patch b/paper-server/patches/sources/net/minecraft/util/datafix/DataConverterRegistry.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/util/datafix/DataConverterRegistry.patch
rename to paper-server/patches/sources/net/minecraft/util/datafix/DataConverterRegistry.patch
diff --git a/paper-server/nms-patches/net/minecraft/util/datafix/fixes/DataConverterFlatten.patch b/paper-server/patches/sources/net/minecraft/util/datafix/fixes/DataConverterFlatten.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/util/datafix/fixes/DataConverterFlatten.patch
rename to paper-server/patches/sources/net/minecraft/util/datafix/fixes/DataConverterFlatten.patch
diff --git a/paper-server/nms-patches/net/minecraft/util/datafix/fixes/DataConverterMap.patch b/paper-server/patches/sources/net/minecraft/util/datafix/fixes/DataConverterMap.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/util/datafix/fixes/DataConverterMap.patch
rename to paper-server/patches/sources/net/minecraft/util/datafix/fixes/DataConverterMap.patch
diff --git a/paper-server/nms-patches/net/minecraft/util/worldupdate/WorldUpgrader.patch b/paper-server/patches/sources/net/minecraft/util/worldupdate/WorldUpgrader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/util/worldupdate/WorldUpgrader.patch
rename to paper-server/patches/sources/net/minecraft/util/worldupdate/WorldUpgrader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/IInventory.patch b/paper-server/patches/sources/net/minecraft/world/IInventory.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/IInventory.patch
rename to paper-server/patches/sources/net/minecraft/world/IInventory.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/InventoryLargeChest.patch b/paper-server/patches/sources/net/minecraft/world/InventoryLargeChest.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/InventoryLargeChest.patch
rename to paper-server/patches/sources/net/minecraft/world/InventoryLargeChest.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/InventorySubcontainer.patch b/paper-server/patches/sources/net/minecraft/world/InventorySubcontainer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/InventorySubcontainer.patch
rename to paper-server/patches/sources/net/minecraft/world/InventorySubcontainer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/damagesource/DamageSource.patch b/paper-server/patches/sources/net/minecraft/world/damagesource/DamageSource.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/damagesource/DamageSource.patch
rename to paper-server/patches/sources/net/minecraft/world/damagesource/DamageSource.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/damagesource/DamageSources.patch b/paper-server/patches/sources/net/minecraft/world/damagesource/DamageSources.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/damagesource/DamageSources.patch
rename to paper-server/patches/sources/net/minecraft/world/damagesource/DamageSources.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/HealOrHarmMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/HealOrHarmMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/HealOrHarmMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/HealOrHarmMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/HungerMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/HungerMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/HungerMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/HungerMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/InfestedMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/InfestedMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/InfestedMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/InfestedMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/MobEffectUtil.patch b/paper-server/patches/sources/net/minecraft/world/effect/MobEffectUtil.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/MobEffectUtil.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/MobEffectUtil.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/OozingMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/OozingMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/OozingMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/OozingMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/PoisonMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/PoisonMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/PoisonMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/PoisonMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/RegenerationMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/RegenerationMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/RegenerationMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/RegenerationMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/effect/SaturationMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/effect/SaturationMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/effect/SaturationMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/effect/SaturationMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ConversionType.patch b/paper-server/patches/sources/net/minecraft/world/entity/ConversionType.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ConversionType.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ConversionType.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/Entity.patch b/paper-server/patches/sources/net/minecraft/world/entity/Entity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/Entity.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/Entity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityAgeable.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityAgeable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityAgeable.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityAgeable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityAreaEffectCloud.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityAreaEffectCloud.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityAreaEffectCloud.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityAreaEffectCloud.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityCreature.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityCreature.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityCreature.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityCreature.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityExperienceOrb.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityExperienceOrb.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityExperienceOrb.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityExperienceOrb.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityInsentient.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityInsentient.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityInsentient.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityInsentient.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityLightning.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityLightning.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityLightning.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityLightning.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityLiving.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityLiving.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityLiving.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityLiving.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityTameableAnimal.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityTameableAnimal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityTameableAnimal.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityTameableAnimal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/EntityTypes.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityTypes.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/EntityTypes.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/EntityTypes.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/IEntityAngerable.patch b/paper-server/patches/sources/net/minecraft/world/entity/IEntityAngerable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/IEntityAngerable.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/IEntityAngerable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/IEntitySelector.patch b/paper-server/patches/sources/net/minecraft/world/entity/IEntitySelector.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/IEntitySelector.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/IEntitySelector.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/Interaction.patch b/paper-server/patches/sources/net/minecraft/world/entity/Interaction.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/Interaction.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/Interaction.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/Leashable.patch b/paper-server/patches/sources/net/minecraft/world/entity/Leashable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/Leashable.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/Leashable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/SaddleStorage.patch b/paper-server/patches/sources/net/minecraft/world/entity/SaddleStorage.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/SaddleStorage.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/SaddleStorage.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/attributes/GenericAttributes.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/attributes/GenericAttributes.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/attributes/GenericAttributes.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/attributes/GenericAttributes.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetForget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetForget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetForget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetForget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetSet.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetSet.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetSet.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorAttackTargetSet.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorCareer.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorCareer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorCareer.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorCareer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorFarm.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorFarm.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorFarm.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorFarm.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorFindAdmirableItem.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorFindAdmirableItem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorFindAdmirableItem.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorFindAdmirableItem.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorFollowAdult.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorFollowAdult.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorFollowAdult.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorFollowAdult.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorInteractDoor.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorInteractDoor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorInteractDoor.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorInteractDoor.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorMakeLove.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorProfession.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorProfession.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorProfession.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorProfession.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorUtil.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorUtil.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/BehaviorUtil.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/BehaviorUtil.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/PrepareRamNearestTarget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/TryLaySpawnOnWaterNearLand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/warden/Digging.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/warden/Digging.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/behavior/warden/Digging.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/behavior/warden/Digging.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalBreakDoor.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalBreakDoor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalBreakDoor.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalBreakDoor.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalEatTile.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalEatTile.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalEatTile.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalEatTile.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalRemoveBlock.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalRemoveBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalRemoveBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalRemoveBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalSit.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalSit.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalSit.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalSit.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalTame.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalTame.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalTame.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalTame.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalTempt.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalTempt.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/PathfinderGoalTempt.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/PathfinderGoalTempt.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalDefendVillage.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalDefendVillage.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalDefendVillage.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalDefendVillage.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalHurtByTarget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalHurtByTarget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalHurtByTarget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalHurtByTarget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalNearestAttackableTarget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalNearestAttackableTarget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalNearestAttackableTarget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalNearestAttackableTarget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtByTarget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtByTarget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtByTarget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtByTarget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtTarget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtTarget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtTarget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalOwnerHurtTarget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalTarget.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalTarget.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/goal/target/PathfinderGoalTarget.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/goal/target/PathfinderGoalTarget.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/sensing/TemptingSensor.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/sensing/TemptingSensor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/sensing/TemptingSensor.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/sensing/TemptingSensor.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ai/village/VillageSiege.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/village/VillageSiege.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ai/village/VillageSiege.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ai/village/VillageSiege.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/ambient/EntityBat.patch b/paper-server/patches/sources/net/minecraft/world/entity/ambient/EntityBat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/ambient/EntityBat.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/ambient/EntityBat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/Bucketable.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/Bucketable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/Bucketable.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/Bucketable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityAnimal.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityAnimal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityAnimal.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityAnimal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityBee.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityBee.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityBee.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityBee.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityCat.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityCat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityCat.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityCat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityChicken.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityChicken.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityChicken.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityChicken.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityCow.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityCow.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityCow.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityCow.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityDolphin.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityDolphin.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityDolphin.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityDolphin.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityFox.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityFox.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityFox.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityFox.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityIronGolem.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityIronGolem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityIronGolem.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityIronGolem.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityMushroomCow.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityMushroomCow.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityMushroomCow.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityMushroomCow.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityOcelot.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityOcelot.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityOcelot.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityOcelot.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPanda.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPanda.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPanda.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPanda.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityParrot.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityParrot.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityParrot.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityParrot.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPerchable.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPerchable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPerchable.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPerchable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPig.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPig.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPig.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPig.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPufferFish.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPufferFish.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityPufferFish.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityPufferFish.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityRabbit.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityRabbit.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityRabbit.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityRabbit.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntitySheep.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntitySheep.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntitySheep.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntitySheep.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntitySnowman.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntitySnowman.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntitySnowman.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntitySnowman.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityTurtle.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityTurtle.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityTurtle.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityTurtle.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/EntityWolf.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/EntityWolf.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/EntityWolf.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/EntityWolf.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/allay/Allay.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/allay/Allay.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/allay/Allay.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/allay/Allay.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/armadillo/Armadillo.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/armadillo/Armadillo.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/armadillo/Armadillo.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/armadillo/Armadillo.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/axolotl/Axolotl.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/axolotl/Axolotl.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/axolotl/Axolotl.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/axolotl/Axolotl.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/camel/Camel.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/camel/Camel.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/camel/Camel.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/camel/Camel.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/frog/ShootTongue.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/frog/ShootTongue.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/frog/ShootTongue.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/frog/ShootTongue.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/frog/Tadpole.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/frog/Tadpole.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/frog/Tadpole.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/frog/Tadpole.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/goat/Goat.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/goat/Goat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/goat/Goat.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/goat/Goat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityHorseAbstract.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityHorseAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityHorseAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityHorseAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityHorseSkeleton.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityHorseSkeleton.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityHorseSkeleton.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityHorseSkeleton.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityLlama.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityLlama.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityLlama.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityLlama.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityLlamaTrader.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityLlamaTrader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/horse/EntityLlamaTrader.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/horse/EntityLlamaTrader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/horse/PathfinderGoalHorseTrap.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/horse/PathfinderGoalHorseTrap.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/horse/PathfinderGoalHorseTrap.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/horse/PathfinderGoalHorseTrap.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/animal/sniffer/Sniffer.patch b/paper-server/patches/sources/net/minecraft/world/entity/animal/sniffer/Sniffer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/animal/sniffer/Sniffer.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/animal/sniffer/Sniffer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/EntityEnderCrystal.patch b/paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/EntityEnderCrystal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/EntityEnderCrystal.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/EntityEnderCrystal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.patch b/paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerLandedFlame.patch b/paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerLandedFlame.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerLandedFlame.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerLandedFlame.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerManager.patch b/paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerManager.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/boss/enderdragon/phases/DragonControllerManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/boss/wither/EntityWither.patch b/paper-server/patches/sources/net/minecraft/world/entity/boss/wither/EntityWither.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/boss/wither/EntityWither.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/boss/wither/EntityWither.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/decoration/BlockAttachedEntity.patch b/paper-server/patches/sources/net/minecraft/world/entity/decoration/BlockAttachedEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/decoration/BlockAttachedEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/decoration/BlockAttachedEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityArmorStand.patch b/paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityArmorStand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityArmorStand.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityArmorStand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityItemFrame.patch b/paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityItemFrame.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityItemFrame.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityItemFrame.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityLeash.patch b/paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityLeash.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityLeash.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityLeash.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityPainting.patch b/paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityPainting.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/decoration/EntityPainting.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/decoration/EntityPainting.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/item/EntityFallingBlock.patch b/paper-server/patches/sources/net/minecraft/world/entity/item/EntityFallingBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/item/EntityFallingBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/item/EntityFallingBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/item/EntityItem.patch b/paper-server/patches/sources/net/minecraft/world/entity/item/EntityItem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/item/EntityItem.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/item/EntityItem.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/item/EntityTNTPrimed.patch b/paper-server/patches/sources/net/minecraft/world/entity/item/EntityTNTPrimed.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/item/EntityTNTPrimed.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/item/EntityTNTPrimed.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/Bogged.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/Bogged.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/Bogged.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/Bogged.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityCaveSpider.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityCaveSpider.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityCaveSpider.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityCaveSpider.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityCreeper.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityCreeper.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityCreeper.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityEnderman.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityEnderman.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityEnderman.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityEnderman.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityEndermite.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityEndermite.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityEndermite.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityEndermite.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityEvoker.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityEvoker.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityEvoker.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityEvoker.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityGhast.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityGhast.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityGhast.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityGhast.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityGuardian.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityGuardian.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityGuardian.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityGuardian.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityGuardianElder.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityGuardianElder.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityGuardianElder.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityGuardianElder.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityIllagerIllusioner.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityIllagerIllusioner.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityIllagerIllusioner.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityIllagerIllusioner.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityIllagerWizard.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityIllagerWizard.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityIllagerWizard.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityIllagerWizard.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityPhantom.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityPhantom.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityPhantom.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityPhantom.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityPigZombie.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityPigZombie.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityPigZombie.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityPigZombie.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityPillager.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityPillager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityPillager.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityPillager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityRavager.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityRavager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityRavager.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityRavager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityShulker.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityShulker.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityShulker.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityShulker.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySilverfish.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySilverfish.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySilverfish.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySilverfish.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySkeleton.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySkeleton.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySkeleton.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySkeleton.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySkeletonAbstract.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySkeletonAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySkeletonAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySkeletonAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySkeletonWither.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySkeletonWither.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySkeletonWither.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySkeletonWither.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySlime.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySlime.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySlime.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySlime.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySpider.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySpider.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntitySpider.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntitySpider.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityStrider.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityStrider.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityStrider.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityStrider.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityVex.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityVex.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityVex.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityVex.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityWitch.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityWitch.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityWitch.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityWitch.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityZombie.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityZombie.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityZombie.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityZombie.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityZombieHusk.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityZombieHusk.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityZombieHusk.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityZombieHusk.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/EntityZombieVillager.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/EntityZombieVillager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/EntityZombieVillager.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/EntityZombieVillager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/breeze/Breeze.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/breeze/Breeze.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/breeze/Breeze.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/breeze/Breeze.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/creaking/Creaking.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/creaking/Creaking.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/creaking/Creaking.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/creaking/Creaking.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/hoglin/EntityHoglin.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/hoglin/EntityHoglin.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/hoglin/EntityHoglin.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/hoglin/EntityHoglin.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/piglin/EntityPiglin.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/piglin/EntityPiglin.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/piglin/EntityPiglin.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/piglin/EntityPiglin.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/piglin/EntityPiglinAbstract.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/piglin/EntityPiglinAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/piglin/EntityPiglinAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/piglin/EntityPiglinAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/piglin/PiglinAI.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/piglin/PiglinAI.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/piglin/PiglinAI.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/piglin/PiglinAI.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/monster/warden/Warden.patch b/paper-server/patches/sources/net/minecraft/world/entity/monster/warden/Warden.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/monster/warden/Warden.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/monster/warden/Warden.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/npc/EntityVillager.patch b/paper-server/patches/sources/net/minecraft/world/entity/npc/EntityVillager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/npc/EntityVillager.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/npc/EntityVillager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/npc/EntityVillagerAbstract.patch b/paper-server/patches/sources/net/minecraft/world/entity/npc/EntityVillagerAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/npc/EntityVillagerAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/npc/EntityVillagerAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/npc/EntityVillagerTrader.patch b/paper-server/patches/sources/net/minecraft/world/entity/npc/EntityVillagerTrader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/npc/EntityVillagerTrader.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/npc/EntityVillagerTrader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/npc/InventoryCarrier.patch b/paper-server/patches/sources/net/minecraft/world/entity/npc/InventoryCarrier.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/npc/InventoryCarrier.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/npc/InventoryCarrier.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/npc/MobSpawnerTrader.patch b/paper-server/patches/sources/net/minecraft/world/entity/npc/MobSpawnerTrader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/npc/MobSpawnerTrader.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/npc/MobSpawnerTrader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/player/EntityHuman.patch b/paper-server/patches/sources/net/minecraft/world/entity/player/EntityHuman.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/player/EntityHuman.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/player/EntityHuman.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/player/PlayerInventory.patch b/paper-server/patches/sources/net/minecraft/world/entity/player/PlayerInventory.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/player/PlayerInventory.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/player/PlayerInventory.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityArrow.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityArrow.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityArrow.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityArrow.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityDragonFireball.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityDragonFireball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityDragonFireball.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityDragonFireball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEgg.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEgg.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEgg.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEgg.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEnderPearl.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEnderPearl.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEnderPearl.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEnderPearl.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEnderSignal.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEnderSignal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEnderSignal.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEnderSignal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEvokerFangs.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEvokerFangs.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityEvokerFangs.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityEvokerFangs.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFireball.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFireball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFireball.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFireball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFireballFireball.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFireballFireball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFireballFireball.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFireballFireball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFireworks.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFireworks.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFireworks.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFireworks.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFishingHook.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFishingHook.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityFishingHook.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityFishingHook.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityLargeFireball.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityLargeFireball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityLargeFireball.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityLargeFireball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityLlamaSpit.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityLlamaSpit.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityLlamaSpit.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityLlamaSpit.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityPotion.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityPotion.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityPotion.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityPotion.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityProjectile.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityProjectile.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityProjectile.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityProjectile.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityProjectileThrowable.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityProjectileThrowable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityProjectileThrowable.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityProjectileThrowable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityShulkerBullet.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntitySmallFireball.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntitySmallFireball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntitySmallFireball.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntitySmallFireball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntitySnowball.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntitySnowball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntitySnowball.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntitySnowball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntitySpectralArrow.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntitySpectralArrow.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntitySpectralArrow.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntitySpectralArrow.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityThrownExpBottle.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityThrownExpBottle.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityThrownExpBottle.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityThrownExpBottle.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityThrownTrident.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityThrownTrident.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityThrownTrident.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityThrownTrident.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityTippedArrow.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityTippedArrow.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityTippedArrow.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityTippedArrow.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityWitherSkull.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityWitherSkull.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/EntityWitherSkull.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/EntityWitherSkull.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/IProjectile.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/IProjectile.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/IProjectile.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/IProjectile.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/raid/EntityRaider.patch b/paper-server/patches/sources/net/minecraft/world/entity/raid/EntityRaider.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/raid/EntityRaider.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/raid/EntityRaider.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/raid/PersistentRaid.patch b/paper-server/patches/sources/net/minecraft/world/entity/raid/PersistentRaid.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/raid/PersistentRaid.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/raid/PersistentRaid.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/raid/Raid.patch b/paper-server/patches/sources/net/minecraft/world/entity/raid/Raid.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/raid/Raid.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/raid/Raid.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/AbstractBoat.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/AbstractBoat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/AbstractBoat.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/AbstractBoat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/AbstractChestBoat.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/AbstractChestBoat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/AbstractChestBoat.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/AbstractChestBoat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartCommandBlock.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartCommandBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartCommandBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartCommandBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartContainer.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartContainer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartContainer.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartContainer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/EntityMinecartTNT.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/NewMinecartBehavior.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/NewMinecartBehavior.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/NewMinecartBehavior.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/NewMinecartBehavior.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/OldMinecartBehavior.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/OldMinecartBehavior.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/OldMinecartBehavior.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/OldMinecartBehavior.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/entity/vehicle/VehicleEntity.patch b/paper-server/patches/sources/net/minecraft/world/entity/vehicle/VehicleEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/entity/vehicle/VehicleEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/entity/vehicle/VehicleEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/food/FoodInfo.patch b/paper-server/patches/sources/net/minecraft/world/food/FoodInfo.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/food/FoodInfo.patch
rename to paper-server/patches/sources/net/minecraft/world/food/FoodInfo.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/food/FoodMetaData.patch b/paper-server/patches/sources/net/minecraft/world/food/FoodMetaData.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/food/FoodMetaData.patch
rename to paper-server/patches/sources/net/minecraft/world/food/FoodMetaData.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/AbstractCraftingMenu.patch b/paper-server/patches/sources/net/minecraft/world/inventory/AbstractCraftingMenu.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/AbstractCraftingMenu.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/AbstractCraftingMenu.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/Container.patch b/paper-server/patches/sources/net/minecraft/world/inventory/Container.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/Container.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/Container.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerAccess.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerAccess.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerAnvil.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerAnvil.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerAnvil.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerAnvil.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerAnvilAbstract.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerAnvilAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerAnvilAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerAnvilAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerBeacon.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerBeacon.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerBeacon.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerBeacon.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerBrewingStand.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerBrewingStand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerBrewingStand.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerBrewingStand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerCartography.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerCartography.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerCartography.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerCartography.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerChest.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerChest.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerChest.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerChest.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerDispenser.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerDispenser.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerDispenser.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerDispenser.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerEnchantTable.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerEnchantTable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerEnchantTable.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerEnchantTable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerFurnace.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerFurnace.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerFurnace.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerFurnace.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerGrindstone.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerGrindstone.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerGrindstone.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerGrindstone.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerHopper.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerHopper.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerHopper.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerHopper.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerHorse.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerHorse.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerHorse.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerHorse.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerLectern.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerLectern.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerLectern.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerLectern.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerLoom.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerLoom.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerLoom.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerLoom.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerMerchant.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerMerchant.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerMerchant.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerMerchant.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerPlayer.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerPlayer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerPlayer.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerPlayer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerShulkerBox.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerShulkerBox.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerShulkerBox.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerShulkerBox.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerSmithing.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerSmithing.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerSmithing.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerSmithing.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerStonecutter.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerStonecutter.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerStonecutter.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerStonecutter.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/ContainerWorkbench.patch b/paper-server/patches/sources/net/minecraft/world/inventory/ContainerWorkbench.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/ContainerWorkbench.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/ContainerWorkbench.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/Containers.patch b/paper-server/patches/sources/net/minecraft/world/inventory/Containers.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/Containers.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/Containers.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/CrafterMenu.patch b/paper-server/patches/sources/net/minecraft/world/inventory/CrafterMenu.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/CrafterMenu.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/CrafterMenu.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/InventoryCraftResult.patch b/paper-server/patches/sources/net/minecraft/world/inventory/InventoryCraftResult.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/InventoryCraftResult.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/InventoryCraftResult.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/InventoryCrafting.patch b/paper-server/patches/sources/net/minecraft/world/inventory/InventoryCrafting.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/InventoryCrafting.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/InventoryCrafting.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/InventoryEnderChest.patch b/paper-server/patches/sources/net/minecraft/world/inventory/InventoryEnderChest.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/InventoryEnderChest.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/InventoryEnderChest.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/InventoryMerchant.patch b/paper-server/patches/sources/net/minecraft/world/inventory/InventoryMerchant.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/InventoryMerchant.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/InventoryMerchant.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/SlotFurnaceResult.patch b/paper-server/patches/sources/net/minecraft/world/inventory/SlotFurnaceResult.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/SlotFurnaceResult.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/SlotFurnaceResult.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/inventory/TransientCraftingContainer.patch b/paper-server/patches/sources/net/minecraft/world/inventory/TransientCraftingContainer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/inventory/TransientCraftingContainer.patch
rename to paper-server/patches/sources/net/minecraft/world/inventory/TransientCraftingContainer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemArmorStand.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemArmorStand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemArmorStand.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemArmorStand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemBlock.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemBlockWallable.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemBlockWallable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemBlockWallable.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemBlockWallable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemBoat.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemBoat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemBoat.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemBoat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemBoneMeal.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemBoneMeal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemBoneMeal.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemBoneMeal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemBucket.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemBucket.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemBucket.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemBucket.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemDebugStick.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemDebugStick.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemDebugStick.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemDebugStick.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemDye.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemDye.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemDye.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemDye.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemEgg.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemEgg.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemEgg.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemEgg.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemEndCrystal.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemEndCrystal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemEndCrystal.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemEndCrystal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemEnderEye.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemEnderEye.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemEnderEye.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemEnderEye.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemEnderPearl.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemEnderPearl.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemEnderPearl.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemEnderPearl.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemFireball.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemFireball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemFireball.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemFireball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemFishingRod.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemFishingRod.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemFishingRod.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemFishingRod.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemFlintAndSteel.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemFlintAndSteel.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemFlintAndSteel.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemFlintAndSteel.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemHanging.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemHanging.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemHanging.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemHanging.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemLeash.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemLeash.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemLeash.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemLeash.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemMinecart.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemMinecart.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemMinecart.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemMinecart.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemMonsterEgg.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemMonsterEgg.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemMonsterEgg.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemMonsterEgg.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemProjectileWeapon.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemProjectileWeapon.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemProjectileWeapon.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemProjectileWeapon.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemSign.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemSign.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemSign.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemSign.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemSnowball.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemSnowball.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemSnowball.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemSnowball.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemStack.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemStack.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemStack.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemStack.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/ItemTrident.patch b/paper-server/patches/sources/net/minecraft/world/item/ItemTrident.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/ItemTrident.patch
rename to paper-server/patches/sources/net/minecraft/world/item/ItemTrident.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/alchemy/PotionContents.patch b/paper-server/patches/sources/net/minecraft/world/item/alchemy/PotionContents.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/alchemy/PotionContents.patch
rename to paper-server/patches/sources/net/minecraft/world/item/alchemy/PotionContents.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/component/Consumable.patch b/paper-server/patches/sources/net/minecraft/world/item/component/Consumable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/component/Consumable.patch
rename to paper-server/patches/sources/net/minecraft/world/item/component/Consumable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/component/ConsumableListener.patch b/paper-server/patches/sources/net/minecraft/world/item/component/ConsumableListener.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/component/ConsumableListener.patch
rename to paper-server/patches/sources/net/minecraft/world/item/component/ConsumableListener.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/component/DeathProtection.patch b/paper-server/patches/sources/net/minecraft/world/item/component/DeathProtection.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/component/DeathProtection.patch
rename to paper-server/patches/sources/net/minecraft/world/item/component/DeathProtection.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/component/SuspiciousStewEffects.patch b/paper-server/patches/sources/net/minecraft/world/item/component/SuspiciousStewEffects.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/component/SuspiciousStewEffects.patch
rename to paper-server/patches/sources/net/minecraft/world/item/component/SuspiciousStewEffects.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/consume_effects/ApplyStatusEffectsConsumeEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/consume_effects/ApplyStatusEffectsConsumeEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/consume_effects/ApplyStatusEffectsConsumeEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/consume_effects/ApplyStatusEffectsConsumeEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/consume_effects/ClearAllStatusEffectsConsumeEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/consume_effects/ConsumeEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/consume_effects/ConsumeEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/consume_effects/ConsumeEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/consume_effects/ConsumeEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/consume_effects/RemoveStatusEffectsConsumeEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/consume_effects/RemoveStatusEffectsConsumeEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/consume_effects/RemoveStatusEffectsConsumeEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/consume_effects/RemoveStatusEffectsConsumeEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/consume_effects/TeleportRandomlyConsumeEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/consume_effects/TeleportRandomlyConsumeEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/consume_effects/TeleportRandomlyConsumeEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/consume_effects/TeleportRandomlyConsumeEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/CraftingManager.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/CraftingManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/CraftingManager.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/CraftingManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/FurnaceRecipe.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/FurnaceRecipe.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/FurnaceRecipe.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/FurnaceRecipe.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/IRecipe.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/IRecipe.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/IRecipe.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/IRecipe.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/IRecipeComplex.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/IRecipeComplex.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/IRecipeComplex.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/IRecipeComplex.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeBlasting.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeBlasting.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeBlasting.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeBlasting.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeCampfire.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeCampfire.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeCampfire.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeCampfire.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeHolder.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeHolder.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeHolder.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeHolder.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeItemStack.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeItemStack.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeItemStack.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeItemStack.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeMap.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeMap.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeMap.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeMap.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeSmoking.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeSmoking.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeSmoking.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeSmoking.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeStonecutting.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeStonecutting.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/RecipeStonecutting.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/RecipeStonecutting.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/ShapedRecipes.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/ShapedRecipes.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/ShapedRecipes.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/ShapedRecipes.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/ShapelessRecipes.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/ShapelessRecipes.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/ShapelessRecipes.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/ShapelessRecipes.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/SmithingTransformRecipe.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/SmithingTransformRecipe.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/SmithingTransformRecipe.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/SmithingTransformRecipe.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/SmithingTrimRecipe.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/SmithingTrimRecipe.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/SmithingTrimRecipe.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/SmithingTrimRecipe.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/crafting/TransmuteRecipe.patch b/paper-server/patches/sources/net/minecraft/world/item/crafting/TransmuteRecipe.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/crafting/TransmuteRecipe.patch
rename to paper-server/patches/sources/net/minecraft/world/item/crafting/TransmuteRecipe.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/ApplyMobEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/ApplyMobEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/ApplyMobEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/ApplyMobEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/Ignite.patch b/paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/Ignite.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/Ignite.patch
rename to paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/Ignite.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/ReplaceBlock.patch b/paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/ReplaceBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/ReplaceBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/ReplaceBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/ReplaceDisk.patch b/paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/ReplaceDisk.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/ReplaceDisk.patch
rename to paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/ReplaceDisk.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/SummonEntityEffect.patch b/paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/SummonEntityEffect.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/enchantment/effects/SummonEntityEffect.patch
rename to paper-server/patches/sources/net/minecraft/world/item/enchantment/effects/SummonEntityEffect.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/trading/IMerchant.patch b/paper-server/patches/sources/net/minecraft/world/item/trading/IMerchant.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/trading/IMerchant.patch
rename to paper-server/patches/sources/net/minecraft/world/item/trading/IMerchant.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/item/trading/MerchantRecipe.patch b/paper-server/patches/sources/net/minecraft/world/item/trading/MerchantRecipe.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/item/trading/MerchantRecipe.patch
rename to paper-server/patches/sources/net/minecraft/world/item/trading/MerchantRecipe.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/CommandBlockListenerAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/CommandBlockListenerAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/CommandBlockListenerAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/CommandBlockListenerAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/GameRules.patch b/paper-server/patches/sources/net/minecraft/world/level/GameRules.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/GameRules.patch
rename to paper-server/patches/sources/net/minecraft/world/level/GameRules.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/GeneratorAccess.patch b/paper-server/patches/sources/net/minecraft/world/level/GeneratorAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/GeneratorAccess.patch
rename to paper-server/patches/sources/net/minecraft/world/level/GeneratorAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/IBlockAccess.patch b/paper-server/patches/sources/net/minecraft/world/level/IBlockAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/IBlockAccess.patch
rename to paper-server/patches/sources/net/minecraft/world/level/IBlockAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/IWorldWriter.patch b/paper-server/patches/sources/net/minecraft/world/level/IWorldWriter.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/IWorldWriter.patch
rename to paper-server/patches/sources/net/minecraft/world/level/IWorldWriter.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/MobSpawnerAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/MobSpawnerAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/MobSpawnerAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/MobSpawnerAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/RayTrace.patch b/paper-server/patches/sources/net/minecraft/world/level/RayTrace.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/RayTrace.patch
rename to paper-server/patches/sources/net/minecraft/world/level/RayTrace.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/ServerExplosion.patch b/paper-server/patches/sources/net/minecraft/world/level/ServerExplosion.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/ServerExplosion.patch
rename to paper-server/patches/sources/net/minecraft/world/level/ServerExplosion.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/SpawnerCreature.patch b/paper-server/patches/sources/net/minecraft/world/level/SpawnerCreature.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/SpawnerCreature.patch
rename to paper-server/patches/sources/net/minecraft/world/level/SpawnerCreature.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/World.patch b/paper-server/patches/sources/net/minecraft/world/level/World.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/World.patch
rename to paper-server/patches/sources/net/minecraft/world/level/World.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/WorldAccess.patch b/paper-server/patches/sources/net/minecraft/world/level/WorldAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/WorldAccess.patch
rename to paper-server/patches/sources/net/minecraft/world/level/WorldAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/AbstractCandleBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/AbstractCandleBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/AbstractCandleBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/AbstractCandleBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BigDripleafBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BigDripleafBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BigDripleafBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BigDripleafBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/Block.patch b/paper-server/patches/sources/net/minecraft/world/level/block/Block.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/Block.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/Block.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockBamboo.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockBamboo.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockBamboo.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockBamboo.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockBambooSapling.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockBambooSapling.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockBambooSapling.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockBambooSapling.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockBed.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockBed.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockBed.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockBed.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockBeehive.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockBeehive.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockBeehive.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockBeehive.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockBell.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockBell.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockBell.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockBell.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockButtonAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockButtonAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockButtonAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockButtonAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCactus.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCactus.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCactus.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCactus.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCake.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCake.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCake.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCake.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCampfire.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCampfire.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCampfire.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCampfire.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCauldron.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCauldron.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCauldron.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCauldron.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockChest.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockChest.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockChest.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockChest.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockChorusFlower.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockChorusFlower.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockChorusFlower.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockChorusFlower.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCocoa.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCocoa.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCocoa.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCocoa.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCommand.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCommand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCommand.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCommand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockComposter.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockComposter.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockComposter.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockComposter.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockConcretePowder.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockConcretePowder.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockConcretePowder.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockConcretePowder.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCoral.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCoral.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCoral.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCoral.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCoralFan.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCoralFan.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCoralFan.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCoralFan.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCoralFanWall.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCoralFanWall.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCoralFanWall.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCoralFanWall.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCoralPlant.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCoralPlant.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCoralPlant.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCoralPlant.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockCrops.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockCrops.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockCrops.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockCrops.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDaylightDetector.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDaylightDetector.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDaylightDetector.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDaylightDetector.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDiodeAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDiodeAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDiodeAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDiodeAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDirtSnowSpreadable.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDirtSnowSpreadable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDirtSnowSpreadable.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDirtSnowSpreadable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDispenser.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDispenser.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDispenser.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDispenser.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDoor.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDoor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDoor.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDoor.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDragonEgg.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDragonEgg.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDragonEgg.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDragonEgg.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockDropper.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockDropper.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockDropper.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockDropper.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockEndGateway.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockEndGateway.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockEndGateway.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockEndGateway.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockEnderPortal.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockEnderPortal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockEnderPortal.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockEnderPortal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockFenceGate.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockFenceGate.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockFenceGate.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockFenceGate.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockFire.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockFire.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockFire.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockFire.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockFireAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockFireAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockFireAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockFireAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockFluids.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockFluids.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockFluids.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockFluids.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockFungi.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockFungi.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockFungi.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockFungi.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockGrassPath.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockGrassPath.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockGrassPath.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockGrassPath.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockGrowingTop.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockGrowingTop.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockGrowingTop.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockGrowingTop.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockIce.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockIce.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockIce.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockIce.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockLeaves.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockLeaves.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockLeaves.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockLeaves.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockLectern.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockLectern.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockLectern.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockLectern.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockLever.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockLever.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockLever.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockLever.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockMagma.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockMagma.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockMagma.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockMagma.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockMinecartDetector.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockMinecartDetector.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockMinecartDetector.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockMinecartDetector.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockMobSpawner.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockMobSpawner.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockMobSpawner.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockMobSpawner.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockMonsterEggs.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockMonsterEggs.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockMonsterEggs.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockMonsterEggs.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockMushroom.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockMushroom.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockMushroom.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockMushroom.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockNetherWart.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockNetherWart.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockNetherWart.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockNetherWart.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockNote.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockNote.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockNote.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockNote.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockNylium.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockNylium.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockNylium.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockNylium.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockObserver.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockObserver.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockObserver.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockObserver.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPlant.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPlant.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPlant.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPlant.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPortal.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPortal.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPortal.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPortal.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPoweredRail.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPoweredRail.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPoweredRail.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPoweredRail.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPressurePlateAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPressurePlateAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPressurePlateAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPressurePlateAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPressurePlateBinary.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPressurePlateBinary.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPressurePlateBinary.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPressurePlateBinary.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPressurePlateWeighted.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPressurePlateWeighted.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPressurePlateWeighted.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPressurePlateWeighted.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockPumpkinCarved.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockPumpkinCarved.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockPumpkinCarved.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockPumpkinCarved.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneComparator.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneComparator.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneComparator.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneComparator.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneLamp.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneLamp.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneLamp.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneLamp.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneOre.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneOre.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneOre.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneOre.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneTorch.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneTorch.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockRedstoneTorch.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockRedstoneTorch.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockReed.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockReed.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockReed.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockReed.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockRespawnAnchor.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockRespawnAnchor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockRespawnAnchor.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockRespawnAnchor.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockSapling.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockSapling.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockSapling.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockSapling.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockScaffolding.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockScaffolding.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockScaffolding.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockScaffolding.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockSign.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockSign.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockSign.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockSign.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockSnow.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockSnow.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockSnow.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockSnow.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockSoil.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockSoil.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockSoil.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockSoil.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockSponge.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockSponge.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockSponge.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockSponge.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockStem.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockStem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockStem.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockStem.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockSweetBerryBush.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockSweetBerryBush.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockSweetBerryBush.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockSweetBerryBush.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockTNT.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockTNT.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockTNT.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockTNT.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockTallPlant.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockTallPlant.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockTallPlant.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockTallPlant.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockTrapdoor.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockTrapdoor.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockTrapdoor.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockTrapdoor.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockTripwire.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockTripwire.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockTripwire.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockTripwire.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockTripwireHook.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockTripwireHook.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockTripwireHook.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockTripwireHook.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockTurtleEgg.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockTurtleEgg.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockTurtleEgg.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockTurtleEgg.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockVine.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockVine.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockVine.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockVine.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockWaterLily.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockWaterLily.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockWaterLily.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockWaterLily.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockWitherRose.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockWitherRose.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockWitherRose.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockWitherRose.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BlockWitherSkull.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BlockWitherSkull.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BlockWitherSkull.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BlockWitherSkull.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/BuddingAmethystBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/BuddingAmethystBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/BuddingAmethystBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/BuddingAmethystBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/CaveVines.patch b/paper-server/patches/sources/net/minecraft/world/level/block/CaveVines.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/CaveVines.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/CaveVines.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/CeilingHangingSignBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/CeilingHangingSignBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/CeilingHangingSignBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/CeilingHangingSignBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/ChangeOverTimeBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/ChangeOverTimeBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/ChangeOverTimeBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/ChangeOverTimeBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/CrafterBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/CrafterBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/CrafterBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/CrafterBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/DecoratedPotBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/DecoratedPotBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/DecoratedPotBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/DecoratedPotBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/DropExperienceBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/DropExperienceBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/DropExperienceBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/DropExperienceBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/LayeredCauldronBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/LayeredCauldronBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/LayeredCauldronBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/LayeredCauldronBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/LightningRodBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/LightningRodBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/LightningRodBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/LightningRodBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/MultifaceSpreader.patch b/paper-server/patches/sources/net/minecraft/world/level/block/MultifaceSpreader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/MultifaceSpreader.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/MultifaceSpreader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/PointedDripstoneBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/PointedDripstoneBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/PointedDripstoneBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/PointedDripstoneBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/PowderSnowBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/PowderSnowBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/PowderSnowBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/PowderSnowBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/RootedDirtBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/RootedDirtBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/RootedDirtBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/RootedDirtBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/SculkBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/SculkBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/SculkBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/SculkBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/SculkCatalystBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/SculkCatalystBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/SculkCatalystBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/SculkCatalystBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/SculkSensorBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/SculkSensorBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/SculkSensorBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/SculkSensorBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/SculkShriekerBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/SculkShriekerBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/SculkShriekerBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/SculkShriekerBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/SculkSpreader.patch b/paper-server/patches/sources/net/minecraft/world/level/block/SculkSpreader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/SculkSpreader.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/SculkSpreader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/SculkVeinBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/SculkVeinBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/SculkVeinBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/SculkVeinBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/WallHangingSignBlock.patch b/paper-server/patches/sources/net/minecraft/world/level/block/WallHangingSignBlock.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/WallHangingSignBlock.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/WallHangingSignBlock.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/BrushableBlockEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/BrushableBlockEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/BrushableBlockEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/BrushableBlockEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/ContainerOpenersCounter.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/ContainerOpenersCounter.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/ContainerOpenersCounter.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/ContainerOpenersCounter.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/CrafterBlockEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/CrafterBlockEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/CrafterBlockEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/CrafterBlockEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/DecoratedPotBlockEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/DecoratedPotBlockEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/DecoratedPotBlockEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/DecoratedPotBlockEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBanner.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBanner.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBanner.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBanner.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBarrel.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBarrel.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBarrel.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBarrel.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBeacon.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBeacon.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBeacon.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBeacon.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBeehive.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBeehive.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBeehive.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBeehive.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBell.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBell.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBell.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBell.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBrewingStand.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBrewingStand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityBrewingStand.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityBrewingStand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityCampfire.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityCampfire.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityCampfire.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityCampfire.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityChest.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityChest.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityChest.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityChest.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityCommand.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityCommand.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityCommand.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityCommand.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityConduit.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityConduit.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityConduit.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityConduit.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityContainer.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityContainer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityContainer.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityContainer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityDispenser.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityDispenser.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityDispenser.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityDispenser.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityEndGateway.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityEndGateway.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityEndGateway.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityEndGateway.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityFurnace.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityFurnace.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityFurnace.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityFurnace.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityHopper.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityHopper.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityHopper.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityHopper.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityJukeBox.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityJukeBox.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityJukeBox.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityJukeBox.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityLectern.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityLectern.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityLectern.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityLectern.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityShulkerBox.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityShulkerBox.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityShulkerBox.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityShulkerBox.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntitySign.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntitySign.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntitySign.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntitySign.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityTypes.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityTypes.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/TileEntityTypes.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/TileEntityTypes.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerData.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/entity/vault/VaultBlockEntity.patch b/paper-server/patches/sources/net/minecraft/world/level/block/entity/vault/VaultBlockEntity.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/entity/vault/VaultBlockEntity.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/entity/vault/VaultBlockEntity.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/grower/WorldGenTreeProvider.patch b/paper-server/patches/sources/net/minecraft/world/level/block/grower/WorldGenTreeProvider.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/grower/WorldGenTreeProvider.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/grower/WorldGenTreeProvider.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/piston/BlockPiston.patch b/paper-server/patches/sources/net/minecraft/world/level/block/piston/BlockPiston.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/piston/BlockPiston.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/piston/BlockPiston.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/block/state/BlockBase.patch b/paper-server/patches/sources/net/minecraft/world/level/block/state/BlockBase.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/block/state/BlockBase.patch
rename to paper-server/patches/sources/net/minecraft/world/level/block/state/BlockBase.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/border/WorldBorder.patch b/paper-server/patches/sources/net/minecraft/world/level/border/WorldBorder.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/border/WorldBorder.patch
rename to paper-server/patches/sources/net/minecraft/world/level/border/WorldBorder.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/Chunk.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/Chunk.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/Chunk.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/Chunk.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/ChunkGenerator.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/ChunkGenerator.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/ChunkGenerator.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/ChunkGenerator.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/ChunkSection.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/ChunkSection.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/ChunkSection.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/ChunkSection.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/IChunkAccess.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/IChunkAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/IChunkAccess.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/IChunkAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/NibbleArray.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/NibbleArray.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/NibbleArray.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/NibbleArray.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/status/ChunkStatusTasks.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/status/ChunkStatusTasks.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/status/ChunkStatusTasks.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/status/ChunkStatusTasks.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/storage/IChunkLoader.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/storage/IChunkLoader.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/storage/IChunkLoader.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/storage/IChunkLoader.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/storage/RegionFile.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/storage/RegionFile.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/storage/RegionFile.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/storage/RegionFile.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/storage/RegionFileCache.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/storage/RegionFileCache.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/storage/RegionFileCache.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/storage/RegionFileCache.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/chunk/storage/SerializableChunkData.patch b/paper-server/patches/sources/net/minecraft/world/level/chunk/storage/SerializableChunkData.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/chunk/storage/SerializableChunkData.patch
rename to paper-server/patches/sources/net/minecraft/world/level/chunk/storage/SerializableChunkData.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/dimension/end/EnderDragonBattle.patch b/paper-server/patches/sources/net/minecraft/world/level/dimension/end/EnderDragonBattle.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/dimension/end/EnderDragonBattle.patch
rename to paper-server/patches/sources/net/minecraft/world/level/dimension/end/EnderDragonBattle.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/dimension/end/EnumDragonRespawn.patch b/paper-server/patches/sources/net/minecraft/world/level/dimension/end/EnumDragonRespawn.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/dimension/end/EnumDragonRespawn.patch
rename to paper-server/patches/sources/net/minecraft/world/level/dimension/end/EnumDragonRespawn.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/entity/EntityAccess.patch b/paper-server/patches/sources/net/minecraft/world/level/entity/EntityAccess.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/entity/EntityAccess.patch
rename to paper-server/patches/sources/net/minecraft/world/level/entity/EntityAccess.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/entity/PersistentEntitySectionManager.patch b/paper-server/patches/sources/net/minecraft/world/level/entity/PersistentEntitySectionManager.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/entity/PersistentEntitySectionManager.patch
rename to paper-server/patches/sources/net/minecraft/world/level/entity/PersistentEntitySectionManager.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/gameevent/GameEventDispatcher.patch b/paper-server/patches/sources/net/minecraft/world/level/gameevent/GameEventDispatcher.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/gameevent/GameEventDispatcher.patch
rename to paper-server/patches/sources/net/minecraft/world/level/gameevent/GameEventDispatcher.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/gameevent/vibrations/VibrationSystem.patch b/paper-server/patches/sources/net/minecraft/world/level/gameevent/vibrations/VibrationSystem.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/gameevent/vibrations/VibrationSystem.patch
rename to paper-server/patches/sources/net/minecraft/world/level/gameevent/vibrations/VibrationSystem.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/ChunkGeneratorAbstract.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/ChunkGeneratorAbstract.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/ChunkGeneratorAbstract.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/ChunkGeneratorAbstract.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/ChunkProviderFlat.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/ChunkProviderFlat.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/ChunkProviderFlat.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/ChunkProviderFlat.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/MobSpawnerPatrol.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/MobSpawnerPatrol.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/MobSpawnerPatrol.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/MobSpawnerPatrol.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/MobSpawnerPhantom.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/MobSpawnerPhantom.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/MobSpawnerPhantom.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/MobSpawnerPhantom.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/PersistentStructureLegacy.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/PersistentStructureLegacy.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/PersistentStructureLegacy.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/PersistentStructureLegacy.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/StructurePiece.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/StructurePiece.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/StructurePiece.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/StructurePiece.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/StructureStart.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/StructureStart.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/StructureStart.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/StructureStart.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/DesertPyramidStructure.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/DesertPyramidStructure.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/DesertPyramidStructure.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/DesertPyramidStructure.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/EndCityPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/EndCityPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/EndCityPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/EndCityPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/IglooPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/IglooPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/IglooPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/IglooPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/MineshaftPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/MineshaftPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/MineshaftPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/MineshaftPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/NetherFortressPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/NetherFortressPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/NetherFortressPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/NetherFortressPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/ShipwreckPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/ShipwreckPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/ShipwreckPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/ShipwreckPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/StrongholdPieces.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/StrongholdPieces.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/StrongholdPieces.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/StrongholdPieces.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructure.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructureInfo.patch b/paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructureInfo.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructureInfo.patch
rename to paper-server/patches/sources/net/minecraft/world/level/levelgen/structure/templatesystem/DefinedStructureInfo.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/material/FluidTypeFlowing.patch b/paper-server/patches/sources/net/minecraft/world/level/material/FluidTypeFlowing.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/material/FluidTypeFlowing.patch
rename to paper-server/patches/sources/net/minecraft/world/level/material/FluidTypeFlowing.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/material/FluidTypeLava.patch b/paper-server/patches/sources/net/minecraft/world/level/material/FluidTypeLava.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/material/FluidTypeLava.patch
rename to paper-server/patches/sources/net/minecraft/world/level/material/FluidTypeLava.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/portal/BlockPortalShape.patch b/paper-server/patches/sources/net/minecraft/world/level/portal/BlockPortalShape.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/portal/BlockPortalShape.patch
rename to paper-server/patches/sources/net/minecraft/world/level/portal/BlockPortalShape.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/portal/PortalTravelAgent.patch b/paper-server/patches/sources/net/minecraft/world/level/portal/PortalTravelAgent.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/portal/PortalTravelAgent.patch
rename to paper-server/patches/sources/net/minecraft/world/level/portal/PortalTravelAgent.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/portal/TeleportTransition.patch b/paper-server/patches/sources/net/minecraft/world/level/portal/TeleportTransition.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/portal/TeleportTransition.patch
rename to paper-server/patches/sources/net/minecraft/world/level/portal/TeleportTransition.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/redstone/DefaultRedstoneWireEvaluator.patch b/paper-server/patches/sources/net/minecraft/world/level/redstone/DefaultRedstoneWireEvaluator.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/redstone/DefaultRedstoneWireEvaluator.patch
rename to paper-server/patches/sources/net/minecraft/world/level/redstone/DefaultRedstoneWireEvaluator.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.patch b/paper-server/patches/sources/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.patch
rename to paper-server/patches/sources/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/redstone/NeighborUpdater.patch b/paper-server/patches/sources/net/minecraft/world/level/redstone/NeighborUpdater.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/redstone/NeighborUpdater.patch
rename to paper-server/patches/sources/net/minecraft/world/level/redstone/NeighborUpdater.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/saveddata/maps/WorldMap.patch b/paper-server/patches/sources/net/minecraft/world/level/saveddata/maps/WorldMap.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/saveddata/maps/WorldMap.patch
rename to paper-server/patches/sources/net/minecraft/world/level/saveddata/maps/WorldMap.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/storage/Convertable.patch b/paper-server/patches/sources/net/minecraft/world/level/storage/Convertable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/storage/Convertable.patch
rename to paper-server/patches/sources/net/minecraft/world/level/storage/Convertable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/storage/WorldDataServer.patch b/paper-server/patches/sources/net/minecraft/world/level/storage/WorldDataServer.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/storage/WorldDataServer.patch
rename to paper-server/patches/sources/net/minecraft/world/level/storage/WorldDataServer.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/storage/WorldNBTStorage.patch b/paper-server/patches/sources/net/minecraft/world/level/storage/WorldNBTStorage.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/storage/WorldNBTStorage.patch
rename to paper-server/patches/sources/net/minecraft/world/level/storage/WorldNBTStorage.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/storage/loot/LootDataType.patch b/paper-server/patches/sources/net/minecraft/world/level/storage/loot/LootDataType.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/storage/loot/LootDataType.patch
rename to paper-server/patches/sources/net/minecraft/world/level/storage/loot/LootDataType.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/storage/loot/LootTable.patch b/paper-server/patches/sources/net/minecraft/world/level/storage/loot/LootTable.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/storage/loot/LootTable.patch
rename to paper-server/patches/sources/net/minecraft/world/level/storage/loot/LootTable.patch
diff --git a/paper-server/nms-patches/net/minecraft/world/level/storage/loot/predicates/LootItemConditionSurvivesExplosion.patch b/paper-server/patches/sources/net/minecraft/world/level/storage/loot/predicates/LootItemConditionSurvivesExplosion.patch
similarity index 100%
rename from paper-server/nms-patches/net/minecraft/world/level/storage/loot/predicates/LootItemConditionSurvivesExplosion.patch
rename to paper-server/patches/sources/net/minecraft/world/level/storage/loot/predicates/LootItemConditionSurvivesExplosion.patch
diff --git a/paper-server/src/main/java/com/mojang/brigadier/CommandDispatcher.java b/paper-server/src/main/java/com/mojang/brigadier/CommandDispatcher.java
deleted file mode 100644
index b851f9a406..0000000000
--- a/paper-server/src/main/java/com/mojang/brigadier/CommandDispatcher.java
+++ /dev/null
@@ -1,651 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT license.
-
-package com.mojang.brigadier;
-
-// CHECKSTYLE:OFF
-import com.mojang.brigadier.builder.LiteralArgumentBuilder;
-import com.mojang.brigadier.context.CommandContext;
-import com.mojang.brigadier.context.CommandContextBuilder;
-import com.mojang.brigadier.context.ContextChain;
-import com.mojang.brigadier.context.SuggestionContext;
-import com.mojang.brigadier.exceptions.CommandSyntaxException;
-import com.mojang.brigadier.suggestion.Suggestions;
-import com.mojang.brigadier.suggestion.SuggestionsBuilder;
-import com.mojang.brigadier.tree.CommandNode;
-import com.mojang.brigadier.tree.LiteralCommandNode;
-import com.mojang.brigadier.tree.RootCommandNode;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-
-
-/**
- * The core command dispatcher, for registering, parsing, and executing commands.
- *
- * @param <S> a custom "source" type, such as a user or originator of a command
- */
-public class CommandDispatcher<S> {
-    /**
-     * The string required to separate individual arguments in an input string
-     *
-     * @see #ARGUMENT_SEPARATOR_CHAR
-     */
-    public static final String ARGUMENT_SEPARATOR = " ";
-
-    /**
-     * The char required to separate individual arguments in an input string
-     *
-     * @see #ARGUMENT_SEPARATOR
-     */
-    public static final char ARGUMENT_SEPARATOR_CHAR = ' ';
-
-    private static final String USAGE_OPTIONAL_OPEN = "[";
-    private static final String USAGE_OPTIONAL_CLOSE = "]";
-    private static final String USAGE_REQUIRED_OPEN = "(";
-    private static final String USAGE_REQUIRED_CLOSE = ")";
-    private static final String USAGE_OR = "|";
-
-    private final RootCommandNode<S> root;
-
-    private final Predicate<CommandNode<S>> hasCommand = new Predicate<CommandNode<S>>() {
-        @Override
-        public boolean test(final CommandNode<S> input) {
-            return input != null && (input.getCommand() != null || input.getChildren().stream().anyMatch(hasCommand));
-        }
-    };
-    private ResultConsumer<S> consumer = (c, s, r) -> {
-    };
-
-    /**
-     * Create a new {@link CommandDispatcher} with the specified root node.
-     *
-     * <p>This is often useful to copy existing or pre-defined command trees.</p>
-     *
-     * @param root the existing {@link RootCommandNode} to use as the basis for this tree
-     */
-    public CommandDispatcher(final RootCommandNode<S> root) {
-        this.root = root;
-    }
-
-    /**
-     * Creates a new {@link CommandDispatcher} with an empty command tree.
-     */
-    public CommandDispatcher() {
-        this(new RootCommandNode<>());
-    }
-
-    /**
-     * Utility method for registering new commands.
-     *
-     * <p>This is a shortcut for calling {@link RootCommandNode#addChild(CommandNode)} after building the provided {@code command}.</p>
-     *
-     * <p>As {@link RootCommandNode} can only hold literals, this method will only allow literal arguments.</p>
-     *
-     * @param command a literal argument builder to add to this command tree
-     * @return the node added to this tree
-     */
-    public LiteralCommandNode<S> register(final LiteralArgumentBuilder<S> command) {
-        final LiteralCommandNode<S> build = command.build();
-        root.addChild(build);
-        return build;
-    }
-
-    /**
-     * Sets a callback to be informed of the result of every command.
-     *
-     * @param consumer the new result consumer to be called
-     */
-    public void setConsumer(final ResultConsumer<S> consumer) {
-        this.consumer = consumer;
-    }
-
-    /**
-     * Parses and executes a given command.
-     *
-     * <p>This is a shortcut to first {@link #parse(StringReader, Object)} and then {@link #execute(ParseResults)}.</p>
-     *
-     * <p>It is recommended to parse and execute as separate steps, as parsing is often the most expensive step, and easiest to cache.</p>
-     *
-     * <p>If this command returns a value, then it successfully executed something. If it could not parse the command, or the execution was a failure,
-     * then an exception will be thrown. Most exceptions will be of type {@link CommandSyntaxException}, but it is possible that a {@link RuntimeException}
-     * may bubble up from the result of a command. The meaning behind the returned result is arbitrary, and will depend
-     * entirely on what command was performed.</p>
-     *
-     * <p>If the command passes through a node that is {@link CommandNode#isFork()} then it will be 'forked'.
-     * A forked command will not bubble up any {@link CommandSyntaxException}s, and the 'result' returned will turn into
-     * 'amount of successful commands executes'.</p>
-     *
-     * <p>After each and any command is ran, a registered callback given to {@link #setConsumer(ResultConsumer)}
-     * will be notified of the result and success of the command. You can use that method to gather more meaningful
-     * results than this method will return, especially when a command forks.</p>
-     *
-     * @param input a command string to parse &amp; execute
-     * @param source a custom "source" object, usually representing the originator of this command
-     * @return a numeric result from a "command" that was performed
-     * @throws CommandSyntaxException if the command failed to parse or execute
-     * @throws RuntimeException if the command failed to execute and was not handled gracefully
-     * @see #parse(String, Object)
-     * @see #parse(StringReader, Object)
-     * @see #execute(ParseResults)
-     * @see #execute(StringReader, Object)
-     */
-    public int execute(final String input, final S source) throws CommandSyntaxException {
-        return execute(new StringReader(input), source);
-    }
-
-    /**
-     * Parses and executes a given command.
-     *
-     * <p>This is a shortcut to first {@link #parse(StringReader, Object)} and then {@link #execute(ParseResults)}.</p>
-     *
-     * <p>It is recommended to parse and execute as separate steps, as parsing is often the most expensive step, and easiest to cache.</p>
-     *
-     * <p>If this command returns a value, then it successfully executed something. If it could not parse the command, or the execution was a failure,
-     * then an exception will be thrown. Most exceptions will be of type {@link CommandSyntaxException}, but it is possible that a {@link RuntimeException}
-     * may bubble up from the result of a command. The meaning behind the returned result is arbitrary, and will depend
-     * entirely on what command was performed.</p>
-     *
-     * <p>If the command passes through a node that is {@link CommandNode#isFork()} then it will be 'forked'.
-     * A forked command will not bubble up any {@link CommandSyntaxException}s, and the 'result' returned will turn into
-     * 'amount of successful commands executes'.</p>
-     *
-     * <p>After each and any command is ran, a registered callback given to {@link #setConsumer(ResultConsumer)}
-     * will be notified of the result and success of the command. You can use that method to gather more meaningful
-     * results than this method will return, especially when a command forks.</p>
-     *
-     * @param input a command string to parse &amp; execute
-     * @param source a custom "source" object, usually representing the originator of this command
-     * @return a numeric result from a "command" that was performed
-     * @throws CommandSyntaxException if the command failed to parse or execute
-     * @throws RuntimeException if the command failed to execute and was not handled gracefully
-     * @see #parse(String, Object)
-     * @see #parse(StringReader, Object)
-     * @see #execute(ParseResults)
-     * @see #execute(String, Object)
-     */
-    public int execute(final StringReader input, final S source) throws CommandSyntaxException {
-        final ParseResults<S> parse = parse(input, source);
-        return execute(parse);
-    }
-
-    /**
-     * Executes a given pre-parsed command.
-     *
-     * <p>If this command returns a value, then it successfully executed something. If the execution was a failure,
-     * then an exception will be thrown.
-     * Most exceptions will be of type {@link CommandSyntaxException}, but it is possible that a {@link RuntimeException}
-     * may bubble up from the result of a command. The meaning behind the returned result is arbitrary, and will depend
-     * entirely on what command was performed.</p>
-     *
-     * <p>If the command passes through a node that is {@link CommandNode#isFork()} then it will be 'forked'.
-     * A forked command will not bubble up any {@link CommandSyntaxException}s, and the 'result' returned will turn into
-     * 'amount of successful commands executes'.</p>
-     *
-     * <p>After each and any command is ran, a registered callback given to {@link #setConsumer(ResultConsumer)}
-     * will be notified of the result and success of the command. You can use that method to gather more meaningful
-     * results than this method will return, especially when a command forks.</p>
-     *
-     * @param parse the result of a successful {@link #parse(StringReader, Object)}
-     * @return a numeric result from a "command" that was performed.
-     * @throws CommandSyntaxException if the command failed to parse or execute
-     * @throws RuntimeException if the command failed to execute and was not handled gracefully
-     * @see #parse(String, Object)
-     * @see #parse(StringReader, Object)
-     * @see #execute(String, Object)
-     * @see #execute(StringReader, Object)
-     */
-    public int execute(final ParseResults<S> parse) throws CommandSyntaxException {
-        if (parse.getReader().canRead()) {
-            if (parse.getExceptions().size() == 1) {
-                throw parse.getExceptions().values().iterator().next();
-            } else if (parse.getContext().getRange().isEmpty()) {
-                throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownCommand().createWithContext(parse.getReader());
-            } else {
-                throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownArgument().createWithContext(parse.getReader());
-            }
-        }
-
-        final String command = parse.getReader().getString();
-        final CommandContext<S> original = parse.getContext().build(command);
-
-        final Optional<ContextChain<S>> flatContext = ContextChain.tryFlatten(original);
-        if (!flatContext.isPresent()) {
-            consumer.onCommandComplete(original, false, 0);
-            throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherUnknownCommand().createWithContext(parse.getReader());
-        }
-
-        return flatContext.get().executeAll(original.getSource(), consumer);
-    }
-
-    /**
-     * Parses a given command.
-     *
-     * <p>The result of this method can be cached, and it is advised to do so where appropriate. Parsing is often the
-     * most expensive step, and this allows you to essentially "precompile" a command if it will be ran often.</p>
-     *
-     * <p>If the command passes through a node that is {@link CommandNode#isFork()} then the resulting context will be marked as 'forked'.
-     * Forked contexts may contain child contexts, which may be modified by the {@link RedirectModifier} attached to the fork.</p>
-     *
-     * <p>Parsing a command can never fail, you will always be provided with a new {@link ParseResults}.
-     * However, that does not mean that it will always parse into a valid command. You should inspect the returned results
-     * to check for validity. If its {@link ParseResults#getReader()} {@link StringReader#canRead()} then it did not finish
-     * parsing successfully. You can use that position as an indicator to the user where the command stopped being valid.
-     * You may inspect {@link ParseResults#getExceptions()} if you know the parse failed, as it will explain why it could
-     * not find any valid commands. It may contain multiple exceptions, one for each "potential node" that it could have visited,
-     * explaining why it did not go down that node.</p>
-     *
-     * <p>When you eventually call {@link #execute(ParseResults)} with the result of this method, the above error checking
-     * will occur. You only need to inspect it yourself if you wish to handle that yourself.</p>
-     *
-     * @param command a command string to parse
-     * @param source a custom "source" object, usually representing the originator of this command
-     * @return the result of parsing this command
-     * @see #parse(StringReader, Object)
-     * @see #execute(ParseResults)
-     * @see #execute(String, Object)
-     */
-    public ParseResults<S> parse(final String command, final S source) {
-        return parse(new StringReader(command), source);
-    }
-
-    /**
-     * Parses a given command.
-     *
-     * <p>The result of this method can be cached, and it is advised to do so where appropriate. Parsing is often the
-     * most expensive step, and this allows you to essentially "precompile" a command if it will be ran often.</p>
-     *
-     * <p>If the command passes through a node that is {@link CommandNode#isFork()} then the resulting context will be marked as 'forked'.
-     * Forked contexts may contain child contexts, which may be modified by the {@link RedirectModifier} attached to the fork.</p>
-     *
-     * <p>Parsing a command can never fail, you will always be provided with a new {@link ParseResults}.
-     * However, that does not mean that it will always parse into a valid command. You should inspect the returned results
-     * to check for validity. If its {@link ParseResults#getReader()} {@link StringReader#canRead()} then it did not finish
-     * parsing successfully. You can use that position as an indicator to the user where the command stopped being valid.
-     * You may inspect {@link ParseResults#getExceptions()} if you know the parse failed, as it will explain why it could
-     * not find any valid commands. It may contain multiple exceptions, one for each "potential node" that it could have visited,
-     * explaining why it did not go down that node.</p>
-     *
-     * <p>When you eventually call {@link #execute(ParseResults)} with the result of this method, the above error checking
-     * will occur. You only need to inspect it yourself if you wish to handle that yourself.</p>
-     *
-     * @param command a command string to parse
-     * @param source a custom "source" object, usually representing the originator of this command
-     * @return the result of parsing this command
-     * @see #parse(String, Object)
-     * @see #execute(ParseResults)
-     * @see #execute(String, Object)
-     */
-    public ParseResults<S> parse(final StringReader command, final S source) {
-        final CommandContextBuilder<S> context = new CommandContextBuilder<>(this, source, root, command.getCursor());
-        return parseNodes(root, command, context);
-    }
-
-    private ParseResults<S> parseNodes(final CommandNode<S> node, final StringReader originalReader, final CommandContextBuilder<S> contextSoFar) {
-        final S source = contextSoFar.getSource();
-        Map<CommandNode<S>, CommandSyntaxException> errors = null;
-        List<ParseResults<S>> potentials = null;
-        final int cursor = originalReader.getCursor();
-
-        for (final CommandNode<S> child : node.getRelevantNodes(originalReader)) {
-            if (!child.canUse(source)) {
-                continue;
-            }
-            final CommandContextBuilder<S> context = contextSoFar.copy();
-            final StringReader reader = new StringReader(originalReader);
-            try {
-                try {
-                    child.parse(reader, context);
-                } catch (final RuntimeException ex) {
-                    throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherParseException().createWithContext(reader, ex.getMessage());
-                }
-                if (reader.canRead()) {
-                    if (reader.peek() != ARGUMENT_SEPARATOR_CHAR) {
-                        throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.dispatcherExpectedArgumentSeparator().createWithContext(reader);
-                    }
-                }
-            } catch (final CommandSyntaxException ex) {
-                if (errors == null) {
-                    errors = new LinkedHashMap<>();
-                }
-                errors.put(child, ex);
-                reader.setCursor(cursor);
-                continue;
-            }
-
-            context.withCommand(child.getCommand());
-            if (reader.canRead(child.getRedirect() == null ? 2 : 1)) {
-                reader.skip();
-                if (child.getRedirect() != null) {
-                    final CommandContextBuilder<S> childContext = new CommandContextBuilder<>(this, source, child.getRedirect(), reader.getCursor());
-                    final ParseResults<S> parse = parseNodes(child.getRedirect(), reader, childContext);
-                    context.withChild(parse.getContext());
-                    return new ParseResults<>(context, parse.getReader(), parse.getExceptions());
-                } else {
-                    final ParseResults<S> parse = parseNodes(child, reader, context);
-                    if (potentials == null) {
-                        potentials = new ArrayList<>(1);
-                    }
-                    potentials.add(parse);
-                }
-            } else {
-                if (potentials == null) {
-                    potentials = new ArrayList<>(1);
-                }
-                potentials.add(new ParseResults<>(context, reader, Collections.emptyMap()));
-            }
-        }
-
-        if (potentials != null) {
-            if (potentials.size() > 1) {
-                potentials.sort((a, b) -> {
-                    if (!a.getReader().canRead() && b.getReader().canRead()) {
-                        return -1;
-                    }
-                    if (a.getReader().canRead() && !b.getReader().canRead()) {
-                        return 1;
-                    }
-                    if (a.getExceptions().isEmpty() && !b.getExceptions().isEmpty()) {
-                        return -1;
-                    }
-                    if (!a.getExceptions().isEmpty() && b.getExceptions().isEmpty()) {
-                        return 1;
-                    }
-                    return 0;
-                });
-            }
-            return potentials.get(0);
-        }
-
-        return new ParseResults<>(contextSoFar, originalReader, errors == null ? Collections.emptyMap() : errors);
-    }
-
-    /**
-     * Gets all possible executable commands following the given node.
-     *
-     * <p>You may use {@link #getRoot()} as a target to get all usage data for the entire command tree.</p>
-     *
-     * <p>The returned syntax will be in "simple" form: {@code <param>} and {@code literal}. "Optional" nodes will be
-     * listed as multiple entries: the parent node, and the child nodes.
-     * For example, a required literal "foo" followed by an optional param "int" will be two nodes:</p>
-     * <ul>
-     *     <li>{@code foo}</li>
-     *     <li>{@code foo <int>}</li>
-     * </ul>
-     *
-     * <p>The path to the specified node will <b>not</b> be prepended to the output, as there can theoretically be many
-     * ways to reach a given node. It will only give you paths relative to the specified node, not absolute from root.</p>
-     *
-     * @param node target node to get child usage strings for
-     * @param source a custom "source" object, usually representing the originator of this command
-     * @param restricted if true, commands that the {@code source} cannot access will not be mentioned
-     * @return array of full usage strings under the target node
-     */
-    public String[] getAllUsage(final CommandNode<S> node, final S source, final boolean restricted) {
-        final ArrayList<String> result = new ArrayList<>();
-        getAllUsage(node, source, result, "", restricted);
-        return result.toArray(new String[result.size()]);
-    }
-
-    private void getAllUsage(final CommandNode<S> node, final S source, final ArrayList<String> result, final String prefix, final boolean restricted) {
-        if (restricted && !node.canUse(source)) {
-            return;
-        }
-
-        if (node.getCommand() != null) {
-            result.add(prefix);
-        }
-
-        if (node.getRedirect() != null) {
-            final String redirect = node.getRedirect() == root ? "..." : "-> " + node.getRedirect().getUsageText();
-            result.add(prefix.isEmpty() ? node.getUsageText() + ARGUMENT_SEPARATOR + redirect : prefix + ARGUMENT_SEPARATOR + redirect);
-        } else if (!node.getChildren().isEmpty()) {
-            for (final CommandNode<S> child : node.getChildren()) {
-                getAllUsage(child, source, result, prefix.isEmpty() ? child.getUsageText() : prefix + ARGUMENT_SEPARATOR + child.getUsageText(), restricted);
-            }
-        }
-    }
-
-    /**
-     * Gets the possible executable commands from a specified node.
-     *
-     * <p>You may use {@link #getRoot()} as a target to get usage data for the entire command tree.</p>
-     *
-     * <p>The returned syntax will be in "smart" form: {@code <param>}, {@code literal}, {@code [optional]} and {@code (either|or)}.
-     * These forms may be mixed and matched to provide as much information about the child nodes as it can, without being too verbose.
-     * For example, a required literal "foo" followed by an optional param "int" can be compressed into one string:</p>
-     * <ul>
-     *     <li>{@code foo [<int>]}</li>
-     * </ul>
-     *
-     * <p>The path to the specified node will <b>not</b> be prepended to the output, as there can theoretically be many
-     * ways to reach a given node. It will only give you paths relative to the specified node, not absolute from root.</p>
-     *
-     * <p>The returned usage will be restricted to only commands that the provided {@code source} can use.</p>
-     *
-     * @param node target node to get child usage strings for
-     * @param source a custom "source" object, usually representing the originator of this command
-     * @return array of full usage strings under the target node
-     */
-    public Map<CommandNode<S>, String> getSmartUsage(final CommandNode<S> node, final S source) {
-        final Map<CommandNode<S>, String> result = new LinkedHashMap<>();
-
-        final boolean optional = node.getCommand() != null;
-        for (final CommandNode<S> child : node.getChildren()) {
-            final String usage = getSmartUsage(child, source, optional, false);
-            if (usage != null) {
-                result.put(child, usage);
-            }
-        }
-        return result;
-    }
-
-    private String getSmartUsage(final CommandNode<S> node, final S source, final boolean optional, final boolean deep) {
-        if (!node.canUse(source)) {
-            return null;
-        }
-
-        final String self = optional ? USAGE_OPTIONAL_OPEN + node.getUsageText() + USAGE_OPTIONAL_CLOSE : node.getUsageText();
-        final boolean childOptional = node.getCommand() != null;
-        final String open = childOptional ? USAGE_OPTIONAL_OPEN : USAGE_REQUIRED_OPEN;
-        final String close = childOptional ? USAGE_OPTIONAL_CLOSE : USAGE_REQUIRED_CLOSE;
-
-        if (!deep) {
-            if (node.getRedirect() != null) {
-                final String redirect = node.getRedirect() == root ? "..." : "-> " + node.getRedirect().getUsageText();
-                return self + ARGUMENT_SEPARATOR + redirect;
-            } else {
-                final Collection<CommandNode<S>> children = node.getChildren().stream().filter(c -> c.canUse(source)).collect(Collectors.toList());
-                if (children.size() == 1) {
-                    final String usage = getSmartUsage(children.iterator().next(), source, childOptional, childOptional);
-                    if (usage != null) {
-                        return self + ARGUMENT_SEPARATOR + usage;
-                    }
-                } else if (children.size() > 1) {
-                    final Set<String> childUsage = new LinkedHashSet<>();
-                    for (final CommandNode<S> child : children) {
-                        final String usage = getSmartUsage(child, source, childOptional, true);
-                        if (usage != null) {
-                            childUsage.add(usage);
-                        }
-                    }
-                    if (childUsage.size() == 1) {
-                        final String usage = childUsage.iterator().next();
-                        return self + ARGUMENT_SEPARATOR + (childOptional ? USAGE_OPTIONAL_OPEN + usage + USAGE_OPTIONAL_CLOSE : usage);
-                    } else if (childUsage.size() > 1) {
-                        final StringBuilder builder = new StringBuilder(open);
-                        int count = 0;
-                        for (final CommandNode<S> child : children) {
-                            if (count > 0) {
-                                builder.append(USAGE_OR);
-                            }
-                            builder.append(child.getUsageText());
-                            count++;
-                        }
-                        if (count > 0) {
-                            builder.append(close);
-                            return self + ARGUMENT_SEPARATOR + builder.toString();
-                        }
-                    }
-                }
-            }
-        }
-
-        return self;
-    }
-
-    /**
-     * Gets suggestions for a parsed input string on what comes next.
-     *
-     * <p>As it is ultimately up to custom argument types to provide suggestions, it may be an asynchronous operation,
-     * for example getting in-game data or player names etc. As such, this method returns a future and no guarantees
-     * are made to when or how the future completes.</p>
-     *
-     * <p>The suggestions provided will be in the context of the end of the parsed input string, but may suggest
-     * new or replacement strings for earlier in the input string. For example, if the end of the string was
-     * {@code foobar} but an argument preferred it to be {@code minecraft:foobar}, it will suggest a replacement for that
-     * whole segment of the input.</p>
-     *
-     * @param parse the result of a {@link #parse(StringReader, Object)}
-     * @return a future that will eventually resolve into a {@link Suggestions} object
-     */
-    public CompletableFuture<Suggestions> getCompletionSuggestions(final ParseResults<S> parse) {
-        return getCompletionSuggestions(parse, parse.getReader().getTotalLength());
-    }
-
-    public CompletableFuture<Suggestions> getCompletionSuggestions(final ParseResults<S> parse, int cursor) {
-        final CommandContextBuilder<S> context = parse.getContext();
-
-        final SuggestionContext<S> nodeBeforeCursor = context.findSuggestionContext(cursor);
-        final CommandNode<S> parent = nodeBeforeCursor.parent;
-        final int start = Math.min(nodeBeforeCursor.startPos, cursor);
-
-        final String fullInput = parse.getReader().getString();
-        final String truncatedInput = fullInput.substring(0, cursor);
-        final String truncatedInputLowerCase = truncatedInput.toLowerCase(Locale.ROOT);
-        @SuppressWarnings("unchecked") final CompletableFuture<Suggestions>[] futures = new CompletableFuture[parent.getChildren().size()];
-        int i = 0;
-        for (final CommandNode<S> node : parent.getChildren()) {
-            CompletableFuture<Suggestions> future = Suggestions.empty();
-            try {
-                if (node.canUse(parse.getContext().getSource())) future = node.listSuggestions(context.build(truncatedInput), new SuggestionsBuilder(truncatedInput, truncatedInputLowerCase, start)); // CraftBukkit
-            } catch (final CommandSyntaxException ignored) {
-            }
-            futures[i++] = future;
-        }
-
-        final CompletableFuture<Suggestions> result = new CompletableFuture<>();
-        CompletableFuture.allOf(futures).thenRun(() -> {
-            final List<Suggestions> suggestions = new ArrayList<>();
-            for (final CompletableFuture<Suggestions> future : futures) {
-                suggestions.add(future.join());
-            }
-            result.complete(Suggestions.merge(fullInput, suggestions));
-        });
-
-        return result;
-    }
-
-    /**
-     * Gets the root of this command tree.
-     *
-     * <p>This is often useful as a target of a {@link com.mojang.brigadier.builder.ArgumentBuilder#redirect(CommandNode)},
-     * {@link #getAllUsage(CommandNode, Object, boolean)} or {@link #getSmartUsage(CommandNode, Object)}.
-     * You may also use it to clone the command tree via {@link #CommandDispatcher(RootCommandNode)}.</p>
-     *
-     * @return root of the command tree
-     */
-    public RootCommandNode<S> getRoot() {
-        return root;
-    }
-
-    /**
-     * Finds a valid path to a given node on the command tree.
-     *
-     * <p>There may theoretically be multiple paths to a node on the tree, especially with the use of forking or redirecting.
-     * As such, this method makes no guarantees about which path it finds. It will not look at forks or redirects,
-     * and find the first instance of the target node on the tree.</p>
-     *
-     * <p>The only guarantee made is that for the same command tree and the same version of this library, the result of
-     * this method will <b>always</b> be a valid input for {@link #findNode(Collection)}, which should return the same node
-     * as provided to this method.</p>
-     *
-     * @param target the target node you are finding a path for
-     * @return a path to the resulting node, or an empty list if it was not found
-     */
-    public Collection<String> getPath(final CommandNode<S> target) {
-        final List<List<CommandNode<S>>> nodes = new ArrayList<>();
-        addPaths(root, nodes, new ArrayList<>());
-
-        for (final List<CommandNode<S>> list : nodes) {
-            if (list.get(list.size() - 1) == target) {
-                final List<String> result = new ArrayList<>(list.size());
-                for (final CommandNode<S> node : list) {
-                    if (node != root) {
-                        result.add(node.getName());
-                    }
-                }
-                return result;
-            }
-        }
-
-        return Collections.emptyList();
-    }
-
-    /**
-     * Finds a node by its path
-     *
-     * <p>Paths may be generated with {@link #getPath(CommandNode)}, and are guaranteed (for the same tree, and the
-     * same version of this library) to always produce the same valid node by this method.</p>
-     *
-     * <p>If a node could not be found at the specified path, then {@code null} will be returned.</p>
-     *
-     * @param path a generated path to a node
-     * @return the node at the given path, or null if not found
-     */
-    public CommandNode<S> findNode(final Collection<String> path) {
-        CommandNode<S> node = root;
-        for (final String name : path) {
-            node = node.getChild(name);
-            if (node == null) {
-                return null;
-            }
-        }
-        return node;
-    }
-
-    /**
-     * Scans the command tree for potential ambiguous commands.
-     *
-     * <p>This is a shortcut for {@link CommandNode#findAmbiguities(AmbiguityConsumer)} on {@link #getRoot()}.</p>
-     *
-     * <p>Ambiguities are detected by testing every {@link CommandNode#getExamples()} on one node verses every sibling
-     * node. This is not fool proof, and relies a lot on the providers of the used argument types to give good examples.</p>
-     *
-     * @param consumer a callback to be notified of potential ambiguities
-     */
-    public void findAmbiguities(final AmbiguityConsumer<S> consumer) {
-        root.findAmbiguities(consumer);
-    }
-
-    private void addPaths(final CommandNode<S> node, final List<List<CommandNode<S>>> result, final List<CommandNode<S>> parents) {
-        final List<CommandNode<S>> current = new ArrayList<>(parents);
-        current.add(node);
-        result.add(current);
-
-        for (final CommandNode<S> child : node.getChildren()) {
-            addPaths(child, result, current);
-        }
-    }
-}
diff --git a/paper-server/src/main/java/com/mojang/brigadier/tree/CommandNode.java b/paper-server/src/main/java/com/mojang/brigadier/tree/CommandNode.java
deleted file mode 100644
index 9be5c58f97..0000000000
--- a/paper-server/src/main/java/com/mojang/brigadier/tree/CommandNode.java
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT license.
-
-package com.mojang.brigadier.tree;
-
-// CHECKSTYLE:OFF
-import com.mojang.brigadier.AmbiguityConsumer;
-import com.mojang.brigadier.Command;
-import com.mojang.brigadier.RedirectModifier;
-import com.mojang.brigadier.StringReader;
-import com.mojang.brigadier.builder.ArgumentBuilder;
-import com.mojang.brigadier.context.CommandContext;
-import com.mojang.brigadier.context.CommandContextBuilder;
-import com.mojang.brigadier.exceptions.CommandSyntaxException;
-import com.mojang.brigadier.suggestion.Suggestions;
-import com.mojang.brigadier.suggestion.SuggestionsBuilder;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Predicate;
-
-import net.minecraft.commands.CommandListenerWrapper; // CraftBukkit
-
-public abstract class CommandNode<S> implements Comparable<CommandNode<S>> {
-    private final Map<String, CommandNode<S>> children = new LinkedHashMap<>();
-    private final Map<String, LiteralCommandNode<S>> literals = new LinkedHashMap<>();
-    private final Map<String, ArgumentCommandNode<S, ?>> arguments = new LinkedHashMap<>();
-    private final Predicate<S> requirement;
-    private final CommandNode<S> redirect;
-    private final RedirectModifier<S> modifier;
-    private final boolean forks;
-    private Command<S> command;
-    // CraftBukkit start
-    public void removeCommand(String name) {
-        children.remove(name);
-        literals.remove(name);
-        arguments.remove(name);
-    }
-    // CraftBukkit end
-
-    protected CommandNode(final Command<S> command, final Predicate<S> requirement, final CommandNode<S> redirect, final RedirectModifier<S> modifier, final boolean forks) {
-        this.command = command;
-        this.requirement = requirement;
-        this.redirect = redirect;
-        this.modifier = modifier;
-        this.forks = forks;
-    }
-
-    public Command<S> getCommand() {
-        return command;
-    }
-
-    public Collection<CommandNode<S>> getChildren() {
-        return children.values();
-    }
-
-    public CommandNode<S> getChild(final String name) {
-        return children.get(name);
-    }
-
-    public CommandNode<S> getRedirect() {
-        return redirect;
-    }
-
-    public RedirectModifier<S> getRedirectModifier() {
-        return modifier;
-    }
-
-    // CraftBukkit start
-    public synchronized boolean canUse(final S source) {
-        if (source instanceof CommandListenerWrapper) {
-            try {
-                ((CommandListenerWrapper) source).currentCommand = this;
-                return requirement.test(source);
-            } finally {
-                ((CommandListenerWrapper) source).currentCommand = null;
-            }
-        }
-        // CraftBukkit end
-        return requirement.test(source);
-    }
-
-    public void addChild(final CommandNode<S> node) {
-        if (node instanceof RootCommandNode) {
-            throw new UnsupportedOperationException("Cannot add a RootCommandNode as a child to any other CommandNode");
-        }
-
-        final CommandNode<S> child = children.get(node.getName());
-        if (child != null) {
-            // We've found something to merge onto
-            if (node.getCommand() != null) {
-                child.command = node.getCommand();
-            }
-            for (final CommandNode<S> grandchild : node.getChildren()) {
-                child.addChild(grandchild);
-            }
-        } else {
-            children.put(node.getName(), node);
-            if (node instanceof LiteralCommandNode) {
-                literals.put(node.getName(), (LiteralCommandNode<S>) node);
-            } else if (node instanceof ArgumentCommandNode) {
-                arguments.put(node.getName(), (ArgumentCommandNode<S, ?>) node);
-            }
-        }
-    }
-
-    public void findAmbiguities(final AmbiguityConsumer<S> consumer) {
-        Set<String> matches = new HashSet<>();
-
-        for (final CommandNode<S> child : children.values()) {
-            for (final CommandNode<S> sibling : children.values()) {
-                if (child == sibling) {
-                    continue;
-                }
-
-                for (final String input : child.getExamples()) {
-                    if (sibling.isValidInput(input)) {
-                        matches.add(input);
-                    }
-                }
-
-                if (matches.size() > 0) {
-                    consumer.ambiguous(this, child, sibling, matches);
-                    matches = new HashSet<>();
-                }
-            }
-
-            child.findAmbiguities(consumer);
-        }
-    }
-
-    protected abstract boolean isValidInput(final String input);
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (!(o instanceof CommandNode)) return false;
-
-        final CommandNode<S> that = (CommandNode<S>) o;
-
-        if (!children.equals(that.children)) return false;
-        if (command != null ? !command.equals(that.command) : that.command != null) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        return 31 * children.hashCode() + (command != null ? command.hashCode() : 0);
-    }
-
-    public Predicate<S> getRequirement() {
-        return requirement;
-    }
-
-    public abstract String getName();
-
-    public abstract String getUsageText();
-
-    public abstract void parse(StringReader reader, CommandContextBuilder<S> contextBuilder) throws CommandSyntaxException;
-
-    public abstract CompletableFuture<Suggestions> listSuggestions(CommandContext<S> context, SuggestionsBuilder builder) throws CommandSyntaxException;
-
-    public abstract ArgumentBuilder<S, ?> createBuilder();
-
-    protected abstract String getSortedKey();
-
-    public Collection<? extends CommandNode<S>> getRelevantNodes(final StringReader input) {
-        if (literals.size() > 0) {
-            final int cursor = input.getCursor();
-            while (input.canRead() && input.peek() != ' ') {
-                input.skip();
-            }
-            final String text = input.getString().substring(cursor, input.getCursor());
-            input.setCursor(cursor);
-            final LiteralCommandNode<S> literal = literals.get(text);
-            if (literal != null) {
-                return Collections.singleton(literal);
-            } else {
-                return arguments.values();
-            }
-        } else {
-            return arguments.values();
-        }
-    }
-
-    @Override
-    public int compareTo(final CommandNode<S> o) {
-        if (this instanceof LiteralCommandNode == o instanceof LiteralCommandNode) {
-            return getSortedKey().compareTo(o.getSortedKey());
-        }
-
-        return (o instanceof LiteralCommandNode) ? 1 : -1;
-    }
-
-    public boolean isFork() {
-        return forks;
-    }
-
-    public abstract Collection<String> getExamples();
-}