1
0
mirror of https://e.coding.net/circlecloud/Residence.git synced 2025-11-24 21:46:16 +00:00

移除动物击杀 移动到领地扩展...

Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
502647092
2015-12-15 09:25:15 +08:00
parent c0f233b4de
commit 337fb1c55f
7 changed files with 111 additions and 221 deletions

View File

@@ -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);

View File

@@ -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"));

View File

@@ -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);
}
}
}
}

View File

@@ -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初始化完毕...");
}
}

View File

@@ -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());

View File

@@ -1,5 +0,0 @@
#领地插件配置文件2.7.0.0 重制 By: 喵♂呜(部分汉化来自宝石汉化组 大刘,Zesty).
Flag:
Fly: true
AnimalKilling: true
Interact: false