Advertisement
Guest User

Untitled

a guest
Jul 19th, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. package server.model.minigames.trawler;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import server.event.CycleEvent;
  6. import server.event.CycleEventContainer;
  7. import server.event.CycleEventHandler;
  8. import server.model.players.Location;
  9. import server.model.players.Player;
  10.  
  11. public abstract class WaitingRoom {
  12.  
  13. public int minimumPlayers;
  14. public ArrayList<Player> waiting = new ArrayList<Player>();
  15. private int wait_time;
  16. private int minutes_remaining;
  17. private boolean active;
  18.  
  19. public abstract Location getLocation();
  20. public abstract boolean startGame();
  21. public abstract void onStart();
  22. public abstract void onLeave(Player p);
  23. public abstract void onJoin(Player p);
  24. public abstract void onTimeChange();
  25. public abstract boolean canStart();
  26.  
  27. public WaitingRoom(int minutes, int minimum) {
  28. this.wait_time = minutes;
  29. this.minimumPlayers = minimum;
  30. this.minutes_remaining = wait_time;
  31. startWaiting();
  32. }
  33.  
  34. public void join(Player p) {
  35. if(!waiting.contains(p)) {
  36. onJoin(p);
  37. waiting.add(p);
  38. }
  39. }
  40.  
  41. public void leave(Player p) {
  42. if(waiting.contains(p)) {
  43. onLeave(p);
  44. waiting.remove(p);
  45. }
  46. }
  47.  
  48. public void reset() {
  49. minutes_remaining = wait_time;
  50. }
  51.  
  52. public void startWaiting() {
  53. if(isActive()) {
  54. return;
  55. }
  56. setActive(true);
  57. CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
  58. @Override
  59. public void execute(CycleEventContainer container) {
  60. System.out.println(waiting.size() + "/ "+minimumPlayers);
  61. if(minutes_remaining != 0) {
  62. minutes_remaining--;
  63. onTimeChange();
  64. } else {
  65. if(startGame()) {
  66. onStart();
  67. reset();
  68. setActive(false);
  69. container.stop();
  70. } else {
  71. messageWaiting("A minimum of "+minimumPlayers+" players are needed to start this minigame!");
  72. reset();
  73. }
  74. }
  75. }
  76.  
  77. @Override
  78. public void stop() {
  79.  
  80. }
  81. }, 100);
  82. }
  83.  
  84.  
  85. public void messageWaiting(String message) {
  86. for(Player p : waiting) {
  87. if(p != null) {
  88. p.asClient().sendMessage(message);
  89. }
  90. }
  91. }
  92.  
  93. public boolean isActive() {
  94. return active;
  95. }
  96.  
  97. public void setActive(boolean active) {
  98. this.active = active;
  99. }
  100.  
  101. public int getTimeRemaining() {
  102. return minutes_remaining;
  103. }
  104.  
  105.  
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement