46 lines
1.5 KiB
Java
46 lines
1.5 KiB
Java
package rip.tilly.bedwars.utils;
|
|
|
|
import org.bukkit.GameMode;
|
|
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.potion.PotionEffect;
|
|
|
|
public class PlayerUtil {
|
|
|
|
public static void clearPlayer(Player player) {
|
|
player.setHealth(20.0D);
|
|
player.setFoodLevel(20);
|
|
player.setSaturation(12.8F);
|
|
player.setMaximumNoDamageTicks(20);
|
|
player.setFireTicks(0);
|
|
player.setFallDistance(0.0F);
|
|
player.setLevel(0);
|
|
player.setExp(0.0F);
|
|
player.setWalkSpeed(0.2F);
|
|
player.setFlySpeed(0.2F);
|
|
player.getInventory().setHeldItemSlot(0);
|
|
player.setAllowFlight(false);
|
|
player.getInventory().clear();
|
|
player.getInventory().setArmorContents(null);
|
|
player.closeInventory();
|
|
player.setGameMode(GameMode.SURVIVAL);
|
|
player.getActivePotionEffects().stream().map(PotionEffect::getType).forEach(player::removePotionEffect);
|
|
((CraftPlayer) player).getHandle().getDataWatcher().watch(9, (byte) 0);
|
|
player.updateInventory();
|
|
}
|
|
|
|
public static void minusAmount(Player p, ItemStack i, int amount) {
|
|
if (i.getAmount() - amount <= 0) {
|
|
if (p.getInventory().getItemInHand().equals(i)) {
|
|
p.getInventory().setItemInHand(null);
|
|
} else {
|
|
p.getInventory().removeItem(i);
|
|
}
|
|
return;
|
|
}
|
|
i.setAmount(i.getAmount() - amount);
|
|
p.updateInventory();
|
|
}
|
|
}
|