mirror of
https://e.coding.net/circlecloud/Residence.git
synced 2025-11-24 21:46:16 +00:00
fix Rails Bug and flush item bug...
Signed-off-by: j502647092 <jtb1@163.com>
This commit is contained in:
@@ -47,6 +47,7 @@ import com.bekvon.bukkit.residence.listeners.ResidenceBlockListener;
|
|||||||
import com.bekvon.bukkit.residence.listeners.ResidenceEntityListener;
|
import com.bekvon.bukkit.residence.listeners.ResidenceEntityListener;
|
||||||
import com.bekvon.bukkit.residence.listeners.ResidencePlayerListener;
|
import com.bekvon.bukkit.residence.listeners.ResidencePlayerListener;
|
||||||
import com.bekvon.bukkit.residence.listeners.ResidencePlayerListener_1_8;
|
import com.bekvon.bukkit.residence.listeners.ResidencePlayerListener_1_8;
|
||||||
|
import com.bekvon.bukkit.residence.listeners.bugfix.ResidenceBugFix;
|
||||||
import com.bekvon.bukkit.residence.manager.ConfigManager;
|
import com.bekvon.bukkit.residence.manager.ConfigManager;
|
||||||
import com.bekvon.bukkit.residence.manager.EntityManager;
|
import com.bekvon.bukkit.residence.manager.EntityManager;
|
||||||
import com.bekvon.bukkit.residence.manager.FlagManager;
|
import com.bekvon.bukkit.residence.manager.FlagManager;
|
||||||
@@ -86,7 +87,8 @@ public class Residence extends JavaPlugin {
|
|||||||
public static float bukkitver;
|
public static float bukkitver;
|
||||||
|
|
||||||
public final static int saveVersion = 1;
|
public final static int saveVersion = 1;
|
||||||
public final static String[] validLanguages = { "English", "Chinese" };
|
public final static String[] validLanguages = { "English",
|
||||||
|
"Chinese" };
|
||||||
protected static Residence instance;
|
protected static Residence instance;
|
||||||
protected DataBackup backup;
|
protected DataBackup backup;
|
||||||
protected ResidenceBlockListener blistener;
|
protected ResidenceBlockListener blistener;
|
||||||
@@ -445,6 +447,7 @@ public class Residence extends JavaPlugin {
|
|||||||
if (taskmanager == null) {
|
if (taskmanager == null) {
|
||||||
taskmanager = new TaskManager(this);
|
taskmanager = new TaskManager(this);
|
||||||
}
|
}
|
||||||
|
final PluginManager pm = getServer().getPluginManager();
|
||||||
if (firstenable) {
|
if (firstenable) {
|
||||||
if (!this.isEnabled()) {
|
if (!this.isEnabled()) {
|
||||||
return;
|
return;
|
||||||
@@ -460,12 +463,10 @@ public class Residence extends JavaPlugin {
|
|||||||
useWorldEdit = false;
|
useWorldEdit = false;
|
||||||
this.getLogger().warning("WorldEdit 未找到!");
|
this.getLogger().warning("WorldEdit 未找到!");
|
||||||
}
|
}
|
||||||
|
|
||||||
blistener = new ResidenceBlockListener(this);
|
blistener = new ResidenceBlockListener(this);
|
||||||
plistener = new ResidencePlayerListener(this);
|
plistener = new ResidencePlayerListener(this);
|
||||||
elistener = new ResidenceEntityListener(this);
|
elistener = new ResidenceEntityListener(this);
|
||||||
plistener1_8 = new ResidencePlayerListener_1_8(this);
|
plistener1_8 = new ResidencePlayerListener_1_8(this);
|
||||||
final PluginManager pm = getServer().getPluginManager();
|
|
||||||
pm.registerEvents(blistener, this);
|
pm.registerEvents(blistener, this);
|
||||||
pm.registerEvents(plistener, this);
|
pm.registerEvents(plistener, this);
|
||||||
if (is1_8()) {
|
if (is1_8()) {
|
||||||
@@ -481,6 +482,9 @@ public class Residence extends JavaPlugin {
|
|||||||
fmanager = new FlagManager(this);
|
fmanager = new FlagManager(this);
|
||||||
fmanager.init();
|
fmanager.init();
|
||||||
|
|
||||||
|
pm.registerEvents(new ResidenceBugFix(this), this);
|
||||||
|
this.getLogger().info("刷甘蔗漏洞补丁已加载...");
|
||||||
|
|
||||||
taskmanager.add(this.getServer().getScheduler().runTaskTimer(this, new HealTask(this), 20, 20));
|
taskmanager.add(this.getServer().getScheduler().runTaskTimer(this, new HealTask(this), 20, 20));
|
||||||
|
|
||||||
hdmcnd = new HandlerMainCommand(this);
|
hdmcnd = new HandlerMainCommand(this);
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.bekvon.bukkit.residence.listeners.bugfix;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
|
import com.bekvon.bukkit.residence.Residence;
|
||||||
|
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||||
|
import com.bekvon.bukkit.residence.protection.FlagPermissions;
|
||||||
|
|
||||||
|
public class ResidenceBugFix implements Listener {
|
||||||
|
Residence plugin;
|
||||||
|
|
||||||
|
public ResidenceBugFix(final Residence plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPhysics(final BlockPhysicsEvent e) {
|
||||||
|
final Material mat = e.getChangedType();
|
||||||
|
if (mat == Material.RAILS || mat == Material.POWERED_RAIL || mat == Material.ACTIVATOR_RAIL) {
|
||||||
|
e.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlace(final PlayerInteractEvent e) {
|
||||||
|
try {
|
||||||
|
final Player p = e.getPlayer();
|
||||||
|
final Block b = e.getClickedBlock();
|
||||||
|
final BlockFace bf = e.getBlockFace();
|
||||||
|
if (bf == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final Block b1 = b.getRelative(bf, 1);
|
||||||
|
final Block b2 = b.getRelative(bf, 2);
|
||||||
|
final ClaimedResidence res = plugin.getResidenceManager().getByLoc(b2.getLocation());
|
||||||
|
if (res == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final FlagPermissions perms = plugin.getPermsByLocForPlayer(b.getLocation(), p);
|
||||||
|
final String world = p.getWorld().getName();
|
||||||
|
if (b1.getType() != Material.AIR && b2.getType() == Material.AIR) {
|
||||||
|
if (!perms.playerHas(p.getName(), world, "place", false)) {
|
||||||
|
e.setCancelled(true);
|
||||||
|
p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission") + "(你在尝试刷甘蔗?)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (final Exception e2) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -238,7 +238,7 @@ public class ConfigManager {
|
|||||||
preventBuildInRent = config.getBoolean("Global.PreventRentModify", true);
|
preventBuildInRent = config.getBoolean("Global.PreventRentModify", true);
|
||||||
stopOnSaveError = config.getBoolean("Global.StopOnSaveFault", true);
|
stopOnSaveError = config.getBoolean("Global.StopOnSaveFault", true);
|
||||||
legacyperms = config.getBoolean("Global.LegacyPermissions", false);
|
legacyperms = config.getBoolean("Global.LegacyPermissions", false);
|
||||||
namefix = config.getString("Global.ResidenceNameRegex", "[A-Za-z0-9\\u4e00-\\u9fa5\\-\\_]");// "[^a-zA-Z0-9\\-\\_]"
|
namefix = config.getString("Global.ResidenceNameRegex", "[^A-Za-z0-9\\u4e00-\\u9fa5\\-\\_]");// "[^a-zA-Z0-9\\-\\_]"
|
||||||
showIntervalMessages = config.getBoolean("Global.ShowIntervalMessages", false);
|
showIntervalMessages = config.getBoolean("Global.ShowIntervalMessages", false);
|
||||||
spoutEnable = config.getBoolean("Global.EnableSpout", false);
|
spoutEnable = config.getBoolean("Global.EnableSpout", false);
|
||||||
enableLeaseMoneyAccount = config.getBoolean("Global.EnableLeaseMoneyAccount", true);
|
enableLeaseMoneyAccount = config.getBoolean("Global.EnableLeaseMoneyAccount", true);
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ Global:
|
|||||||
# 设置为'false'将造成即使在保存文件时检测到错误,领地插件也会继续加载.
|
# 设置为'false'将造成即使在保存文件时检测到错误,领地插件也会继续加载.
|
||||||
StopOnSaveFault: true
|
StopOnSaveFault: true
|
||||||
# 领地名称字符过滤,Google搜索 "Java正则表达式" 可以了解它是如何工作.
|
# 领地名称字符过滤,Google搜索 "Java正则表达式" 可以了解它是如何工作.
|
||||||
ResidenceNameRegex: '[A-Za-z0-9\u4e00-\u9fa5\\-\\_]'
|
ResidenceNameRegex: '[^A-Za-z0-9\u4e00-\u9fa5\-\_]'
|
||||||
# 设置为'true'将会 当每次租用到期或出租期满,都会发送给控制台一个信息.
|
# 设置为'true'将会 当每次租用到期或出租期满,都会发送给控制台一个信息.
|
||||||
ShowIntervalMessages: false
|
ShowIntervalMessages: false
|
||||||
# 实验 - 以下设置块的ID列表将作为检查的“箱子”和“使用”标志的使用,当使用MOD自定义箱子和物品时.
|
# 实验 - 以下设置块的ID列表将作为检查的“箱子”和“使用”标志的使用,当使用MOD自定义箱子和物品时.
|
||||||
|
|||||||
Reference in New Issue
Block a user