tiny	2	0	spigot	mojang+yarn

# Originally DistanceManager, which also implements DistanceManager, so clashes since the implemented class
# is imported and not fully qualified. Easiest fix is to just change the name
c	net/minecraft/server/level/PlayerChunkMap$a	net/minecraft/server/level/ChunkMap$ChunkDistanceManager

# CraftBukkit adds the getServer() method, clashes with a Mojang method
c	net/minecraft/world/level/World	net/minecraft/world/level/Level
	m	()Lorg/bukkit/craftbukkit/CraftServer;	getServer	getCraftServer

# CraftBukkit adds the server field, clashes with a Mojang field
c	net/minecraft/server/network/PlayerConnection	net/minecraft/server/network/ServerGamePacketListenerImpl
	m	()Lorg/bukkit/craftbukkit/entity/CraftPlayer;	getPlayer	getCraftPlayer

# CraftBukkit adds the getType() method, clashes with a Mojang method
c	net/minecraft/world/entity/EntityAreaEffectCloud	net/minecraft/world/entity/AreaEffectCloud
	m	()Ljava/lang/String;	getType	getPotionType

# CraftBukkit adds the getType() method, clashes with a Mojang method
c	net/minecraft/world/entity/projectile/EntityTippedArrow	net/minecraft/world/entity/projectile/Arrow
	m	()Ljava/lang/String;	getType	getPotionType

# CraftBukkit adds a new `a` method which allows passing the Entity parameter
# It uses `a` to match the original method (with just 1 param), so this patch makes them match
c	net/minecraft/server/level/WorldServer	net/minecraft/server/level/ServerLevel
	m	(Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V	a	makeObsidianPlatform

# CraftBukkit adds limit param
c	net/minecraft/world/level/SpawnerCreature$d	net/minecraft/world/level/NaturalSpawner$SpawnState
	m	(Lnet/minecraft/world/entity/EnumCreatureType;I)Z	a	canSpawnForCategory

# missed mapping?
c	net/minecraft/world/level/block/MultifaceBlock	net/minecraft/world/level/block/MultifaceBlock
	m	(Lnet/minecraft/world/level/block/state/IBlockData;Lnet/minecraft/world/level/IBlockAccess;Lnet/minecraft/core/BlockPosition;Lnet/minecraft/core/EnumDirection;)Lnet/minecraft/world/level/block/state/IBlockData;	c	getStateForPlacement

# another missed one
c	net/minecraft/server/players/UserCache	net/minecraft/server/players/GameProfileCache
	m	(Ljava/lang/String;)Ljava/util/Optional;	getProfile	get
		p	0		name

# change dimension in ServerPlayer
c	net/minecraft/server/level/EntityPlayer	net/minecraft/server/level/ServerPlayer
	m	(Lnet/minecraft/server/level/WorldServer;Lorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)Lnet/minecraft/world/entity/Entity;	b	changeDimension

# We add the getLevel method back to Hopper since mojang removed it - we need the method for hooper optimization
# We add the method with this name to match the mojmap method of the same name in BlockEntity
# Since we add the method we need to add the mapping for it so reobf works as expected
c	net/minecraft/world/level/block/entity/IHopper	net/minecraft/world/level/block/entity/Hopper
	m	()Lnet/minecraft/world/level/World;	getWorld	getLevel

# Teleport method in ServerGamePacketListenerImpl
c	net/minecraft/server/network/PlayerConnection	net/minecraft/server/network/ServerGamePacketListenerImpl
	m	(DDDFFLorg/bukkit/event/player/PlayerTeleportEvent$TeleportCause;)V	a	teleport

# Commands performCommand adds a stripSlash boolean
c	net/minecraft/commands/CommandDispatcher	net/minecraft/commands/Commands
	m	(Lnet/minecraft/commands/CommandListenerWrapper;Ljava/lang/String;Ljava/lang/String;Z)I	a	performCommand

# Craftbukkit overloads equipItemIfPossible in Mob adding an ItemEntity parameter
c	net/minecraft/world/entity/EntityInsentient	net/minecraft/world/entity/Mob
	m	(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/entity/item/EntityItem;)Z	j	equipItemIfPossible

# Craftbukkit overloads convertTo in Mob adding various API reasons
c	net/minecraft/world/entity/EntityInsentient	net/minecraft/world/entity/Mob
	m	(Lnet/minecraft/world/entity/EntityTypes;ZLorg/bukkit/event/entity/EntityTransformEvent$TransformReason;Lorg/bukkit/event/entity/CreatureSpawnEvent$SpawnReason;)Lnet/minecraft/world/entity/EntityInsentient;	a	convertTo