Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.27 KB | None | 0 0
  1. String prefix = "§6Clan§7» ";
  2. Map<Player, Player> invites = new HashMap();
  3. Map<Player, Boolean> teleports = new HashMap();
  4. private int taskId;
  5.  
  6. public void onEnable() {
  7. getServer().getPluginManager().registerEvents(this, this);
  8. }
  9.  
  10. public void onDisable() {
  11.  
  12. }
  13.  
  14. public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args) {
  15. if ((cmd.getName().equalsIgnoreCase("clan")) &&
  16. ((sender instanceof Player)))
  17. {
  18. final Player p = (Player)sender;
  19. if (args.length == 0)
  20. {
  21. p.sendMessage("§7§m-----------§7[§6Clan§7]§7§m-----------");
  22. p.sendMessage("§7Clan erstellen: §6/clan create <Name>");
  23. p.sendMessage("§7Spieler einladen: §6/clan invite <Spieler>");
  24. p.sendMessage("§7Clan-Anfrage annehmen: §6/clan accept");
  25. p.sendMessage("§7Clan-Anfrage Ablehnen: §6/clan deny");
  26. p.sendMessage("§7Spieler kicken: §6/clan kick <Spieler>");
  27. p.sendMessage("§7Zur Clan-Base: §6/clan base");
  28. p.sendMessage("§7Clan-Base setzen: §6/clan setbase");
  29. p.sendMessage("§7Clan verlassen: §6/clan leave");
  30. p.sendMessage("§7Clan-Liste: §6/clan list <Clan>");
  31. p.sendMessage("§7Clan löschen: §6/clan delete");
  32. p.sendMessage("§7§m----------------------");
  33. }
  34. if (args.length == 1)
  35. {
  36. if (args[0].equalsIgnoreCase("erstellen")) {
  37. p.sendMessage("§cVerwendung: §e/clan erstellen <Name>");
  38. }
  39. if (args[0].equalsIgnoreCase("einladen")) {
  40. p.sendMessage("§cVerwendung: §e/clan einladen <Spieler>");
  41. }
  42. if (args[0].equalsIgnoreCase("list")) {
  43. if (claned(p))
  44. {
  45. List members = getPlayers(getClan(p));
  46. p.sendMessage("§e[]-----§7§lClan-Liste§e-----[]");
  47. for (int i = 0; i < members.size(); i++)
  48. {
  49. Player t = Bukkit.getPlayer((String)members.get(i));
  50. if (t != null)
  51. p.sendMessage("§a" + t.getName());
  52. else {
  53. p.sendMessage("§7" + (String)members.get(i));
  54. }
  55. }
  56. p.sendMessage("§e[]-----§7§lClan-Liste§e-----[]");
  57. }
  58. else
  59. {
  60. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  61. }
  62. }
  63. if (args[0].equalsIgnoreCase("kick")) {
  64. p.sendMessage("§cVerwendung: §e/clan kick <Spieler>");
  65. }
  66. if (args[0].equalsIgnoreCase("löschen")) {
  67. if (claned(p))
  68. {
  69. if (isOwner(p))
  70. deleteClan(getClan(p));
  71. else {
  72. p.sendMessage(this.prefix + "Du bist nicht der Besitzer des Clans.");
  73. }
  74. }
  75. else {
  76. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  77. }
  78. }
  79. if (args[0].equalsIgnoreCase("verlassen")) {
  80. if (claned(p))
  81. {
  82. if (!isOwner(p))
  83. {
  84. for (int i = 0; i < getPlayers(getClan(p)).size(); i++)
  85. {
  86. Player t = Bukkit.getPlayer((String)getPlayers(getClan(p)).get(i));
  87. if (t != null) {
  88. t.sendMessage(this.prefix + "§7" + p.getName() + " §ahat den Clan verlassen.");
  89. }
  90. }
  91. removePlayer(getClan(p), p);
  92. }
  93. else
  94. {
  95. p.sendMessage("§cVerwendung: §e/clan löschen");
  96. }
  97. }
  98. else {
  99. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  100. }
  101. }
  102. if (args[0].equalsIgnoreCase("ablehnen")) {
  103. if (!claned(p))
  104. {
  105. if (this.invites.containsKey(p))
  106. {
  107. p.sendMessage(this.prefix + "Du hast die Einladung abgelehnt.");
  108. if (this.invites.get(p) != null) {
  109. ((Player)this.invites.get(p)).sendMessage(this.prefix + "§7" + p.getName() + " §ahat die Einladung abgelehnt.");
  110. }
  111. this.invites.remove(p);
  112. }
  113. else
  114. {
  115. p.sendMessage(this.prefix + "Du wurdest von niemandem eingeladen.");
  116. }
  117. }
  118. else {
  119. p.sendMessage(this.prefix + "Du bist in einem Clan.");
  120. }
  121. }
  122. if (args[0].equalsIgnoreCase("base")) {
  123. if (claned(p))
  124. {
  125. if (getConfig().getString("Clans." + getClan(p) + ".Base.World") != null)
  126. {
  127. if (!this.teleports.containsKey(p))
  128. {
  129. this.teleports.put(p, Boolean.valueOf(true));
  130. final Plugin plugin = this;
  131. p.sendMessage(this.prefix + "Teleportiere in 3 Sekunden... Bewege dich nicht.");
  132. this.taskId = getServer().getScheduler().runTaskLater(this, new Runnable()
  133. {
  134. public void run()
  135. {
  136. if (CraftClan.this.teleports.containsKey(p))
  137. {
  138. double x = plugin.getConfig().getDouble("Clans." + CraftClan.this.getClan(p) + ".Base.X");
  139. double y = plugin.getConfig().getDouble("Clans." + CraftClan.this.getClan(p) + ".Base.Y");
  140. double z = plugin.getConfig().getDouble("Clans." + CraftClan.this.getClan(p) + ".Base.Z");
  141. float yaw = plugin.getConfig().getInt("Clans." + CraftClan.this.getClan(p) + ".Base.Yaw");
  142. float pitch = plugin.getConfig().getInt("Clans." + CraftClan.this.getClan(p) + ".Base.Pitch");
  143. World world = Bukkit.getWorld(plugin.getConfig().getString("Clans." + CraftClan.this.getClan(p) + ".Base.World"));
  144. Location loc = new Location(world, x, y, z, yaw, pitch);
  145. p.teleport(loc);
  146. p.sendMessage(CraftClan.this.prefix + "Teleportation erfolgreich.");
  147. CraftClan.this.teleports.remove(p);
  148. plugin.getServer().getScheduler().cancelTask(CraftClan.this.taskId);
  149. }
  150. }
  151. }
  152. , 60L).getTaskId();
  153. }
  154. else
  155. {
  156. p.sendMessage(this.prefix + "Du teleportierst dich bereits.");
  157. }
  158. }
  159. else {
  160. p.sendMessage(this.prefix + "Dein Clan hat noch keine Base.");
  161. }
  162. }
  163. else {
  164. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  165. }
  166. }
  167. if (args[0].equalsIgnoreCase("setbase")) {
  168. if (claned(p))
  169. {
  170. if (isOwner(p))
  171. {
  172. Location l = p.getLocation();
  173. getConfig().set("Clans." + getClan(p) + ".Base.X", Double.valueOf(l.getX()));
  174. getConfig().set("Clans." + getClan(p) + ".Base.Y", Double.valueOf(l.getY()));
  175. getConfig().set("Clans." + getClan(p) + ".Base.Z", Double.valueOf(l.getZ()));
  176. getConfig().set("Clans." + getClan(p) + ".Base.Yaw", Float.valueOf(l.getYaw()));
  177. getConfig().set("Clans." + getClan(p) + ".Base.Pitch", Float.valueOf(l.getPitch()));
  178. getConfig().set("Clans." + getClan(p) + ".Base.World", l.getWorld().getName());
  179. saveConfig();
  180. p.sendMessage(this.prefix + "Du hast die Base gesetzt.");
  181. }
  182. else
  183. {
  184. p.sendMessage(this.prefix + "Du bist nicht der Besitzer des Clans.");
  185. }
  186. }
  187. else {
  188. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  189. }
  190. }
  191. if (args[0].equalsIgnoreCase("annehmen")) {
  192. if (!claned(p))
  193. {
  194. if (this.invites.containsKey(p))
  195. {
  196. String clan = getClan((Player)this.invites.get(p));
  197. if (getPlayers(clan).size() < 10)
  198. {
  199. addPlayer(clan, p);
  200. this.invites.remove(p);
  201. for (int i = 0; i < getPlayers(clan).size(); i++)
  202. {
  203. Player t = Bukkit.getPlayer((String)getPlayers(clan).get(i));
  204. if (t != null) {
  205. t.sendMessage(this.prefix + "§7" + p.getName() + " §aist dem Clan beigetreten.");
  206. }
  207. }
  208. }
  209. else
  210. {
  211. p.sendMessage(this.prefix + "Dieser Clan ist Überfüllt.");
  212. }
  213. }
  214. else
  215. {
  216. p.sendMessage(this.prefix + "Du wurdest von niemandem eingeladen.");
  217. }
  218. }
  219. else {
  220. p.sendMessage(this.prefix + "Du bist bereits in einem Clan.");
  221. }
  222. }
  223. }
  224. if (args.length == 2)
  225. {
  226. if (args[0].equalsIgnoreCase("erstellen")) {
  227. if (!claned(p))
  228. {
  229. String tag = args[1];
  230. if (tag.length() <= 10)
  231. {
  232. if (!clanExists(tag))
  233. {
  234. if (isValid(tag))
  235. {
  236. createClan(tag, p);
  237. p.sendMessage(this.prefix + "Du hast den Clan §7'" + tag + "' §agegründet.");
  238. }
  239. else
  240. {
  241. p.sendMessage(this.prefix + "Der Clan-Name ist ungültig.");
  242. }
  243. }
  244. else {
  245. p.sendMessage(this.prefix + "Dieser Clan existiert bereits.");
  246. }
  247. }
  248. else {
  249. p.sendMessage(this.prefix + "Der Clan-Name ist zu lang.");
  250. }
  251. }
  252. else
  253. {
  254. p.sendMessage(this.prefix + "Du bist bereits in einem Clan.");
  255. }
  256. }
  257. if (args[0].equalsIgnoreCase("list"))
  258. {
  259. String clan = args[1].toLowerCase();
  260. if (getConfig().getString("Clans." + clan + ".Owner") != null)
  261. {
  262. List members = getPlayers(clan);
  263. p.sendMessage("§e[]-----§7§lClan-Liste§e-----[]");
  264. for (int i = 0; i < members.size(); i++)
  265. {
  266. Player t = Bukkit.getPlayer((String)members.get(i));
  267. if (t != null)
  268. p.sendMessage("§a" + t.getName());
  269. else {
  270. p.sendMessage("§7" + (String)members.get(i));
  271. }
  272. }
  273. p.sendMessage("§e[]-----§7§lClan-Liste§e-----[]");
  274. }
  275. else
  276. {
  277. p.sendMessage(this.prefix + "Clan nicht gefunden.");
  278. }
  279. }
  280. if (args[0].equalsIgnoreCase("kick")) {
  281. if (claned(p))
  282. {
  283. if (isOwner(p))
  284. {
  285. List members = getPlayers(getClan(p));
  286. Player t = Bukkit.getPlayer(args[1]);
  287. if (members.contains(t.getName().toLowerCase()))
  288. {
  289. removePlayer(getClan(p), t);
  290. for (int i = 0; i < getPlayers(getClan(p)).size(); i++)
  291. {
  292. Player tt = Bukkit.getPlayer((String)getPlayers(getClan(p)).get(i));
  293. if (tt != null) {
  294. tt.sendMessage(this.prefix + "§7" + t.getName() + " §awurde aus dem Clan gekickt.");
  295. }
  296. t.sendMessage("§4Du wurdest mit einen trit in dein Alerwertesten aus dem Clan gekickt!");
  297. }
  298. }
  299. else
  300. {
  301. p.sendMessage(this.prefix + "Dieser Spieler ist nicht in deinem Clan.");
  302. }
  303. }
  304. else
  305. {
  306. p.sendMessage(this.prefix + "Du musst der Besitzer sein.");
  307. }
  308. }
  309. else {
  310. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  311. }
  312. }
  313. if (args[0].equalsIgnoreCase("einladen"))
  314. {
  315. String name = args[1];
  316. if (claned(p))
  317. {
  318. if (isOwner(p))
  319. {
  320. Player t = Bukkit.getPlayer(name);
  321. if (t != null)
  322. {
  323. if (!claned(t))
  324. {
  325. if (!this.invites.containsKey(t))
  326. {
  327. if (t != p)
  328. {
  329. invitePlayer(t, p);
  330. p.sendMessage(this.prefix + "Du hast §7" + t.getName() + " §azu deinem Clan eingeladen.");
  331. t.sendMessage(" ");
  332. t.sendMessage("§3Du wurdest vom Clan §7" + getClanTag(p) + " §3eingeladen.");
  333. t.sendMessage("§3Du willst die Einladung annehmen? §a/clan annehmen");
  334. t.sendMessage("§3Du willst die Einladung ablehnen? §c/clan ablehnen");
  335. t.sendMessage(" ");
  336. }
  337. else
  338. {
  339. p.sendMessage(this.prefix + "Du kannst dich nicht selbst einladen.");
  340. }
  341. }
  342. else {
  343. p.sendMessage(this.prefix + "Dieser Spieler wurde bereits von jemandem eingeladen.");
  344. }
  345. }
  346. else {
  347. p.sendMessage(this.prefix + "Dieser Spieler ist bereits in einem Clan.");
  348. }
  349. }
  350. else {
  351. p.sendMessage(this.prefix + "Dieser Spieler ist nicht online.");
  352. }
  353. }
  354. else
  355. {
  356. p.sendMessage(this.prefix + "Du bist nicht der Besitzer des Clans.");
  357. }
  358. }
  359. else {
  360. p.sendMessage(this.prefix + "Du bist in keinem Clan.");
  361. }
  362. }
  363. }
  364. }
  365. return false;
  366. }
  367.  
  368. public void deleteClan(String clan)
  369. {
  370. List members = getConfig().getStringList("Clans." + clan.toLowerCase() + ".Members");
  371. for (int i = 0; i < members.size(); i++)
  372. {
  373. Player t = Bukkit.getPlayer((String)members.get(i));
  374. if (t != null) {
  375. t.sendMessage(this.prefix + "Der Clan wurde geschlossen.");
  376. }
  377. }
  378. for (int i = 0; i < members.size(); i++) {
  379. getConfig().set("Spieler." + (String)members.get(i) + ".Clan", null);
  380. }
  381. getConfig().set("Clans." + clan, null);
  382. saveConfig();
  383. }
  384.  
  385. public void invitePlayer(Player invited, Player inviter)
  386. {
  387. this.invites.put(invited, inviter);
  388. }
  389.  
  390. @EventHandler
  391. public void onPotionThrow(PotionSplashEvent event)
  392. {
  393. if ((event.getPotion().getShooter() instanceof Player))
  394. {
  395. Player p = (Player)event.getPotion().getShooter();
  396. for (LivingEntity ent : event.getAffectedEntities())
  397. if ((ent instanceof Player))
  398. {
  399. Player t = (Player)ent;
  400. if ((t != p) &&
  401. (getClan(p) != null) && (getClan(t) != null) && (getClan(p).equalsIgnoreCase(getClan(t))))
  402. event.setCancelled(true);
  403. }
  404. }
  405. }
  406.  
  407. @EventHandler
  408. public void onDamage(EntityDamageByEntityEvent event)
  409. {
  410. if ((event.getEntity() instanceof Player))
  411. {
  412. Player p = (Player)event.getEntity();
  413. if ((event.getDamager() instanceof Player))
  414. {
  415. Player t = (Player)event.getDamager();
  416. if ((getClan(p) != null) && (getClan(t) != null) && (getClan(p).equalsIgnoreCase(getClan(t)))) {
  417. event.setCancelled(true);
  418. }
  419. }
  420. if ((event.getDamager() instanceof Arrow))
  421. {
  422. Player t = (Player)((Arrow)event.getDamager()).getShooter();
  423. if ((getClan(p) != null) && (getClan(t) != null) && (getClan(p).equalsIgnoreCase(getClan(t))))
  424. event.setCancelled(true);
  425. }
  426. }
  427. }
  428.  
  429. @EventHandler
  430. public void onMove(PlayerMoveEvent event)
  431. {
  432. if ((this.teleports.containsKey(event.getPlayer())) &&
  433. (event.getFrom().distance(event.getTo()) > 0.1D))
  434. {
  435. this.teleports.remove(event.getPlayer());
  436. event.getPlayer().sendMessage(this.prefix + "§cTeleportation abgebrochen! Du hast dich Bewegt!");
  437. getServer().getScheduler().cancelTask(this.taskId);
  438. }
  439. }
  440.  
  441. public boolean isOwner(Player p)
  442. {
  443. String owner = getConfig().getString("Clans." + getClan(p).toLowerCase() + ".Owner");
  444. if (p.getName().equalsIgnoreCase(owner)) {
  445. return true;
  446. }
  447. return false;
  448. }
  449.  
  450. public boolean isValid(String code)
  451. {
  452. return code.matches("[aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789_-]*");
  453. }
  454.  
  455. public boolean clanExists(String clan)
  456. {
  457. if (getConfig().getString("Clans." + clan.toLowerCase() + ".Owner") == null) {
  458. return false;
  459. }
  460. return true;
  461. }
  462.  
  463. public void addPlayer(String clan, Player p)
  464. {
  465. List members = getConfig().getStringList("Clans." + clan.toLowerCase() + ".Members");
  466. members.add(p.getName().toLowerCase());
  467. getConfig().set("Clans." + clan.toLowerCase() + ".Members", members);
  468. getConfig().set("Spieler." + p.getName().toLowerCase() + ".Clan", clan.toLowerCase());
  469. saveConfig();
  470. }
  471.  
  472. public void removePlayer(String clan, Player p)
  473. {
  474. List members = getConfig().getStringList("Clans." + clan.toLowerCase() + ".Members");
  475. members.remove(p.getName().toLowerCase());
  476. getConfig().set("Clans." + clan.toLowerCase() + ".Members", members);
  477. getConfig().set("Spieler." + p.getName().toLowerCase() + ".Clan", null);
  478. saveConfig();
  479. }
  480.  
  481. public List<String> getPlayers(String clan)
  482. {
  483. List list = getConfig().getStringList("Clans." + clan.toLowerCase() + ".Members");
  484. return list;
  485. }
  486.  
  487. public String getClanTag(Player p)
  488. {
  489. String tag = getConfig().getString("Clans." + getClan(p) + ".Name");
  490. return tag;
  491. }
  492.  
  493. public String getClan(Player p)
  494. {
  495. String clan = getConfig().getString("Spieler." + p.getName().toLowerCase() + ".Clan");
  496. return clan;
  497. }
  498.  
  499. public boolean claned(Player p)
  500. {
  501. if (getConfig().getString("Spieler." + p.getName().toLowerCase() + ".Clan") == null) {
  502. return false;
  503. }
  504. return true;
  505. }
  506.  
  507. @EventHandler
  508. public void onQuit(PlayerQuitEvent event) {
  509. if (this.invites.containsKey(event.getPlayer()))
  510. this.invites.remove(event.getPlayer());
  511. }
  512.  
  513. public void createClan(String clanName, Player p) {
  514. getConfig().set("Clans." + clanName.toLowerCase() + ".Name", clanName);
  515. getConfig().set("Clans." + clanName.toLowerCase() + ".Owner", p.getName().toLowerCase());
  516. getConfig().set("Spieler." + p.getName().toLowerCase() + ".Clan", clanName.toLowerCase());
  517.  
  518. List m = getConfig().getStringList("Clans." + clanName.toLowerCase() + ".Members");
  519. m.add(p.getName().toLowerCase());
  520. getConfig().set("Clans." + clanName.toLowerCase() + ".Members", m);
  521. saveConfig();
  522. }
  523. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement