58 lines
1.9 KiB
Java
58 lines
1.9 KiB
Java
package com.massivecraft.factions.integration;
|
|
|
|
import com.earth2me.essentials.Teleport;
|
|
import com.earth2me.essentials.Trade;
|
|
import com.earth2me.essentials.User;
|
|
import com.massivecraft.factions.Conf;
|
|
import net.ess3.api.IEssentials;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
|
import org.bukkit.metadata.MetadataValue;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
public class Essentials {
|
|
|
|
private static IEssentials essentials;
|
|
|
|
public static void setup() {
|
|
essentials = (IEssentials) Bukkit.getPluginManager().getPlugin("Essentials");
|
|
}
|
|
|
|
// return false if feature is disabled or Essentials isn't available
|
|
public static boolean handleTeleport(Player player, Location loc) {
|
|
if (!Conf.homesTeleportCommandEssentialsIntegration || essentials == null) return false;
|
|
|
|
Teleport teleport = essentials.getUser(player).getTeleport();
|
|
Trade trade = new Trade(BigDecimal.valueOf(Conf.econCostHome), essentials);
|
|
try {
|
|
teleport.teleport(loc, trade, TeleportCause.PLUGIN);
|
|
} catch (Exception e) {
|
|
player.sendMessage(ChatColor.RED.toString() + e.getMessage());
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public static boolean isVanished(Player player) {
|
|
// Edge case handling.
|
|
if (player == null) return false;
|
|
boolean vanish = false;
|
|
if (essentials != null) {
|
|
User user = essentials.getUser(player);
|
|
if (user != null && user.isVanished()) return true;
|
|
}
|
|
if (player.hasMetadata("vanished"))
|
|
for (MetadataValue meta : player.getMetadata("vanished")) {
|
|
if (meta == null) continue;
|
|
if (meta.asBoolean()) {
|
|
vanish = true;
|
|
break;
|
|
}
|
|
}
|
|
return vanish;
|
|
}
|
|
}
|