Advertisement
Guest User

TTT

a guest
Apr 29th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.33 KB | None | 0 0
  1. package eu.NowLow.TTT.game;
  2.  
  3. import org.bukkit.entity.Player;
  4. import org.bukkit.event.EventHandler;
  5. import org.bukkit.event.Listener;
  6. import org.bukkit.event.block.BlockBreakEvent;
  7. import org.bukkit.event.entity.EntityDamageEvent;
  8. import org.bukkit.event.entity.FoodLevelChangeEvent;
  9. import org.bukkit.event.inventory.InventoryClickEvent;
  10. import org.bukkit.event.weather.WeatherChangeEvent;
  11.  
  12. /**
  13. * Created by olele on 26.04.2017.
  14. */
  15. public class Events implements Listener{
  16.  
  17. @EventHandler
  18. public void onBlockBreak(BlockBreakEvent e){
  19. e.setCancelled(true);
  20. }
  21. @EventHandler
  22. public void onFood(FoodLevelChangeEvent e) {
  23. e.setCancelled(true);
  24. e.setFoodLevel(20);
  25. }
  26.  
  27. @EventHandler
  28. public void onDamage(EntityDamageEvent e) {
  29. if(e.getEntity() instanceof Player) {
  30. e.setCancelled(true);
  31. }
  32. }
  33.  
  34. @EventHandler
  35. public void onInventoryClickEvent(InventoryClickEvent e) {
  36. e.setCancelled(true);
  37. }
  38.  
  39. @EventHandler
  40. public void onWeatherChnageEvenet(WeatherChangeEvent e) {
  41. e.setCancelled(true);
  42. }
  43.  
  44.  
  45.  
  46.  
  47. }
  48. package eu.NowLow.TTT.game;
  49.  
  50. import eu.NowLow.TTT.Main;
  51. import eu.NowLow.TTT.gamestates.GameState;
  52. import eu.NowLow.TTT.manager.Inventorys;
  53. import eu.NowLow.TTT.manager.Scoreboard;
  54. import eu.NowLow.TTT.manager.StatsManager;
  55. import eu.NowLow.TTT.utils.Data;
  56. import org.bukkit.entity.Player;
  57. import org.bukkit.event.EventHandler;
  58. import org.bukkit.event.Listener;
  59. import org.bukkit.event.player.PlayerJoinEvent;
  60.  
  61.  
  62. /**
  63. * Created by olele on 23.04.2017.
  64. */
  65. public class JoinManager implements Listener{
  66.  
  67. @EventHandler
  68. public void onJoin(PlayerJoinEvent e) {
  69. Player p = e.getPlayer();
  70. StatsManager.loadStatsFromPlayer(p);
  71. if(Main.gs == GameState.LOBBY) {
  72. e.setJoinMessage(Data.Prefix + "§3Der Spieler §6" + p.getName() + "§3 ist der Runde beigetreten!");
  73. }else{
  74. e.setJoinMessage(null);
  75. }
  76. Scoreboard.setScoreboard(p);
  77. Inventorys.getLobbyItems(p);
  78.  
  79.  
  80. }
  81. }
  82. package eu.NowLow.TTT.game;
  83.  
  84. import eu.NowLow.TTT.Main;
  85. import eu.NowLow.TTT.gamestates.GameState;
  86. import eu.NowLow.TTT.manager.TeamManager;
  87. import eu.NowLow.TTT.utils.Data;
  88. import org.bukkit.Bukkit;
  89. import org.bukkit.entity.Player;
  90. import org.bukkit.event.EventHandler;
  91. import org.bukkit.event.Listener;
  92. import org.bukkit.event.player.PlayerJoinEvent;
  93. import org.bukkit.event.player.PlayerQuitEvent;
  94.  
  95. /**
  96. * Created by olele on 23.04.2017.
  97. */
  98. public class MainListener implements Listener{
  99.  
  100. public MainListener(eu.NowLow.TTT.Main Main) {
  101. this.pl = Main;
  102. }
  103. private eu.NowLow.TTT.Main pl;
  104.  
  105. static int cd;
  106. static int cdz;
  107.  
  108. @EventHandler
  109. public void onJoin(PlayerJoinEvent e){
  110. if(Main.gs == GameState.LOBBY){
  111. Player p = e.getPlayer();
  112. e.setJoinMessage(Data.Prefix + "§6Der Spieler §e" + p.getName() + "§6 hat das Spiel betreten!");
  113.  
  114. if(Bukkit.getOnlinePlayers().size() > 2){
  115. cdz = 61;
  116. Bukkit.broadcastMessage(Data.Prefix + "§eEs sind genügend Spieler Online! damit das Spiel startet");
  117.  
  118. cd = Bukkit.getScheduler().scheduleSyncRepeatingTask(pl, new Runnable() {
  119. @Override
  120. public void run() {
  121. cdz--;
  122. if (cdz == 60) {
  123. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  124. }
  125. if (cdz == 50) {
  126. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  127. }
  128. if (cdz == 40) {
  129. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  130. }
  131. if (cdz == 30) {
  132. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  133. }
  134. if (cdz == 20) {
  135. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  136. }
  137. if (cdz == 10) {
  138. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  139. }
  140. if (cdz < 5 && cdz > 1) {
  141. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6" + cdz + "§e Sekunden!");
  142. }
  143. if (cdz == 1) {
  144. Bukkit.broadcastMessage(Data.Prefix + "§eDas Spiel beginnt in §6eienr§e Sekunde!");
  145.  
  146. Bukkit.getScheduler().cancelTask(cd);
  147. Main.gs = GameState.INGAME;
  148.  
  149. for(Player all : Bukkit.getOnlinePlayers()) {
  150. if(!TeamManager.detective.contains(all) || !TeamManager.traitor.contains(all)) {
  151. TeamManager.pickRandomTeams(all);
  152.  
  153. }
  154. }
  155. }
  156.  
  157. }
  158. },20, 20);
  159.  
  160. }
  161. }
  162. }
  163.  
  164. @EventHandler
  165. public void onQuit(PlayerQuitEvent e) {
  166. Player p = e.getPlayer();
  167. if(Bukkit.getOnlinePlayers().size() == 2){
  168. if(Main.gs == GameState.LOBBY){
  169. if(Bukkit.getScheduler().isCurrentlyRunning(cd)) {
  170. Bukkit.getScheduler().cancelTask(cd);
  171. Bukkit.broadcastMessage(Data.Prefix + "§3Es sind zu wenige §6Spieler §3online, damit der Couuntdown §6weiterlaufen §3kann!");
  172. cdz = 61;
  173. }
  174. }
  175. }
  176. }
  177.  
  178.  
  179.  
  180. }
  181. package eu.NowLow.TTT.game;
  182.  
  183. import eu.NowLow.TTT.Main;
  184. import eu.NowLow.TTT.gamestates.GameState;
  185. import eu.NowLow.TTT.utils.Data;
  186. import org.bukkit.entity.Player;
  187. import org.bukkit.event.EventHandler;
  188. import org.bukkit.event.Listener;
  189. import org.bukkit.event.player.PlayerQuitEvent;
  190.  
  191. /**
  192. * Created by olele on 24.04.2017.
  193. */
  194. public class QuitMessage implements Listener {
  195.  
  196. @EventHandler
  197. public void onQuit(PlayerQuitEvent e) {
  198. Player p = e.getPlayer();
  199. if (Main.gs == GameState.LOBBY) {
  200. e.setQuitMessage(Data.Prefix + "§3Der Spieler §6" + p.getName() + "§3 hat das Spiel verlassen!");
  201. return;
  202. }
  203.  
  204.  
  205. }
  206.  
  207. }
  208.  
  209.  
  210. package eu.NowLow.TTT.gamestates;
  211.  
  212. /**
  213. * Created by olele on 23.04.2017.
  214. */
  215. public enum GameState {
  216.  
  217. Starting,
  218. LOBBY,
  219. INGAME,
  220. ENDING,
  221.  
  222.  
  223. }
  224. package eu.NowLow.TTT.manager;
  225.  
  226. import org.bukkit.Material;
  227. import org.bukkit.entity.Player;
  228.  
  229. /**
  230. * Created by olele on 24.04.2017.
  231. */
  232. public class Inventorys {
  233.  
  234. public static void getLobbyItems(Player p) {
  235. p.getInventory().clear();
  236. p.getInventory().setArmorContents(null);
  237. p.getInventory().setItem(0, ItemCreator.CreateItem(Material.NETHER_STAR, 1, 0, "§ePässe", "§7Wähle pässe aus"));
  238. p.getInventory().setItem(8, ItemCreator.CreateItem(Material.SLIME_BALL, 1, 0, "§cRunde Verlassen", "§7Verlasse die Runde"));
  239. p.updateInventory();
  240. }
  241. }
  242. package eu.NowLow.TTT.manager;
  243.  
  244. import org.bukkit.Material;
  245. import org.bukkit.inventory.ItemStack;
  246. import org.bukkit.inventory.meta.ItemMeta;
  247.  
  248. import java.util.ArrayList;
  249.  
  250. /**
  251. * Created by olele on 24.04.2017.
  252. */
  253. public class ItemCreator {
  254.  
  255. public static ItemStack CreateItem(Material m, int Anzahl, int SubID, String Displayname, String lore) {
  256.  
  257. ItemStack i = new ItemStack(m, Anzahl, (short) SubID);
  258. ItemMeta im = i.getItemMeta();
  259. im.setDisplayName(Displayname);
  260. ArrayList<String> list = new ArrayList<>();
  261. list.add(lore);
  262. im.setLore(list);
  263. i.setItemMeta(im);
  264. return i;
  265. }
  266. }
  267. package eu.NowLow.TTT.manager;
  268.  
  269. import org.bukkit.entity.Player;
  270.  
  271. /**
  272. * Created by olele on 23.04.2017.
  273. */
  274. public class Scoreboard {
  275.  
  276. public static void setScoreboard(Player p) {
  277. }
  278. }
  279. package eu.NowLow.TTT.manager;
  280.  
  281. import eu.NowLow.TTT.utils.Data;
  282. import org.bukkit.Bukkit;
  283. import org.bukkit.Location;
  284. import org.bukkit.command.Command;
  285. import org.bukkit.command.CommandExecutor;
  286. import org.bukkit.command.CommandSender;
  287. import org.bukkit.entity.Player;
  288.  
  289. import java.io.IOException;
  290.  
  291. /**
  292. * Created by olele on 23.04.2017.
  293. */
  294. public class SpawnManager implements CommandExecutor{
  295.  
  296. @Override
  297. public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
  298. if(cmd.getName().equalsIgnoreCase("setspawn")){
  299. Player p = (Player)sender;
  300. if(p.hasPermission("ttt.setspawn")){
  301. if(args.length == 1) {
  302. Location loc = p.getLocation();
  303. double x = loc.getX();
  304. double y = loc.getY();
  305. double z = loc.getZ();
  306. double yaw = loc.getYaw();
  307. double pitch = loc.getPitch();
  308. String Weltname = loc.getWorld().getName();
  309.  
  310. Data.cfg.set("Spawn" + args[0] + ".X", x);
  311. Data.cfg.set("Spawn" + args[0] + ".Y", y);
  312. Data.cfg.set("Spawn" + args[0] + ".Yaw", yaw);
  313. Data.cfg.set("Spawn" + args[0] + ".Pitch", pitch);
  314. Data.cfg.set("Spawn" + args[0] + ".WeltName", Weltname);
  315. try {
  316. Data.cfg.save(Data.file);
  317. } catch (IOException e) {
  318. e.printStackTrace();
  319. }
  320. }else{
  321. p.sendMessage(Data.Prefix + "§cGebe folgendes ein: /SetSpawn [Nummer]");
  322. }
  323. }else{
  324. p.sendMessage(Data.NoPerms);
  325. }
  326. }
  327. return false;
  328. }
  329.  
  330. public static void teleportToSpawn(Player p, int Spawnzahl){
  331.  
  332. int x = Data.cfg.getInt("Spawn" + Spawnzahl + ".X");
  333. int y = Data.cfg.getInt("Spawn" + Spawnzahl + ".Y");
  334. int z = Data.cfg.getInt("Spawn" + Spawnzahl + ".Z");
  335. int yaw = Data.cfg.getInt("Spawn" + Spawnzahl + ".Yaw");
  336. int pitch = Data.cfg.getInt("Spawn" + Spawnzahl + ".Pitch");
  337. String weltname = Data.cfg.getString("Spawn" + Spawnzahl + ".WeltName");
  338. Location loc = new Location(Bukkit.getWorld(weltname), x, y, z);
  339.  
  340. p.teleport(loc);
  341. }
  342. }
  343. package eu.NowLow.TTT.manager;
  344.  
  345. import org.bukkit.entity.Player;
  346.  
  347. import java.util.HashMap;
  348.  
  349. /**
  350. * Created by olele on 23.04.2017.
  351. */
  352. public class StatsManager {
  353.  
  354. public static HashMap<String, Integer> detecivepaesse = new HashMap<>();
  355. public static HashMap<String, Integer> traitorpaesse = new HashMap<>();
  356.  
  357.  
  358. public static void loadStatsFromPlayer(Player p) {
  359. detecivepaesse.put(p.getName(), 0);
  360. traitorpaesse.put(p.getName(), 0);
  361. }
  362.  
  363. }
  364. package eu.NowLow.TTT.manager;
  365.  
  366. import eu.NowLow.TTT.Main;
  367. import eu.NowLow.TTT.gamestates.GameState;
  368. import eu.NowLow.TTT.utils.Data;
  369. import org.bukkit.Bukkit;
  370. import org.bukkit.Material;
  371. import org.bukkit.Sound;
  372. import org.bukkit.entity.Player;
  373. import org.bukkit.event.EventHandler;
  374. import org.bukkit.event.Listener;
  375. import org.bukkit.event.block.Action;
  376. import org.bukkit.event.inventory.InventoryClickEvent;
  377. import org.bukkit.event.inventory.InventoryType;
  378. import org.bukkit.event.player.PlayerInteractEvent;
  379. import org.bukkit.inventory.Inventory;
  380. import org.bukkit.inventory.ItemStack;
  381. import org.bukkit.inventory.meta.ItemMeta;
  382.  
  383.  
  384. import java.util.ArrayList;
  385.  
  386. /**
  387. * Created by olele on 23.04.2017.
  388. */
  389. public class TeamManager implements Listener{
  390.  
  391. public static ArrayList<Player> normal = new ArrayList<Player>();
  392. public static ArrayList<Player> detective = new ArrayList<Player>();
  393. public static ArrayList<Player> traitor = new ArrayList<Player>();
  394.  
  395. @EventHandler
  396. public void onInteract(PlayerInteractEvent e) {
  397. Player p = e.getPlayer();
  398. try{
  399.  
  400. if(e.getItem().getType() == Material.NETHER_STAR) {
  401. if(Main.gs == GameState.LOBBY) {
  402. if(e.getAction().equals(Action.RIGHT_CLICK_AIR) || e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
  403. Inventory inv = Bukkit.createInventory(null, InventoryType.CHEST, "§6Pässe");
  404. ItemStack i = new ItemStack(Material.REDSTONE_BLOCK);
  405. ItemMeta im = i.getItemMeta();
  406. im.setDisplayName("§4Traitor Pass");
  407. i.setItemMeta(im);
  408.  
  409. ItemStack i2 = new ItemStack(Material.LAPIS_BLOCK);
  410. ItemMeta im2 = i2.getItemMeta();
  411. im2.setDisplayName("§4Detective Pass");
  412. i2.setItemMeta(im2);
  413.  
  414. inv.setItem(12, i2);
  415. inv.setItem(14, i);
  416.  
  417. p.openInventory(inv);
  418. p.playSound(p.getLocation(), Sound.LEVEL_UP, 1, 1);
  419. return;
  420. }
  421. }
  422. }
  423.  
  424. }catch (Exception e1) {}
  425. }
  426. @EventHandler
  427. public void onClick(InventoryClickEvent e) {
  428. try {
  429. Player p = (Player)e.getWhoClicked();
  430. if(e.getInventory().getName().equalsIgnoreCase("§6Pässe")) {
  431. if(Main.gs == GameState.LOBBY) {
  432. if(TeamManager.detective.contains(p) || TeamManager.traitor.contains(p)) {
  433. if (e.getCurrentItem().getType() == Material.LAPIS_BLOCK) {
  434. if (detective.size() < 3) {
  435. if (StatsManager.detecivepaesse.get(p.getName()) > 0) {
  436. StatsManager.detecivepaesse.put(p.getName(), StatsManager.detecivepaesse.get(p.getName()) - 1);
  437. TeamManager.detective.add(p);
  438. p.sendMessage(Data.Prefix + "§eDu wirst §bDetective §ewerden!");
  439. p.closeInventory();
  440.  
  441. } else {
  442. p.sendMessage(Data.Prefix + "§cDu hast keine Detective Pässe die du benutzen kannst!");
  443. p.closeInventory();
  444. p.playSound(p.getLocation(), Sound.CHICKEN_EGG_POP, 1, 1);
  445. return;
  446. }
  447.  
  448. return;
  449. }else{
  450. p.sendMessage(Data.Prefix + "§cEs sind breists zu viele Detective!");
  451. return;
  452. }
  453. }
  454. if (e.getCurrentItem().getType() == Material.REDSTONE_BLOCK) {
  455. if(traitor.size() < 5) {
  456. if(StatsManager.traitorpaesse.get(p.getName()) > 0) {
  457. StatsManager.traitorpaesse.put(p.getName(), StatsManager.traitorpaesse.get(p.getName()) - 1);
  458. TeamManager.traitor.add(p);
  459. p.sendMessage(Data.Prefix + "§eDu wirst §cTraitor §ewerden!");
  460. p.closeInventory();
  461. return;
  462. }else{
  463. p.sendMessage(Data.Prefix + "§cDu hast leider keine Traitor Pässe mehr!");
  464. return;
  465. }
  466. }else{
  467. p.sendMessage(Data.Prefix + "§cES sind bereits zu viele Traitor");
  468. return;
  469. }
  470.  
  471.  
  472. }
  473. }else {
  474. p.sendMessage(Data.Prefix + "§cDu hast bereits einen Pass eingelöst");
  475. p.playSound(p.getLocation(), Sound.CHICKEN_EGG_POP, 1, 1);
  476. p.closeInventory();
  477. return;
  478. }
  479. }else{
  480. p.sendMessage(Data.Prefix + "§cDu kannst nun keine Pässe mehr auswählen!");
  481. p.closeInventory();
  482. }
  483. }
  484. }catch(Exception e1) {}
  485. }
  486. public static void pickRandomTeams(Player p) {
  487.  
  488. }
  489.  
  490. }
  491. package eu.NowLow.TTT.utils;
  492.  
  493. import org.bukkit.configuration.file.YamlConfiguration;
  494.  
  495. import java.io.File;
  496.  
  497. /**
  498. * Created by olele on 23.04.2017.
  499. */
  500. public class Data {
  501.  
  502. public static String Prefix = "§8[§3TTT§8]";
  503. public static String NoPerms = Prefix +"§cDu hast nicht genügend Rechte um dies zu tun!";
  504. public static File file = new File("plugin//TTT//spawns.yml");
  505. public static YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
  506. }
  507. package eu.NowLow.TTT;
  508.  
  509. import eu.NowLow.TTT.game.Events;
  510. import eu.NowLow.TTT.game.JoinManager;
  511. import eu.NowLow.TTT.game.MainListener;
  512. import eu.NowLow.TTT.game.QuitMessage;
  513. import eu.NowLow.TTT.gamestates.GameState;
  514. import eu.NowLow.TTT.manager.SpawnManager;
  515. import eu.NowLow.TTT.manager.TeamManager;
  516. import eu.NowLow.TTT.utils.Data;
  517. import org.bukkit.Bukkit;
  518. import org.bukkit.plugin.java.JavaPlugin;
  519.  
  520. /**
  521. * Created by olele on 23.04.2017.
  522. */
  523. public class Main extends JavaPlugin{
  524.  
  525. public static GameState gs;
  526. public static int cd;
  527. public static int waitforplayer;
  528. public void onEnable() {
  529. waitforplayer = 8;
  530. gs = GameState.LOBBY;
  531. Bukkit.getConsoleSender().sendMessage("§3Das Plugin wurde gestartet!");
  532. loadEvents();
  533. loadCommands();
  534. cd = Bukkit.getScheduler().scheduleAsyncRepeatingTask(this, new Runnable() {
  535. @Override
  536. public void run() {
  537. waitforplayer--;
  538. if(Bukkit.getOnlinePlayers().size() < 2) {
  539. if (Main.gs == GameState.LOBBY) {
  540. if (waitforplayer == 0) {
  541. Bukkit.broadcastMessage(Data.Prefix + "§3Warte auf weitere Spieler...");
  542. waitforplayer = 8;
  543. }
  544. } else {
  545. Bukkit.getScheduler().cancelTask(cd);
  546. }
  547. }
  548.  
  549. }
  550. },20, 20);
  551.  
  552.  
  553. }
  554.  
  555. public void onDisable() {
  556. Bukkit.getConsoleSender().sendMessage("§cDas Plugin wird gestoppt!");
  557.  
  558. }
  559. public void loadEvents() {
  560. Bukkit.getPluginManager().registerEvents(new JoinManager(), this);
  561. Bukkit.getPluginManager().registerEvents(new MainListener(this), this);
  562. Bukkit.getPluginManager().registerEvents(new QuitMessage(), this);
  563. Bukkit.getPluginManager().registerEvents(new TeamManager(), this);
  564. Bukkit.getPluginManager().registerEvents(new Events(), this);
  565.  
  566.  
  567. }
  568. public void loadCommands() {
  569. getCommand("setspawn").setExecutor(new SpawnManager());
  570.  
  571. }
  572. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement