Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1. package main;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.command.CommandSender;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.player.PlayerJoinEvent;
  13. import org.bukkit.event.player.PlayerLevelChangeEvent;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15. import org.bukkit.scheduler.BukkitTask;
  16.  
  17. import config.System;
  18. import prison.Prison;
  19. import prison.PrisonSet;
  20. import character.Character;
  21.  
  22. public class Main extends JavaPlugin implements Listener {
  23.  
  24. public static Main main;
  25. static List<Player> online = new ArrayList<>();
  26. static BukkitTask time = null;
  27. static BukkitTask test = null;
  28. static int t_MBC, t_AMBCP, t_KMC;
  29.  
  30. @SuppressWarnings("deprecation")
  31. public void onEnable() {
  32. main = this;
  33. getServer().getPluginManager().registerEvents(this, this);
  34. //getServer().getPluginManager().registerEvents(this, new PrisonSet());
  35. //getServer().getPluginManager().registerEvents(this, new Character_add());
  36. //getServer().getPluginManager().registerEvents(this, new Character_minus());
  37. this.saveDefaultConfig();
  38. System.saveDefault();
  39. getConfig().options().copyDefaults(true);
  40. System.get().options().copyDefaults(true);
  41. saveConfig();
  42. System.save();
  43. Main.time();
  44. Main.test();
  45. Main.reload(getConfig().getInt("Max_bad_Character"), getConfig().getInt("Achieve_Max_bad_Character_Prison"),
  46. getConfig().getInt("Kill_Monster_Character"));
  47. for (String name : System.get().getStringList("online")) {
  48. try {
  49. online.add(Bukkit.getServer().getPlayer(name));
  50. } catch (Exception e) {
  51. }
  52. }
  53. }
  54.  
  55. public void onDisable() {
  56. //time.cancel();
  57. //test.cancel();
  58. System.get().set("online", null);
  59. for (Player n : online) {
  60. System.get().set("online", n.getName());
  61. }
  62. System.save();
  63. }
  64.  
  65. public static void reload(int MBC, int AMBCP, int KMC) {
  66. t_MBC = MBC;
  67. t_AMBCP = AMBCP;
  68. t_KMC = KMC;
  69. }
  70.  
  71. public static void test() {
  72. test = Bukkit.getScheduler().runTaskTimer(Main.main, new Runnable() {
  73.  
  74. public void run() {
  75. }
  76. }, 0, 100);// 5秒
  77. }
  78.  
  79. public static void time() {
  80. time = Bukkit.getScheduler().runTaskTimer(Main.main, new Runnable() {
  81.  
  82. public void run() {
  83. int newtime = System.get().getInt("Time");
  84. if (newtime >= 5184000) {
  85. System.get().set("Time", 0);
  86. System.save();
  87. } else {
  88. System.get().set("Time", newtime++);
  89. System.save();
  90. }
  91. for (Player p : online) {
  92. if (System.get().getBoolean(p.getName() + ".inprison")) {
  93. Prison.tp(p);
  94. }
  95. if (Character.get(p) >= t_MBC) {
  96. Prison.add(p, t_AMBCP, "人品值過低");
  97. Character.add(p, (int) (t_MBC / 3));
  98. }
  99. }
  100. }
  101. }, 0, 3600);// 60秒跑一次
  102. }
  103.  
  104. public void onPlayerleverEvent(PlayerLevelChangeEvent e) {
  105. Player p = e.getPlayer();
  106. online.remove(p);
  107. }
  108.  
  109. @EventHandler
  110. public void onPlayerJoinEvent(PlayerJoinEvent e) {
  111. Player p = e.getPlayer();
  112. online.add(p);
  113. System.get().set(p.getName(), true);
  114. if (!(System.get().getBoolean(p.getName() + ".join"))) {
  115. System.get().set(p.getName() + ".join", true);
  116. System.get().set(p.getName() + ".character", 0);
  117. System.get().set(p.getName() + ".prison", 0);
  118. System.get().set(p.getName() + ".inprison", false);
  119. System.save();
  120. }
  121. }
  122.  
  123. ///// command
  124. @SuppressWarnings("deprecation")
  125. public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) {
  126. Player p = (Player) sender;
  127. if (lable.equalsIgnoreCase("optools")) {
  128. if (args[0] != null) {
  129. if (!(p.hasPermission("server.OP"))) {
  130. p.sendMessage(ChatColor.DARK_RED + "你沒有權限");
  131. return true;
  132. } else {
  133. if (args[0].equalsIgnoreCase("reload")) {
  134. reloadConfig();
  135. System.reload();
  136. System.reload();
  137. Main.reload(getConfig().getInt("Max_bad_Character"), getConfig().getInt("Achieve_Max_bad_Character_Prison"),
  138. getConfig().getInt("Kill_Monster_Character"));
  139. p.sendMessage(ChatColor.GREEN + "已重新載入");
  140. return true;
  141. }
  142. return true;
  143. }
  144. } else {
  145. p.sendMessage(ChatColor.DARK_RED + "請輸入功能");
  146. return true;
  147. }
  148. } else if (lable.equalsIgnoreCase("character")) {
  149. if (!(p.hasPermission("server.OP.character"))) {
  150. p.sendMessage(ChatColor.DARK_RED + "你沒有權限");
  151. return true;
  152. } else {
  153. Player player = Bukkit.getPlayer(args[0]);
  154. if (args.length == 3) {
  155. if (player != null) {
  156. if (args[1].equalsIgnoreCase("set")) {
  157. Character.set(player, Integer.parseInt(args[2]));
  158. p.sendMessage(ChatColor.GREEN + player.getName() + "的人品值以設為" + Integer.parseInt(args[2]));
  159. return true;
  160. } else if (args[1].equalsIgnoreCase("add")) {
  161. Character.add(player, Integer.parseInt(args[2]));
  162. p.sendMessage(ChatColor.GREEN + player.getName() + "人品值以改變" + Integer.parseInt(args[2]));
  163. return true;
  164. } else {
  165. p.sendMessage(ChatColor.DARK_RED + "用法錯誤 /character <Player> <add|set> <值>");
  166. return true;
  167. }
  168. } else {
  169. p.sendMessage(ChatColor.DARK_RED + "玩家不在線");
  170. return true;
  171. }
  172. } else {
  173. p.sendMessage(ChatColor.DARK_RED + "用法錯誤: /character <Player> <add|set> <值>");
  174. return true;
  175. }
  176. }
  177. } else if (lable.equalsIgnoreCase("prison")) {// prison <Player>
  178. // <add|set> <值> [原因]
  179. if (!(p.hasPermission("server.OP.prison"))) {
  180. p.sendMessage(ChatColor.DARK_RED + "你沒有權限");
  181. return true;
  182. } else {
  183. if (args.length >= 3) {
  184. p.sendMessage(ChatColor.DARK_RED + "用法錯誤: /prison <Player> <add|set> <值(分鐘)> [原因]");
  185. return true;
  186. } else {
  187. if (Bukkit.getServer().getPlayer(args[0]) != null) {
  188. int i = 0;
  189. try {
  190. i = Integer.parseInt(args[2]);
  191. } catch (Exception e) {
  192. p.sendMessage(ChatColor.DARK_RED + "用法錯誤: /prison <Player> <add|set> <值(分鐘)> [原因]");
  193. }
  194. String s = null;
  195. for (int si = 3; si < args.length; si++) {
  196. s += " " + args[si];
  197. }
  198. if (args[1].endsWith("add")) {
  199. Prison.add(Bukkit.getServer().getPlayer(args[0]), i, s);
  200. return true;
  201. } else if (args[1].endsWith("set")) {
  202. Prison.set(Bukkit.getServer().getPlayer(args[0]), i);
  203. p.sendMessage(ChatColor.DARK_GREEN + "將" + Bukkit.getServer().getPlayer(args[0]).getName() + "設為" + i);
  204. return true;
  205. } else {
  206. p.sendMessage(ChatColor.DARK_RED + "用法錯誤: /prison <Player> <add|set> <值(分鐘)> [原因]");
  207. p.sendMessage(ChatColor.DARK_GREEN + "將" + Bukkit.getServer().getPlayer(args[0]).getName() + "增加" + i);
  208. return true;
  209. }
  210. } else {
  211. p.sendMessage(ChatColor.DARK_RED + "玩家不在線!");
  212. return true;
  213. }
  214. }
  215. }
  216. } else if (lable.equalsIgnoreCase("setprison")) {
  217. if (!(p.hasPermission("server.OP.setprison"))) {
  218. p.sendMessage(ChatColor.DARK_RED + "你沒有權限");
  219. return true;
  220. } else {
  221. if (PrisonSet.getA() == null) {
  222. p.sendMessage(ChatColor.DARK_RED + "請先設定A點");
  223. return true;
  224. } else if (PrisonSet.getB() == null) {
  225. p.sendMessage(ChatColor.DARK_RED + "請先設定B點");
  226. return true;
  227. } else {
  228. if (PrisonSet.getA().getWorld() == PrisonSet.getB().getWorld()) {
  229. System.get().set("Prison.pointA.world", PrisonSet.getA().getWorld().getName());
  230. System.get().set("Prison.pointA.x", PrisonSet.getA().getX());
  231. System.get().set("Prison.pointA.y", PrisonSet.getA().getY());
  232. System.get().set("Prison.pointA.z", PrisonSet.getA().getZ());
  233. ///
  234. System.get().set("Prison.pointB.world", PrisonSet.getB().getWorld().getName());
  235. System.get().set("Prison.pointB.x", PrisonSet.getB().getX());
  236. System.get().set("Prison.pointB.y", PrisonSet.getB().getY());
  237. System.get().set("Prison.pointB.z", PrisonSet.getB().getZ());
  238. System.save();
  239. p.sendMessage(ChatColor.DARK_GREEN + "監獄範圍這定完成");
  240. p.sendMessage(ChatColor.DARK_PURPLE + "[小提示]記得設定傳送點/setpoint");
  241. return true;
  242. } else {
  243. p.sendMessage(ChatColor.DARK_RED + "AB點請在同一個世界");
  244. return true;// 快崩潰orz
  245. }
  246. }
  247. }
  248. } else if (lable.equalsIgnoreCase("setpoint")) {
  249. if (!(p.hasPermission("server.OP.setprison"))) {
  250. p.sendMessage(ChatColor.DARK_RED + "你沒有權限");
  251. return true;
  252. } else {
  253. System.get().set("Prison.point.x", p.getLocation().getBlockX());
  254. System.get().set("Prison.point.y", p.getLocation().getBlockY());
  255. System.get().set("Prison.point.z", p.getLocation().getBlockZ());
  256. System.save();
  257. p.sendMessage(ChatColor.DARK_GREEN + "成功設定傳送點");
  258. return true;
  259. }
  260. }
  261. return false;
  262. }
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement