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

update language config and add new flag

This commit is contained in:
502647092
2015-09-29 20:48:01 +08:00
parent 7ff378d3c8
commit cbefdc9ac2
8 changed files with 73 additions and 14 deletions

View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>cn.citycraft</groupId> <groupId>cn.citycraft</groupId>
<artifactId>Residence</artifactId> <artifactId>Residence</artifactId>
<version>2.8.0.1</version> <version>2.8.0.2</version>
<name>Residence</name> <name>Residence</name>
<description>重制版本的领地插件 - 喵♂呜</description> <description>重制版本的领地插件 - 喵♂呜</description>
<build> <build>

View File

@@ -317,7 +317,7 @@ public class ResidenceMain extends JavaPlugin {
yml.load(); yml.load();
rentmanager = RentManager.load(this, (Map<String, Object>) yml.getRoot().get("RentSystem")); rentmanager = RentManager.load(this, (Map<String, Object>) yml.getRoot().get("RentSystem"));
} }
this.getLogger().info("从配置文件中读取领地数据,耗时" + ((float) (System.currentTimeMillis() - time) / 1000) + ")"); this.getLogger().info("从配置文件中读取领地数据,耗时 " + ((float) (System.currentTimeMillis() - time) / 1000) + "");
return true; return true;
} catch (final Exception ex) { } catch (final Exception ex) {
this.getLogger().warning("领地数据载入时发生错误,请报告以下内容给作者: "); this.getLogger().warning("领地数据载入时发生错误,请报告以下内容给作者: ");
@@ -510,15 +510,15 @@ public class ResidenceMain extends JavaPlugin {
} }
} }
this.getLogger().info("载入完成! 版本: " + this.getDescription().getVersion() + " 重制 by 喵♂呜"); this.getLogger().info("载入完成! 版本: " + this.getDescription().getVersion() + " 重制 by 喵♂呜");
backup = new DataBackup(this);
init = true; init = true;
} catch (final Exception ex) { } catch (final Exception ex) {
init = false; this.getServer().getPluginManager().disablePlugin(this);
setEnabled(false);
this.getLogger().warning(" - 初始化失败! 卸载插件! 请报告以下错误给作者,谢谢!"); this.getLogger().warning(" - 初始化失败! 卸载插件! 请报告以下错误给作者,谢谢!");
this.getLogger().warning("错误: " + ex); this.getLogger().warning("错误: " + ex);
ex.printStackTrace(); ex.printStackTrace();
init = false;
} }
backup = new DataBackup(this);
new VersionChecker(this); new VersionChecker(this);
} }
@@ -577,7 +577,6 @@ public class ResidenceMain extends JavaPlugin {
File ymlSaveLoc = new File(saveFolder, "forsale.yml"); File ymlSaveLoc = new File(saveFolder, "forsale.yml");
File tmpFile = new File(saveFolder, "tmp_forsale.yml"); File tmpFile = new File(saveFolder, "tmp_forsale.yml");
yml = new YMLSaveHelper(tmpFile); yml = new YMLSaveHelper(tmpFile);
yml.save();
yml.getRoot().put("Version", saveVersion); yml.getRoot().put("Version", saveVersion);
yml.getRoot().put("Economy", tmanager.save()); yml.getRoot().put("Economy", tmanager.save());
yml.save(); yml.save();
@@ -645,7 +644,7 @@ public class ResidenceMain extends JavaPlugin {
ymlSaveLoc.renameTo(backupFile); ymlSaveLoc.renameTo(backupFile);
} }
tmpFile.renameTo(ymlSaveLoc); tmpFile.renameTo(ymlSaveLoc);
this.getLogger().info("保存领地数据到文件中,耗时" + ((float) (System.currentTimeMillis() - time) / 1000) + ")"); this.getLogger().info("保存领地数据到文件中,耗时 " + ((float) (System.currentTimeMillis() - time) / 1000) + "");
if (cmanager.showIntervalMessages()) { if (cmanager.showIntervalMessages()) {
this.getLogger().info(" - 保存插件数据..."); this.getLogger().info(" - 保存插件数据...");
} }

