60 lines
1.9 KiB
Java
60 lines
1.9 KiB
Java
package com.songoda.epicspawners.hooks;
|
|
|
|
import com.palmergames.bukkit.towny.Towny;
|
|
import com.palmergames.bukkit.towny.exceptions.NotRegisteredException;
|
|
import com.palmergames.bukkit.towny.object.Resident;
|
|
import com.palmergames.bukkit.towny.object.TownyUniverse;
|
|
import com.songoda.epicspawners.api.utils.ClaimableProtectionPluginHook;
|
|
import com.songoda.epicspawners.utils.Debugger;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
public class HookTowny implements ClaimableProtectionPluginHook {
|
|
|
|
private final Towny towny;
|
|
|
|
public HookTowny() {
|
|
this.towny = Towny.getPlugin();
|
|
}
|
|
|
|
@Override
|
|
public JavaPlugin getPlugin() {
|
|
return towny;
|
|
}
|
|
|
|
@Override
|
|
public boolean canBuild(Player player, Location location) {
|
|
if (TownyUniverse.isWilderness(location.getBlock()) || !TownyUniverse.getTownBlock(location).hasTown())
|
|
return true;
|
|
|
|
try {
|
|
Resident resident = TownyUniverse.getDataSource().getResident(player.getName());
|
|
return resident.hasTown() && TownyUniverse.getTownName(location).equals(resident.getTown().getName());
|
|
} catch (NotRegisteredException e) {
|
|
Debugger.runReport(e);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isInClaim(Location location, String id) {
|
|
try {
|
|
return TownyUniverse.isWilderness(location.getBlock()) && TownyUniverse.getTownBlock(location).getTown().getUID().toString().equals(id);
|
|
} catch (NotRegisteredException e) {
|
|
Debugger.runReport(e);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String getClaimID(String name) {
|
|
try {
|
|
return TownyUniverse.getDataSource().getTown(name).getUID().toString();
|
|
} catch (NotRegisteredException e) {
|
|
Debugger.runReport(e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
} |