package me.gnat008.perworldinventory.util;
import me.gnat008.perworldinventory.PerWorldInventory;
import net.milkbowl.vault.economy.Economy;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
/**
* Class that holds utility methods.
*/
public final class Utils {
/**
* Check if a server's version is the same as a given version
* or higher.
*
* @param version The server's version.
* @param major The major version number.
* @param minor The minor version number.
* @param patch The patch version number.
*
* @return True if the server is running the same version or newer.
*/
public static boolean checkServerVersion(String version, int major, int minor, int patch) {
String versionNum = version.substring(version.indexOf(".") - 1, version.length() - 1).trim();
String[] parts = versionNum.split("\\.");
try {
if ((Integer.parseInt(parts[0]) >= major)) {
if (Integer.parseInt(parts[1]) == minor) {
if (parts.length == 2) {
return true;
} else {
return Integer.parseInt(parts[2]) >= patch;
}
} else {
return Integer.parseInt(parts[1]) > minor;
}
}
} catch (NumberFormatException ex) {
return false;
}
return false;
}
/**
* Clear a player's inventory and set all of their stats to default.
*
* @param plugin {@link PerWorldInventory} for econ.
* @param player The player to zero.
*/
public static void zeroPlayer(PerWorldInventory plugin, Player player) {
zeroPlayer(plugin, player, true);
}
/**
* Set a player's stats to defaults, and optionally clear their inventory.
*
* @param plugin {@link PerWorldInventory} for econ.
* @param player The player to zero.
* @param clearInventory Clear the player's inventory.
*/
public static void zeroPlayer(PerWorldInventory plugin, Player player, boolean clearInventory) {
if (clearInventory) {
player.getInventory().clear();
player.getEnderChest().clear();
}
player.setExp(0.0F);
player.setFoodLevel(20);
player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
player.setLevel(0);
for (PotionEffect effect : player.getActivePotionEffects()) {
player.removePotionEffect(effect.getType());
}
player.setSaturation(20.0F);
player.setFallDistance(0.0f);
player.setFireTicks(0);
if (plugin.isEconEnabled()) {
Economy econ = plugin.getEconomy();
econ.bankWithdraw(player.getName(), econ.bankBalance(player.getName()).amount);
econ.withdrawPlayer(player, econ.getBalance(player));
}
}
}