2015-11-02 20:39:44 +00:00
|
|
|
package WayofTime.bloodmagic.api.util.helper;
|
2015-10-30 03:22:14 +00:00
|
|
|
|
2015-11-29 02:25:46 +00:00
|
|
|
import WayofTime.bloodmagic.api.Constants;
|
2016-01-02 23:52:45 +00:00
|
|
|
|
2015-10-30 03:22:14 +00:00
|
|
|
import com.google.common.base.Strings;
|
2016-01-02 23:52:45 +00:00
|
|
|
|
2015-10-30 03:22:14 +00:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.potion.Potion;
|
|
|
|
import net.minecraft.potion.PotionEffect;
|
|
|
|
import net.minecraft.server.MinecraftServer;
|
2015-12-29 04:13:11 +00:00
|
|
|
import net.minecraftforge.common.UsernameCache;
|
2015-10-30 03:22:14 +00:00
|
|
|
import net.minecraftforge.common.util.FakePlayer;
|
2016-01-02 23:52:45 +00:00
|
|
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
|
|
|
import net.minecraftforge.fml.relauncher.Side;
|
2015-10-30 03:22:14 +00:00
|
|
|
|
|
|
|
import java.util.UUID;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public class PlayerHelper
|
|
|
|
{
|
2015-10-30 03:22:14 +00:00
|
|
|
private static final Pattern FAKE_PLAYER_PATTERN = Pattern.compile("^(?:\\[.*\\])|(?:ComputerCraft)$");
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static String getUsernameFromPlayer(EntityPlayer player)
|
|
|
|
{
|
2015-12-29 04:13:11 +00:00
|
|
|
return UsernameCache.getLastKnownUsername(getUUIDFromPlayer(player));
|
2015-10-30 03:22:14 +00:00
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static EntityPlayer getPlayerFromUsername(String username)
|
|
|
|
{
|
2016-01-02 23:52:45 +00:00
|
|
|
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
|
2015-10-30 03:22:14 +00:00
|
|
|
return null;
|
|
|
|
|
|
|
|
return MinecraftServer.getServer().getConfigurationManager().getPlayerByUsername(username);
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static EntityPlayer getPlayerFromUUID(String uuid)
|
|
|
|
{
|
2015-12-29 04:13:11 +00:00
|
|
|
return getPlayerFromUsername(getUsernameFromUUID(uuid));
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static EntityPlayer getPlayerFromUUID(UUID uuid)
|
|
|
|
{
|
2015-12-29 04:13:11 +00:00
|
|
|
return getPlayerFromUsername(getUsernameFromUUID(uuid));
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static UUID getUUIDFromPlayer(EntityPlayer player)
|
|
|
|
{
|
2015-10-30 03:22:14 +00:00
|
|
|
return player.getGameProfile().getId();
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static String getUsernameFromUUID(String uuid)
|
|
|
|
{
|
2015-12-29 04:13:11 +00:00
|
|
|
return UsernameCache.getLastKnownUsername(UUID.fromString(uuid));
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static String getUsernameFromUUID(UUID uuid)
|
|
|
|
{
|
2015-12-29 04:13:11 +00:00
|
|
|
return UsernameCache.getLastKnownUsername(uuid);
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static String getUsernameFromStack(ItemStack stack)
|
|
|
|
{
|
2015-12-29 04:13:11 +00:00
|
|
|
stack = NBTHelper.checkNBT(stack);
|
|
|
|
|
|
|
|
return PlayerHelper.getUsernameFromUUID(stack.getTagCompound().getString(Constants.NBT.OWNER_UUID));
|
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static boolean isFakePlayer(EntityPlayer player)
|
|
|
|
{
|
2016-01-13 21:13:01 +00:00
|
|
|
return player != null && player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(getUsernameFromPlayer(player)).matches();
|
2015-10-30 03:22:14 +00:00
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static void causeNauseaToPlayer(ItemStack stack)
|
|
|
|
{
|
2015-11-29 02:25:46 +00:00
|
|
|
stack = NBTHelper.checkNBT(stack);
|
2015-10-30 03:22:14 +00:00
|
|
|
|
2015-12-29 04:13:11 +00:00
|
|
|
if (!Strings.isNullOrEmpty(stack.getTagCompound().getString(Constants.NBT.OWNER_UUID)))
|
|
|
|
causeNauseaToPlayer(stack.getTagCompound().getString(Constants.NBT.OWNER_UUID));
|
2015-10-30 03:22:14 +00:00
|
|
|
}
|
|
|
|
|
2015-12-30 20:34:40 +00:00
|
|
|
public static void causeNauseaToPlayer(String ownerName)
|
|
|
|
{
|
2015-10-30 03:22:14 +00:00
|
|
|
EntityPlayer player = getPlayerFromUsername(ownerName);
|
|
|
|
|
|
|
|
if (player == null)
|
|
|
|
return;
|
|
|
|
|
|
|
|
player.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
|
|
|
|
}
|
|
|
|
}
|