View File

@@ -21,13 +21,14 @@ public class ResidenceBugFix implements Listener {
public ResidenceBugFix(final ResidenceMain plugin) { public ResidenceBugFix(final ResidenceMain plugin) {
this.plugin = plugin; this.plugin = plugin;
plugin.getLogger().info("防刷甘蔗补丁已加载..."); plugin.getLogger().info("防刷甘蔗补丁已加载...");
plugin.getLogger().info("防刷单元补丁已加载...");
plugin.getLogger().info("防刷铁轨补丁已加载..."); plugin.getLogger().info("防刷铁轨补丁已加载...");
} }
@EventHandler @EventHandler
public void onPhysics(final BlockPhysicsEvent e) { public void onPhysics(final BlockPhysicsEvent e) {
final Material mat = e.getChangedType(); final Material mat = e.getChangedType();
if (mat == Material.RAILS || mat == Material.POWERED_RAIL || mat == Material.ACTIVATOR_RAIL) { if (mat == Material.RAILS || mat == Material.POWERED_RAIL || mat == Material.ACTIVATOR_RAIL || mat == Material.DETECTOR_RAIL) {
e.setCancelled(true); e.setCancelled(true);
} }
} }
@@ -56,7 +57,7 @@ public class ResidenceBugFix implements Listener {
if (b1.getType() != Material.AIR && b2.getType() == Material.AIR) { if (b1.getType() != Material.AIR && b2.getType() == Material.AIR) {
if (!perms.playerHas(p.getName(), world, "place", false)) { if (!perms.playerHas(p.getName(), world, "place", false)) {
e.setCancelled(true); e.setCancelled(true);
p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + "(你在尝试刷甘蔗?)"); p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + ChatColor.DARK_RED + " 别费劲了 领地BUG早修了");
} }
} }
} catch (final Exception e2) { } catch (final Exception e2) {

View File

@@ -0,0 +1,47 @@
package com.bekvon.bukkit.residence.listeners.flag;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import com.bekvon.bukkit.residence.ResidenceMain;
import com.bekvon.bukkit.residence.manager.EntityManager;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
import com.bekvon.bukkit.residence.protection.FlagPermissions;
public class ResidenceInteractListener implements Listener {
EntityManager entitymanager;
ResidenceMain plugin;
public ResidenceInteractListener(final ResidenceMain plugin) {
this.plugin = plugin;
this.entitymanager = plugin.getEntityManager();
FlagPermissions.addFlag("interact");
FlagPermissions.addFlagToFlagGroup("trusted", "interact");
}
@EventHandler(priority = EventPriority.LOWEST)
public void onInteract(final PlayerInteractEvent e) {
final Player p = e.getPlayer();
if (plugin.isResAdminOn(p)) {
return;
}
final ItemStack it = p.getItemInHand();
if (it == null || it.getType() == Material.AIR) {
return;
}
final Location loc = e.getClickedBlock().getLocation();
final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc);
if (res == null) {
return;
}
final FlagPermissions hasPerm = plugin.getPermsByLocForPlayer(loc, p);
e.setCancelled(hasPerm.has("interact", true));
}
}

View File

