better death messages for fake players and handling idling. Fixes #619

This commit is contained in:
gnembon committed 2020-12-11 00:14:11 -04:00
1 parent 6dc6a42bda
commit 97971322e5
3 files changed
+14 -3

No files matched your search

@@ -69,7 +69,7 @@ public abstract class PlayerManager_fakePlayersMixin
ServerPlayerEntity serverPlayerEntity_3 = (ServerPlayerEntity) var5.next(); ServerPlayerEntity serverPlayerEntity_3 = (ServerPlayerEntity) var5.next();
if(serverPlayerEntity_3 instanceof EntityPlayerMPFake) if(serverPlayerEntity_3 instanceof EntityPlayerMPFake)
{ {
serverPlayerEntity_3.kill(); ((EntityPlayerMPFake)serverPlayerEntity_3).kill(new TranslatableText("multiplayer.disconnect.duplicate_login"));
continue; continue;
} }
serverPlayerEntity_3.networkHandler.disconnect(new TranslatableText("multiplayer.disconnect.duplicate_login")); serverPlayerEntity_3.networkHandler.disconnect(new TranslatableText("multiplayer.disconnect.duplicate_login"));
@@ -9,6 +9,7 @@ import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket;
import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.player.HungerManager; import net.minecraft.entity.player.HungerManager;
import net.minecraft.network.NetworkSide; import net.minecraft.network.NetworkSide;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText; import net.minecraft.text.TranslatableText;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.server.ServerTask; import net.minecraft.server.ServerTask;
@@ -95,9 +96,14 @@ public class EntityPlayerMPFake extends ServerPlayerEntity
@Override @Override
public void kill() public void kill()
{
kill(Messenger.s("Killed"));
}
public void kill(Text reason)
{ {
this.server.send(new ServerTask(this.server.getTicks(), () -> { this.server.send(new ServerTask(this.server.getTicks(), () -> {
this.networkHandler.onDisconnected(Messenger.s("Killed")); this.networkHandler.onDisconnected(reason);
})); }));
} }
@@ -120,7 +126,7 @@ public class EntityPlayerMPFake extends ServerPlayerEntity
super.onDeath(cause); super.onDeath(cause);
setHealth(20); setHealth(20);
this.hungerManager = new HungerManager(); this.hungerManager = new HungerManager();
kill(); kill(this.getDamageTracker().getDeathMessage());
} }
@Override @Override
@@ -6,6 +6,7 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayNetworkHandler;
import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
public class NetHandlerPlayServerFake extends ServerPlayNetworkHandler public class NetHandlerPlayServerFake extends ServerPlayNetworkHandler
{ {
@@ -22,6 +23,10 @@ public class NetHandlerPlayServerFake extends ServerPlayNetworkHandler
@Override @Override
public void disconnect(Text message) public void disconnect(Text message)
{ {
if (player instanceof EntityPlayerMPFake && message instanceof TranslatableText && ((TranslatableText) message).getKey().equals("multiplayer.disconnect.idling"))
{
((EntityPlayerMPFake) player).kill(new TranslatableText(((TranslatableText) message).getKey()));
}
} }
} }