mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 16:54:22 +00:00
Fix FakePlayers having null connection and add FakePlayer test mod (#7733)
This commit is contained in:
1 parent
ca9df21258
commit
1a17fa6129
3 files changed
+146
-2
No files matched your search
@@ -20,13 +20,21 @@
|
||||
package net.minecraftforge.common.util;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import io.netty.util.concurrent.Future;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.network.play.client.CClientSettingsPacket;
|
||||
import net.minecraft.network.IPacket;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.PacketDirection;
|
||||
import net.minecraft.network.play.ServerPlayNetHandler;
|
||||
import net.minecraft.network.play.client.*;
|
||||
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.management.PlayerInteractionManager;
|
||||
import net.minecraft.stats.Stat;
|
||||
@@ -37,6 +45,7 @@ import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraftforge.fml.server.ServerLifecycleHooks;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
//Preliminary, simple Fake Player class
|
||||
@@ -45,6 +54,7 @@ public class FakePlayer extends ServerPlayerEntity
|
||||
public FakePlayer(ServerWorld world, GameProfile name)
|
||||
{
|
||||
super(world.getServer(), world, name, new PlayerInteractionManager(world));
|
||||
this.connection = new FakePlayerNetHandler(world.getServer(), this);
|
||||
}
|
||||
|
||||
@Override public Vector3d position(){ return new Vector3d(0, 0, 0); }
|
||||
@@ -59,4 +69,67 @@ public class FakePlayer extends ServerPlayerEntity
|
||||
@Override public void tick(){ return; }
|
||||
@Override public void updateOptions(CClientSettingsPacket pkt){ return; }
|
||||
@Override @Nullable public MinecraftServer getServer() { return ServerLifecycleHooks.getCurrentServer(); }
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
private static class FakePlayerNetHandler extends ServerPlayNetHandler {
|
||||
private static final NetworkManager DUMMY_NETWORK_MANAGER = new NetworkManager(PacketDirection.CLIENTBOUND);
|
||||
|
||||
public FakePlayerNetHandler(MinecraftServer server, ServerPlayerEntity player) {
|
||||
super(server, DUMMY_NETWORK_MANAGER, player);
|
||||
}
|
||||
|
||||
@Override public void tick() { }
|
||||
@Override public void resetPosition() { }
|
||||
@Override public void disconnect(ITextComponent message) { }
|
||||
@Override public void handlePlayerInput(CInputPacket packet) { }
|
||||
@Override public void handleMoveVehicle(CMoveVehiclePacket packet) { }
|
||||
@Override public void handleAcceptTeleportPacket(CConfirmTeleportPacket packet) { }
|
||||
@Override public void handleRecipeBookSeenRecipePacket(CMarkRecipeSeenPacket packet) { }
|
||||
@Override public void handleRecipeBookChangeSettingsPacket(CUpdateRecipeBookStatusPacket packet) { }
|
||||
@Override public void handleSeenAdvancements(CSeenAdvancementsPacket packet) { }
|
||||
@Override public void handleCustomCommandSuggestions(CTabCompletePacket packet) { }
|
||||
@Override public void handleSetCommandBlock(CUpdateCommandBlockPacket packet) { }
|
||||
@Override public void handleSetCommandMinecart(CUpdateMinecartCommandBlockPacket packet) { }
|
||||
@Override public void handlePickItem(CPickItemPacket packet) { }
|
||||
@Override public void handleRenameItem(CRenameItemPacket packet) { }
|
||||
@Override public void handleSetBeaconPacket(CUpdateBeaconPacket packet) { }
|
||||
@Override public void handleSetStructureBlock(CUpdateStructureBlockPacket packet) { }
|
||||
@Override public void handleSetJigsawBlock(CUpdateJigsawBlockPacket packet) { }
|
||||
@Override public void handleJigsawGenerate(CJigsawBlockGeneratePacket packet) { }
|
||||
@Override public void handleSelectTrade(CSelectTradePacket packet) { }
|
||||
@Override public void handleEditBook(CEditBookPacket packet) { }
|
||||
@Override public void handleEntityTagQuery(CQueryEntityNBTPacket packet) { }
|
||||
@Override public void handleBlockEntityTagQuery(CQueryTileEntityNBTPacket packet) { }
|
||||
@Override public void handleMovePlayer(CPlayerPacket packet) { }
|
||||
@Override public void teleport(double x, double y, double z, float yaw, float pitch) { }
|
||||
@Override public void teleport(double x, double y, double z, float yaw, float pitch, Set<SPlayerPositionLookPacket.Flags> flags) { }
|
||||
@Override public void handlePlayerAction(CPlayerDiggingPacket packet) { }
|
||||
@Override public void handleUseItemOn(CPlayerTryUseItemOnBlockPacket packet) { }
|
||||
@Override public void handleUseItem(CPlayerTryUseItemPacket packet) { }
|
||||
@Override public void handleTeleportToEntityPacket(CSpectatePacket packet) { }
|
||||
@Override public void handleResourcePackResponse(CResourcePackStatusPacket packet) { }
|
||||
@Override public void handlePaddleBoat(CSteerBoatPacket packet) { }
|
||||
@Override public void onDisconnect(ITextComponent message) { }
|
||||
@Override public void send(IPacket<?> packet) { }
|
||||
@Override public void send(IPacket<?> packet, @Nullable GenericFutureListener<? extends Future<? super Void>> p_211148_2_) { }
|
||||
@Override public void handleSetCarriedItem(CHeldItemChangePacket packet) { }
|
||||
@Override public void handleChat(CChatMessagePacket packet) { }
|
||||
@Override public void handleAnimate(CAnimateHandPacket packet) { }
|
||||
@Override public void handlePlayerCommand(CEntityActionPacket packet) { }
|
||||
@Override public void handleInteract(CUseEntityPacket packet) { }
|
||||
@Override public void handleClientCommand(CClientStatusPacket packet) { }
|
||||
@Override public void handleContainerClose(CCloseWindowPacket packet) { }
|
||||
@Override public void handleContainerClick(CClickWindowPacket packet) { }
|
||||
@Override public void handlePlaceRecipe(CPlaceRecipePacket packet) { }
|
||||
@Override public void handleContainerButtonClick(CEnchantItemPacket packet) { }
|
||||
@Override public void handleSetCreativeModeSlot(CCreativeInventoryActionPacket packet) { }
|
||||
@Override public void handleContainerAck(CConfirmTransactionPacket packet) { }
|
||||
@Override public void handleSignUpdate(CUpdateSignPacket packet) { }
|
||||
@Override public void handleKeepAlive(CKeepAlivePacket packet) { }
|
||||
@Override public void handlePlayerAbilities(CPlayerAbilitiesPacket packet) { }
|
||||
@Override public void handleClientInformation(CClientSettingsPacket packet) { }
|
||||
@Override public void handleCustomPayload(CCustomPayloadPacket packet) { }
|
||||
@Override public void handleChangeDifficulty(CSetDifficultyPacket packet) { }
|
||||
@Override public void handleLockDifficulty(CLockDifficultyPacket packet) { }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user