From ebe73712cc366814de00d0baa4262bae87ca00e0 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Mon, 21 Sep 2015 20:19:32 +0800 Subject: [PATCH] init project... Signed-off-by: 502647092 --- .classpath | 31 ++++++ .gitignore | 38 +++++++ .project | 23 +++++ pom.xml | 98 +++++++++++++++++++ .../citycraft/EquipManager/EquipManager.java | 31 ++++++ .../EquipManager/listen/PlayerListen.java | 20 ++++ .../runnable/ArmorHandlerTask.java | 30 ++++++ .../EquipManager/runnable/TaskManager.java | 31 ++++++ src/main/resources/config.yml | 3 + src/main/resources/plugin.yml | 17 ++++ 10 files changed, 322 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 pom.xml create mode 100644 src/main/java/cn/citycraft/EquipManager/EquipManager.java create mode 100644 src/main/java/cn/citycraft/EquipManager/listen/PlayerListen.java create mode 100644 src/main/java/cn/citycraft/EquipManager/runnable/ArmorHandlerTask.java create mode 100644 src/main/java/cn/citycraft/EquipManager/runnable/TaskManager.java create mode 100644 src/main/resources/config.yml create mode 100644 src/main/resources/plugin.yml diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..d19be42 --- /dev/null +++ b/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7876f5f --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# Eclipse stuff +/.settings + +# netbeans +/nbproject + +# we use maven! +/build.xml + +# maven +/target +/repo + +# vim +.*.sw[a-p] + +# various other potential build files +/build +/bin +/dist +/manifest.mf + +/world + +# Mac filesystem dust +*.DS_Store + +# intellij +*.iml +*.ipr +*.iws +.idea/ + +# Project Stuff +/src/main/resources/Soulbound + +# Atlassian Stuff +/atlassian-ide-plugin.xml \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..6329bff --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + EquipManager + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..bbfa183 --- /dev/null +++ b/pom.xml @@ -0,0 +1,98 @@ + + 4.0.0 + cn.citycraft + EquipManager + 1.0 + EquipManager + 装备权限管理 + + ${project.name} + + + src/main/resources + true + + + + + maven-compiler-plugin + 3.1 + + 1.8 + 1.8 + + + + org.apache.maven.plugins + maven-shade-plugin + 2.3 + + false + true + + + cn.citycraft:PluginHelper + org.mcstats.*:* + + + + + org.mcstats + ${project.groupId}.${project.artifactId}.mcstats + + + cn.citycraft.PluginHelper + ${project.groupId}.${project.artifactId} + + + + + + package + + shade + + + + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/groups/public/ + + + citycraft-repo + http://ci.citycraft.cn:8800/jenkins/plugin/repository/everything/ + + + Plugin Metrics + http://repo.mcstats.org/content/repositories/public + + + + + org.spigotmc + spigot-api + jar + 1.8.3-R0.1-SNAPSHOT + + + cn.citycraft + PluginHelper + jar + 1.0 + + + org.mcstats.bukkit + metrics + R8-SNAPSHOT + compile + + + + UTF-8 + + \ No newline at end of file diff --git a/src/main/java/cn/citycraft/EquipManager/EquipManager.java b/src/main/java/cn/citycraft/EquipManager/EquipManager.java new file mode 100644 index 0000000..c10c7c6 --- /dev/null +++ b/src/main/java/cn/citycraft/EquipManager/EquipManager.java @@ -0,0 +1,31 @@ +package cn.citycraft.EquipManager; + +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; + +import cn.citycraft.EquipManager.listen.PlayerListen; +import cn.citycraft.PluginHelper.config.FileConfig; + +public class EquipManager extends JavaPlugin { + FileConfig config; + + @Override + public FileConfiguration getConfig() { + if (config == null) + config = new FileConfig(this); + return config; + } + + @Override + public void onDisable() { + super.onDisable(); + } + + @Override + public void onEnable() { + PluginManager pm = this.getServer().getPluginManager(); + pm.registerEvents(new PlayerListen(), this); + } + +} diff --git a/src/main/java/cn/citycraft/EquipManager/listen/PlayerListen.java b/src/main/java/cn/citycraft/EquipManager/listen/PlayerListen.java new file mode 100644 index 0000000..b83c3b4 --- /dev/null +++ b/src/main/java/cn/citycraft/EquipManager/listen/PlayerListen.java @@ -0,0 +1,20 @@ +package cn.citycraft.EquipManager.listen; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +import cn.citycraft.EquipManager.runnable.TaskManager; + +public class PlayerListen implements Listener { + @EventHandler + public void onJoin(PlayerJoinEvent e) { + TaskManager.add(e.getPlayer()); + } + + @EventHandler + public void onQuit(PlayerQuitEvent e) { + TaskManager.remove(e.getPlayer()); + } +} diff --git a/src/main/java/cn/citycraft/EquipManager/runnable/ArmorHandlerTask.java b/src/main/java/cn/citycraft/EquipManager/runnable/ArmorHandlerTask.java new file mode 100644 index 0000000..41e50de --- /dev/null +++ b/src/main/java/cn/citycraft/EquipManager/runnable/ArmorHandlerTask.java @@ -0,0 +1,30 @@ +package cn.citycraft.EquipManager.runnable; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class ArmorHandlerTask implements Runnable { + Player p; + + public ArmorHandlerTask(Player p) { + this.p = p; + } + + @Override + public void run() { + if (!p.isOnline()) + return; + ItemStack[] armors = p.getInventory().getArmorContents(); + for (ItemStack armor : armors) { + String armorperm = "equipmanager." + armor.getType().toString().toLowerCase(); + if (!p.hasPermission(armorperm)) { + p.getInventory().addItem(armor); + p.sendMessage("§6[§b装备管理§6] §c你没有 " + armorperm + " 的权限来穿戴此装备 §a已放入背包!"); + armor.setType(Material.AIR); + } + } + p.getInventory().setArmorContents(armors); + } + +} diff --git a/src/main/java/cn/citycraft/EquipManager/runnable/TaskManager.java b/src/main/java/cn/citycraft/EquipManager/runnable/TaskManager.java new file mode 100644 index 0000000..5ba4105 --- /dev/null +++ b/src/main/java/cn/citycraft/EquipManager/runnable/TaskManager.java @@ -0,0 +1,31 @@ +package cn.citycraft.EquipManager.runnable; + +import java.util.HashMap; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitTask; + +public class TaskManager { + static HashMap tasklist; + static Plugin plugin; + static int tasktime; + + public static void add(Player p) { + BukkitTask task = Bukkit.getScheduler().runTaskTimer(plugin, new ArmorHandlerTask(p), 0, tasktime); + tasklist.put(p.getName(), task); + } + + public static void init(Plugin plugin) { + TaskManager.plugin = plugin; + tasktime = plugin.getConfig().getInt("CheckTime") * 20; + tasklist = new HashMap(); + } + + public static void remove(Player p) { + if (tasklist.containsKey(p.getName())) + tasklist.remove(p.getName()).cancel(); + } + +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..8a3c773 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,3 @@ +version: 1.0 +#检测时间(秒) +CheckTime: 1 \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..f796099 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,17 @@ +name: ${project.artifactId} +description: ${project.description} +main: ${project.groupId}.${project.artifactId}.${project.artifactId} +version: ${project.version} +auther: 喵♂呜 +website: http://ci.citycraft.cn:8800/jenkins/job/${project.artifactId}/ +commands: + em: + description: 装备管理 + usage: §b使用/em reload 重载插件! +permissions: + em.*: + description: 穿戴所有装备的权限! + default: op + em.reload: + description: 重新载入插件! + default: op \ No newline at end of file