@@ -9,6 +9,7 @@ import org.bukkit.plugin.PluginManager;
import com.bekvon.bukkit.residence.ResidenceMain; import com.bekvon.bukkit.residence.ResidenceMain;
import com.bekvon.bukkit.residence.listeners.flag.ResidenceAnimalKillingListener; import com.bekvon.bukkit.residence.listeners.flag.ResidenceAnimalKillingListener;
import com.bekvon.bukkit.residence.listeners.flag.ResidenceFlyListener; import com.bekvon.bukkit.residence.listeners.flag.ResidenceFlyListener;
import com.bekvon.bukkit.residence.listeners.flag.ResidenceInteractListener;
import cn.citycraft.PluginHelper.config.FileConfig; import cn.citycraft.PluginHelper.config.FileConfig;
@@ -26,16 +27,19 @@ public class FlagManager {
public void init() { public void init() {
final PluginManager pm = plugin.getServer().getPluginManager(); final PluginManager pm = plugin.getServer().getPluginManager();
plugin.getLogger().info("初始化扩展Flag...");
flagmap = new HashMap<Boolean, Listener>(); flagmap = new HashMap<Boolean, Listener>();
flagmap.put(config.getBoolean("Flag.Fly", true), new ResidenceFlyListener(plugin)); flagmap.put(config.getBoolean("Flag.Fly", true), new ResidenceFlyListener(plugin));
flagmap.put(config.getBoolean("Flag.AnimalKilling", true), new ResidenceAnimalKillingListener(plugin)); flagmap.put(config.getBoolean("Flag.AnimalKilling", true), new ResidenceAnimalKillingListener(plugin));
flagmap.put(config.getBoolean("Flag.Interact", false), new ResidenceInteractListener(plugin));
for (final Entry<Boolean, Listener> fm : flagmap.entrySet()) { for (final Entry<Boolean, Listener> fm : flagmap.entrySet()) {
if (fm.getKey()) { if (fm.getKey()) {
pm.registerEvents(fm.getValue(), plugin); pm.registerEvents(fm.getValue(), plugin);
} }
} }
plugin.getLogger().info("扩展Flag初始化完毕!"); plugin.getLogger().info("扩展Flag初始化完毕...");
} }
} }

View File

@@ -1,4 +1,4 @@
#领地插件配置文件2.7.0.0 重制 By: 喵♂呜(部分汉化来自宝石汉化组 大刘,Zesty). #领地插件配置文件2.8.0.0 重制 By: 喵♂呜(部分汉化来自宝石汉化组 大刘,Zesty).
Global: Global:
# 载入的语言文件 # 载入的语言文件
Language: Chinese Language: Chinese
@@ -109,9 +109,13 @@ Global:
burn: true burn: true
explode: false explode: false
fireball: true fireball: true
# 以下为新增Flag(交互Flag)
interact: true
# 以下为领地飞行的Flag # 以下为领地飞行的Flag
fly: true fly: true
# 以下为领地扩展的Flag # 以下为领地扩展的Flag
animalkilling: true
# 以下扩展的Flag暂未启用
zombie: true zombie: true
skeleton: true skeleton: true
creeperspawn: true creeperspawn: true
@@ -140,7 +144,6 @@ Global:
witherspawn: true witherspawn: true
melt: true melt: true
form: true form: true
animalkilling: true
mobkilling: true mobkilling: true
drops: true drops: true
pickup: true pickup: true
@@ -179,6 +182,8 @@ Global:
piston: false piston: false
ignite: false ignite: false
firespread: false firespread: false
# 以下为新增Flag(交互Flag)
interact: false
# 以下为领地飞行的Flag # 以下为领地飞行的Flag
fly: false fly: false
# 以下为领地扩展的Flag # 以下为领地扩展的Flag
@@ -191,6 +196,8 @@ Global:
use: true use: true
ignite: true ignite: true
container: true container: true
# 以下为新增Flag(交互Flag)
interact: true
# 以下为领地飞行的Flag # 以下为领地飞行的Flag
fly: true fly: true
# 以下为领地扩展的Flag # 以下为领地扩展的Flag

View File

@@ -2,3 +2,4 @@
Flag: Flag:
Fly: true Fly: true
AnimalKilling: true AnimalKilling: true
Interact: false

View File

@@ -53,7 +53,7 @@ Language:
SelectionSky: 扩大到允许的最高高度。 SelectionSky: 扩大到允许的最高高度。
SelectionArea: 在领地 %2 中选择区域 %1 。 SelectionArea: 在领地 %2 中选择区域 %1 。
SelectDiabled: 你没有圈地权限。 SelectDiabled: 你没有圈地权限。
NoPermission: 你没有使用此命令的权限。 NoPermission: 你没有当前操作的权限。
OwnerNoPermission: 所有者无此命令的权限。 OwnerNoPermission: 所有者无此命令的权限。
ParentNoPermission: 你没有改变父区域的权限。 ParentNoPermission: 你没有改变父区域的权限。
MessageChange: 消息已设置... MessageChange: 消息已设置...