package com.austinv11.collectiveframework.minecraft.utils;
import com.mojang.authlib.GameProfile;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.management.ItemInWorldManager;
import net.minecraft.world.WorldServer;
/**
* This is just a simple spoof EntityPlayerMP implementation
*/
public class GhostEntityPlayerMP extends EntityPlayerMP {
private String name;
public GhostEntityPlayerMP(ICommandSender sender) {
super(MinecraftServer.getServer(), (WorldServer) sender.getEntityWorld(),
new GameProfile(null, sender.getCommandSenderName()), new ItemInWorldManager(sender.getEntityWorld()));
name = sender.getCommandSenderName();
this.posX = sender.getPlayerCoordinates().posX;
this.posY = sender.getPlayerCoordinates().posY;
this.posZ = sender.getPlayerCoordinates().posZ;
}
@Override
public String getDisplayName() {
return name;
}
@Override
public String getCommandSenderName() {
return name;
}
public static EntityPlayerMP getPlayerForSender(ICommandSender sender) {
if (sender instanceof EntityPlayerMP)
return (EntityPlayerMP) sender;
EntityPlayerMP player = (EntityPlayerMP) WorldUtils.getPlayerForWorld(sender.getCommandSenderName(), sender.getEntityWorld());
if (player != null)
return player;
return new GhostEntityPlayerMP(sender);
}
}