From 417b1ff95082c2dd8ae88b7f64fe1ec080e0b5a6 Mon Sep 17 00:00:00 2001 From: j502647092 Date: Sun, 26 Jul 2015 17:31:38 +0800 Subject: [PATCH] add lose file... Signed-off-by: j502647092 --- .../SimpleProtect/SimpleProtect.java | 112 ++++++++++++++++++ src/config.yml | 63 ++++++++++ 2 files changed, 175 insertions(+) create mode 100644 src/cn/citycraft/SimpleProtect/SimpleProtect.java create mode 100644 src/config.yml diff --git a/src/cn/citycraft/SimpleProtect/SimpleProtect.java b/src/cn/citycraft/SimpleProtect/SimpleProtect.java new file mode 100644 index 0000000..2108a07 --- /dev/null +++ b/src/cn/citycraft/SimpleProtect/SimpleProtect.java @@ -0,0 +1,112 @@ +package cn.citycraft.SimpleProtect; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; + +import cn.citycraft.SimpleProtect.config.Config; +import cn.citycraft.SimpleProtect.listen.BreakFarm; +import cn.citycraft.SimpleProtect.listen.Explosion; +import cn.citycraft.SimpleProtect.listen.HighRedstone; +import cn.citycraft.SimpleProtect.listen.NetherDoor; +import cn.citycraft.SimpleProtect.listen.Nightvision; +import cn.citycraft.SimpleProtect.listen.Spam; +import cn.citycraft.SimpleProtect.listen.Tip; +import cn.citycraft.SimpleProtect.utils.VersionChecker; + +public class SimpleProtect extends JavaPlugin { + + public String servername; + public String pluginname; + + public String getfullmsg(String path) { + return servername + pluginname + " " + getmessage(path); + } + + public String getmessage(String path) { + return Config.getMessage(path); + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + switch (args.length) { + case 1: + switch (args[0]) { + case "setspawn": + if (sender instanceof Player) { + Location l = ((Player) sender).getLocation(); + Config.getInstance().set("SafeNetherDoor.World", l.getWorld().getName()); + Config.getInstance().set("SafeNetherDoor.X", l.getBlockX()); + Config.getInstance().set("SafeNetherDoor.Y", l.getBlockY()); + Config.getInstance().set("SafeNetherDoor.Z", l.getBlockZ()); + sender.sendMessage(pluginname + Config.getMessage("SafeNetherDoor.Set")); + } + return true; + case "reload": + onLoad(); + sender.sendMessage(pluginname + "§a配置文件已重载!"); + } + break; + } + return false; + } + + @Override + public void onEnable() { + getServer().getConsoleSender().sendMessage( + "==========" + servername + pluginname + "=========="); + + PluginManager pm = Bukkit.getPluginManager(); + + if (Config.getInstance().getBoolean("Tip.Enable", true)) { + pm.registerEvents(new Tip(this), this); + getLogger().info("保护插件提醒功能已加载!"); + } + if (Config.getInstance().getBoolean("SafeNetherDoor.Enable", true)) { + pm.registerEvents(new NetherDoor(this), this); + getLogger().info("防止登录卡地狱门已加载!"); + } + if (Config.getInstance().getBoolean("BreakFarm.Enable", true)) { + pm.registerEvents(new BreakFarm(this), this); + getLogger().info("防止玩家踩坏耕地已加载!"); + } + if (Config.getInstance().getBoolean("Explosion.Enable", true)) { + pm.registerEvents(new Explosion(), this); + getLogger().info("防止爆炸破坏地形已加载!"); + } + if (Config.getInstance().getBoolean("Nightvision.Enable", true)) { + pm.registerEvents(new Nightvision(this), this); + getLogger().info("防止无限夜视作弊已加载!"); + } + if (Config.getInstance().getBoolean("HighRedstone.Enable", true)) { + HighRedstone redstone = new HighRedstone(this); + pm.registerEvents(redstone, this); + Bukkit.getScheduler().runTaskTimer(this, redstone, 20, 20); + getLogger().info("防止玩家高频红石已加载!"); + } + + if (Config.getInstance().getBoolean("Spam.Enable", true)) { + Spam spam = new Spam(this); + Bukkit.getPluginManager().registerEvents(spam, this); + Bukkit.getScheduler().runTaskTimer(this, spam, 20, 20); + getCommand("spam").setExecutor(spam); + getLogger().info("防止玩家聊天刷屏已加载!"); + } + + getServer().getConsoleSender().sendMessage( + "==========" + servername + pluginname + "=========="); + new VersionChecker(this); + + } + + @Override + public void onLoad() { + Config.load(this, "1.0"); + servername = getmessage("servername"); + pluginname = getmessage("pluginname"); + } +} diff --git a/src/config.yml b/src/config.yml new file mode 100644 index 0000000..c675c27 --- /dev/null +++ b/src/config.yml @@ -0,0 +1,63 @@ +#本文件为保护插件的主配置文件 +version: 1.0 +#服务器名称 +servername: '' +#插件名称 +pluginname: '&6[&b保护系统&6]&r' +#登陆提示 +Tip: + #是否开启 + Enable: true + Message: + - '&a服务器已开启保护功能!' + - '&c将会实时监控您的操作!' + - '&e挖矿请带上火把或药水!' + +#耕地保护配置 +BreakFarm: + #是否开启 + Enable: true + Tip: '&c服务器已开启耕地保护,请不要踩庄稼!' + +#爆炸保护配置 +Explosion: + #是否开启 + Enable: true + +#高频红石检测 +HighRedstone: + #是否开启 + Enable: true + Maxevents: 35 + Find: '&c发现高频红石 &3世界:%world% &d坐标: X:%x% Y:%y% Z:%z% §a已清理!' + Check: '&c高频红石数据监测 &5上述高频红石由 &6玩家:&a%player%& 6放置!' + Admin: '&c发现您放置高频红石,由于您是管理员,在服务器重启之前此高频将不会被清理,请用完后及时清理!' + +#防止无限夜视 +Nightvision: + #是否开启 + Enable: true + Tip: '&c为防止无限夜视作弊,已阻止挖矿,请插火把或用夜视药水!' + +#安全地狱门 +SafeNetherDoor: + #是否开启 + Enable: true + Tip: '&5为防止您卡在地狱门,现在将您传送回主城!' + Set: '&a新的传送点已设置!' + World: world + X: 0 + Y: 70 + Z: 0 + +#刷屏保护 +Spam: + #是否开启 + Enable: true + ChatWait: 3 + SameChatWait: 8 + CommandWait: 2 + SameCommandWait: 3 + KickCheck: 3 + KickReset: 10 +