mirror of
https://e.coding.net/circlecloud/Residence.git
synced 2025-11-24 21:46:16 +00:00
@@ -63,7 +63,6 @@ import cn.citycraft.Residence.listeners.ResidencePlayerListener_1_8;
|
||||
import cn.citycraft.Residence.listeners.bugfix.ResidenceBugFix;
|
||||
import cn.citycraft.Residence.manager.ConfigManager;
|
||||
import cn.citycraft.Residence.manager.EntityManager;
|
||||
import cn.citycraft.Residence.manager.FlagManager;
|
||||
import cn.citycraft.Residence.permissions.PermissionManager;
|
||||
import cn.citycraft.Residence.persistance.YMLSaveHelper;
|
||||
import cn.citycraft.Residence.runnable.AutoSaveTask;
|
||||
@@ -103,7 +102,6 @@ public class ResidenceMain extends JavaPlugin {
|
||||
protected EconomyInterface economy;
|
||||
protected ResidenceEntityListener elistener;
|
||||
protected EntityManager entitymanager;
|
||||
protected FlagManager fmanager;
|
||||
protected PermissionManager gmanager;
|
||||
protected HandlerMainCommand hdmcnd;
|
||||
protected HelpEntry helppages;
|
||||
@@ -489,9 +487,6 @@ public class ResidenceMain extends JavaPlugin {
|
||||
}
|
||||
pm.registerEvents(elistener, this);
|
||||
|
||||
fmanager = new FlagManager(this);
|
||||
fmanager.init();
|
||||
|
||||
this.getLogger().info("开始加载领地补丁...");
|
||||
pm.registerEvents(new ResidenceBugFix(this), this);
|
||||
|
||||
|
||||
@@ -26,11 +26,9 @@ public class CommandTp extends BaseCommand {
|
||||
@Override
|
||||
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
|
||||
final Player player = (Player) sender;
|
||||
|
||||
final boolean resadmin = (command != null);
|
||||
final ResidenceManager rmanager = plugin.getResidenceManager();
|
||||
final Language language = plugin.getLanguage();
|
||||
|
||||
final ClaimedResidence res = rmanager.getByName(args[0]);
|
||||
if (res == null) {
|
||||
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
package cn.citycraft.Residence.listeners.flag;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
|
||||
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
import com.bekvon.bukkit.residence.protection.FlagPermissions;
|
||||
|
||||
import cn.citycraft.Residence.ResidenceMain;
|
||||
import cn.citycraft.Residence.manager.EntityManager;
|
||||
|
||||
public class ResidenceAnimalKillingListener implements Listener {
|
||||
EntityManager entitymanager;
|
||||
ResidenceMain plugin;
|
||||
|
||||
public ResidenceAnimalKillingListener(final ResidenceMain plugin) {
|
||||
this.plugin = plugin;
|
||||
this.entitymanager = plugin.getEntityManager();
|
||||
FlagPermissions.addFlag("animalkilling");
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onAnimalKilling(final EntityDamageByEntityEvent event) {
|
||||
final Entity damager = event.getDamager();
|
||||
if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) {
|
||||
return;
|
||||
}
|
||||
Player cause;
|
||||
if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) {
|
||||
return;
|
||||
} else if (damager instanceof Player) {
|
||||
cause = (Player) damager;
|
||||
} else {
|
||||
cause = (Player) ((Arrow) damager).getShooter();
|
||||
}
|
||||
|
||||
if (plugin.isResAdminOn(cause)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Entity entity = event.getEntity();
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByLoc(entity.getLocation());
|
||||
|
||||
if (res != null && !res.getPermissions().playerHas(cause.getName(), "animalkilling", true)) {
|
||||
if (entitymanager.isAnimal(entity)) {
|
||||
cause.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
package cn.citycraft.Residence.manager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
import cn.citycraft.PluginHelper.config.FileConfig;
|
||||
import cn.citycraft.Residence.ResidenceMain;
|
||||
import cn.citycraft.Residence.listeners.flag.ResidenceAnimalKillingListener;
|
||||
|
||||
public class FlagManager {
|
||||
FileConfig config;
|
||||
HashMap<Boolean, Listener> flagmap;
|
||||
|
||||
ResidenceMain plugin;
|
||||
|
||||
public FlagManager(final ResidenceMain plugin) {
|
||||
this.plugin = plugin;
|
||||
this.config = new FileConfig(plugin, "flagconfig.yml");
|
||||
}
|
||||
|
||||
public void init() {
|
||||
final PluginManager pm = plugin.getServer().getPluginManager();
|
||||
|
||||
plugin.getLogger().info("初始化扩展Flag...");
|
||||
|
||||
flagmap = new HashMap<Boolean, Listener>();
|
||||
|
||||
flagmap.put(config.getBoolean("Flag.AnimalKilling", true), new ResidenceAnimalKillingListener(plugin));
|
||||
|
||||
for (final Entry<Boolean, Listener> fm : flagmap.entrySet()) {
|
||||
if (fm.getKey()) {
|
||||
pm.registerEvents(fm.getValue(), plugin);
|
||||
}
|
||||
}
|
||||
plugin.getLogger().info("扩展Flag初始化完毕...");
|
||||
}
|
||||
}
|
||||
@@ -927,7 +927,7 @@ public class ClaimedResidence {
|
||||
reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
return;
|
||||
}
|
||||
if (!this.perms.playerHas(reqPlayer.getName(), "tp", true) || !this.perms.playerHas(reqPlayer.getName(), "move", true)) {
|
||||
if (!this.perms.playerHas(reqPlayer.getName(), "tp", true)) {
|
||||
reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportNoFlag"));
|
||||
return;
|
||||
}
|
||||
@@ -942,7 +942,7 @@ public class ClaimedResidence {
|
||||
} else {
|
||||
final CuboidArea area = areas.values().iterator().next();
|
||||
if (area == null) {
|
||||
reqPlayer.sendMessage(ChatColor.RED + "未找到可传送的区域...");
|
||||
reqPlayer.sendMessage(ChatColor.RED + "未找到可传送的安全区域...");
|
||||
return;
|
||||
}
|
||||
final Location targloc = getOutsideFreeLoc(area.getHighLoc());
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#领地插件配置文件2.7.0.0 重制 By: 喵♂呜(部分汉化来自宝石汉化组 大刘,Zesty).
|
||||
Flag:
|
||||
Fly: true
|
||||
AnimalKilling: true
|
||||
Interact: false
|
||||
Reference in New Issue
Block a user