Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.ceoepts.facidence;
- import java.util.Iterator;
- import net.md_5.bungee.api.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import com.bekvon.bukkit.residence.Residence;
- import com.bekvon.bukkit.residence.event.ResidenceCreationEvent;
- import com.bekvon.bukkit.residence.protection.ClaimedResidence;
- import com.bekvon.bukkit.residence.protection.CuboidArea;
- import com.bekvon.bukkit.residence.protection.ResidenceManager;
- import com.massivecraft.factions.FLocation;
- import com.massivecraft.factions.Faction;
- import com.massivecraft.factions.Factions;
- import com.massivecraft.factions.event.LandClaimEvent;
- public class Main extends JavaPlugin implements Listener{
- Residence residence;
- Factions factions;
- String noResidenceMessage = "&4You cant create a residence inside a faction!";
- String noFactionMessage = "&4You cant claim factionland inside a residence!";
- boolean NoResInFac;
- boolean NoFacInRes;
- public void onEnable(){
- PluginManager pm = this.getServer().getPluginManager();
- pm.registerEvents(this, this);
- residence = (Residence) JavaPlugin.getPlugin(Residence.class);
- factions = (Factions) Factions.getInstance();
- //Config
- this.saveDefaultConfig();
- noResidenceMessage = this.getConfig().getString("ResidenceWarning");
- noFactionMessage = this.getConfig().getString("FactionsWarning");
- NoResInFac = this.getConfig().getBoolean("ResidenceInFactionRestriction");
- NoFacInRes = this.getConfig().getBoolean("FactionInResidenceRestriction");
- }
- @EventHandler
- public void residenceCreationEvent(ResidenceCreationEvent e){
- if(NoResInFac){
- CuboidArea area1 = e.getPhysicalArea();
- for(Faction f : factions.getAllFactions()){
- Iterator<FLocation> claims = f.getAllClaims().iterator();
- while(claims.hasNext()){
- CuboidArea area2 = flocationToArea(claims.next());
- if(area1.checkCollision(area2)){
- e.setCancelled(true);
- e.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', noResidenceMessage));
- return;
- }
- }
- }
- }
- }
- @EventHandler
- public void factionsCreationEvent(LandClaimEvent e){
- if(NoFacInRes){
- for(String r : Residence.getResidenceManager().getResidenceList()){
- ResidenceManager rm = Residence.getResidenceManager();
- ClaimedResidence res = rm.getByName(r);
- CuboidArea area1 = res.getAreaArray()[0];
- CuboidArea area2 = flocationToArea(e.getLocation());
- if(area1.checkCollision(area2)){
- e.setCancelled(true);
- e.getfPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', noFactionMessage));
- return;
- }
- }
- }
- }
- public CuboidArea flocationToArea(FLocation f){
- int x = FLocation.chunkToBlock((int) f.getX());
- int z = FLocation.chunkToBlock((int) f.getZ());
- int x2 = FLocation.chunkToBlock((int) f.getX())+15;
- int z2 = FLocation.chunkToBlock((int) f.getZ())+15;
- CuboidArea area2 = new CuboidArea(new Location(f.getWorld(), x, 0, z), new Location(f.getWorld(), x2, f.getWorld().getMaxHeight(), z2));
- return area2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement