public void onCommand(CommandSender sender, String[] args) {
   if (!(sender instanceof Player)) {
     sender.sendMessage("You need to be a player to do this.");
     return;
   }
   if (args.length != 1) {
     MessageManager.getInstance().msg(sender, MessageManager.MessageType.WARN, super.getUsage());
   }
   Player p = Bukkit.getPlayer(((Player) sender).getUniqueId());
   if (args[0] == "s") {
     cm.set("ht", HubType.SINGLE);
     String world = p.getWorld().getName();
     Double x = p.getLocation().getX();
     Double y = p.getLocation().getY();
     Double z = p.getLocation().getZ();
     Float yaw = p.getLocation().getYaw();
     Float pitch = p.getLocation().getPitch();
     cm.set("hw", world);
     cm.set("hx", x);
     cm.set("hy", y);
     cm.set("hz", z);
     cm.set("hyw", yaw);
     cm.set("hph", pitch);
     MessageManager.getInstance()
         .msg(sender, MessageManager.MessageType.INFO, "Hub location set.");
   } else if (args[0] == "m") {
     MessageManager.getInstance()
         .msg(sender, MessageManager.MessageType.WARN, "We dont support multiple mode yet.");
     // TODO: Add multiple mode.
   } else {
     MessageManager.getInstance().msg(sender, MessageManager.MessageType.WARN, super.getUsage());
   }
 }
Exemple #2
0
  @Override
  public void run() {
    int i = 0;
    while (!exitFlag) {
      Message m = new Message();
      m.setAuthor("Test,author");
      m.setText("test text " + i);
      m.setSource(Source.TEST);
      if (i % 3 == 0) {
        m.setHighlighted(true);
      }
      //            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      //            try {
      //                m.setText(br.readLine());
      //            } catch (IOException e) {
      //                logger.log(Level.WARNING, "Something goes wrong...", e);
      //            }
      messageManager.sendMessage(m);

      Source[] sources = Source.values();
      if (i % 5 == 0) {
        MessageManager.getInstance()
            .sendInfoMessage(
                new InfoMessage(sources[(i / 5) % sources.length], "test info message " + i));
      }
      i++;
      synchronized (this) {
        try {
          wait(1000);
        } catch (InterruptedException e) {
          logger.log(Level.WARNING, "Something goes wrong...", e);
        }
      }
    }
  }
Exemple #3
0
public class TestChatClient implements ChatClient, Runnable {

  private static final Logger logger = Logger.getLogger(TestChatClient.class.getName());

  private MessageManager messageManager = MessageManager.getInstance();
  boolean exitFlag = false;

  @Override
  public void goOffline() {
    exitFlag = true;
  }

  @Override
  public void goOnline() {
    Thread t = new Thread(this, "TestChatClient");
    t.start();
  }

  @Override
  public ChatClientStatus getStatus() {
    return null;
  }

  @Override
  public void run() {
    int i = 0;
    while (!exitFlag) {
      Message m = new Message();
      m.setAuthor("Test,author");
      m.setText("test text " + i);
      m.setSource(Source.TEST);
      if (i % 3 == 0) {
        m.setHighlighted(true);
      }
      //            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      //            try {
      //                m.setText(br.readLine());
      //            } catch (IOException e) {
      //                logger.log(Level.WARNING, "Something goes wrong...", e);
      //            }
      messageManager.sendMessage(m);

      Source[] sources = Source.values();
      if (i % 5 == 0) {
        MessageManager.getInstance()
            .sendInfoMessage(
                new InfoMessage(sources[(i / 5) % sources.length], "test info message " + i));
      }
      i++;
      synchronized (this) {
        try {
          wait(1000);
        } catch (InterruptedException e) {
          logger.log(Level.WARNING, "Something goes wrong...", e);
        }
      }
    }
  }
}
Exemple #4
0
  public static void exitApp() {
    if (prepareExisting) {
      return;
    }

    prepareExisting = true;
    MessageManager.getInstance()
        .syncNotify(
            MessageID.OBSERVER_APP,
            new MessageManager.Caller<IAppObserver>() {
              public void call() {
                try {
                  //							ob.IAppObserver_PrepareExitApp();
                } catch (Throwable e) {
                }
              }
            });
    // 异步一下,给已经发出还没执行的异步零延时observer一个执行的机会
    MessageManager.getInstance()
        .asyncRun(
            new MessageManager.Runner() {
              @Override
              public void call() {
                isExiting = true; // 从此不能再发通知了
                MessageManager.getInstance()
                    .asyncRun(
                        new MessageManager.Runner() {
                          @Override
                          public void call() {
                            MessageManager.getInstance().silence(); // 从此延时通知直接丢掉不执行了
                            MessageManager.getInstance()
                                .asyncRun(
                                    500,
                                    new MessageManager.Runner() {
                                      @Override
                                      public void call() {
                                        android.os.Process.killProcess(android.os.Process.myPid());
                                        System.exit(0);
                                      }
                                    });
                          }
                        });
              }
            });
  }
 public void addPlayer(Player p, int g) {
   Game game = getGame(g);
   if (game == null) {
     MessageManager.getInstance()
         .sendFMessage(PrefixType.ERROR, "error.input", p, "message-No game by this ID exist!");
     return;
   }
   getGame(g).addPlayer(p);
 }
  @Override
  protected void onInitialize(boolean isReconnect) {
    super.onInitialize(isReconnect);
    LOGD(TAG, "onInitialize " + isReconnect);
    setUpdateWhenScreenOn(true);

    if (!isReconnect) {
      mManager = MessageManager.getInstance(this);
    }
  }
Exemple #7
0
 @Override
 public void onLowMemory() {
   MessageManager.getInstance()
       .syncNotify(
           MessageID.OBSERVER_APP,
           new MessageManager.Caller<IAppObserver>() {
             @Override
             public void call() {
               //				ob.IAppObserver_OnLowMemory();
             }
           });
   super.onLowMemory();
   System.gc();
 }
public class GameManager {

  static GameManager instance = new GameManager();
  private ArrayList<Game> games = new ArrayList<Game>();
  MessageManager msgmgr = MessageManager.getInstance();

  Minigame plugin;

  private GameManager() {}

  public static GameManager getInstance() {
    return instance;
  }

  public void setup(Minigame plugin) {
    this.plugin = plugin;
    LoadGames();
  }

  public Plugin getPlugin() {
    return plugin;
  }

  public void reloadGames() {
    LoadGames();
  }

  /*
   *
   *
   *
   *     RE-IMPLEMENT THIS PART
   *     LEAVING AS A REFRENCE
   *
   *
   */
  public void LoadGames() {
    FileConfiguration c = SettingsManager.getInstance().getSystemConfig();
    games.clear();
    int no = c.getInt("sg-system.arenano", 0);
    int loaded = 0;
    int a = 1;
    while (loaded < no) {
      if (c.isSet("sg-system.arenas." + a + ".x1")) {
        if (c.getBoolean("sg-system.arenas." + a + ".enabled")) {
          Minigame.$("Loading Arena: " + a);
          loaded++;
          games.add(new Game(a));
        }
      }
      a++;
    }
    // LobbyManager.getInstance().clearAllSigns();

  }

  public int getBlockGameId(Location v) {
    for (Game g : games) {
      if (g.isBlockInArena(v)) {
        return g.getID();
      }
    }
    return -1;
  }

  public int getPlayerGameId(Player p) {
    for (Game g : games) {
      if (g.isPlayerActive(p)) {
        return g.getID();
      }
    }
    return -1;
  }

  public int getPlayerSpectateId(Player p) {
    for (Game g : games) {
      if (g.isSpectator(p)) {
        return g.getID();
      }
    }
    return -1;
  }

  public boolean isPlayerActive(Player player) {
    for (Game g : games) {
      if (g.isPlayerInactive(player)) {
        return true;
      }
    }
    return false;
  }

  public boolean isPlayerInactive(Player player) {
    for (Game g : games) {
      if (g.isPlayerInactive(player)) {
        return true;
      }
    }
    return false;
  }

  public boolean isSpectator(Player player) {
    for (Game g : games) {
      if (g.isSpectator(player)) {
        return true;
      }
    }
    return false;
  }

  public void removeFromOtherQueues(Player p, int id) {
    for (Game g : getGames()) {
      if (g.isInQueue(p) && g.getID() != id) {
        g.removeFromQueue(p);
        msgmgr.sendMessage(PrefixType.INFO, "Removed from the queue in arena " + g.getID(), p);
      }
    }
  }

  public int getGameCount() {
    return games.size();
  }

  public Game getGame(int a) {
    // int t = gamemap.get(a);
    for (Game g : games) {
      if (g.getID() == a) {
        return g;
      }
    }
    return null;
  }

  public void removePlayer(Player p, boolean b) {
    for (Game g : games) {
      if (g.getAllPlayers().contains(p)) {
        // PlayerLeaveArenaEvent leavearena = new PlayerLeaveArenaEvent(p, g);
        // Bukkit.getServer().getPluginManager().callEvent(leavearena);
      }
    }
    getGame(getPlayerGameId(p)).removePlayer(p, b);
  }

  public void removeSpectator(Player p) {
    getGame(getPlayerSpectateId(p)).removeSpectator(p);
  }

  public void disableGame(int id) {
    getGame(id).disable();
  }

  public void enableGame(int id) {
    getGame(id).enable();
  }

  public ArrayList<Game> getGames() {
    return games;
  }

  public GameState getGameMode(int a) {
    for (Game g : games) {
      if (g.getID() == a) {
        return g.getState();
      }
    }
    return null;
  }

  // TODO: Actually make this countdown correctly
  public void startGame(int a) {
    getGame(a).countdown(10);
  }

  public void addPlayer(Player p, int g) {
    Game game = getGame(g);
    if (game == null) {
      MessageManager.getInstance()
          .sendFMessage(PrefixType.ERROR, "error.input", p, "message-No game by this ID exist!");
      return;
    }
    getGame(g).addPlayer(p);
  }

  /*	public void autoAddPlayer(Player pl) {
  	ArrayList < Game > qg = new ArrayList < Game > (5);
  	for (Game g: games) {
  		if (g.getMode() == Game.GameMode.WAITING) qg.add(g);
  	}
  	//TODO: fancy auto balance algorithm
  	if (qg.size() == 0) {
  		pl.sendMessage(ChatColor.RED + "No games to join");
  		msgmgr.sendMessage(PrefixType.WARNING, "No games to join!", pl);
  		return;
  	}
  	qg.get(0).addPlayer(pl);
  }*/

  public WorldEditPlugin getWorldEdit() {
    return plugin.getWorldEdit();
  }

  public void createArenaFromSelection(Player pl) {
    FileConfiguration c = SettingsManager.getInstance().getSystemConfig();
    // SettingsManager s = SettingsManager.getInstance();

    WorldEditPlugin we = getWorldEdit();
    Selection sel = we.getSelection(pl);
    if (sel == null) {
      msgmgr.sendMessage(PrefixType.WARNING, "You must make a WorldEdit Selection first!", pl);
      return;
    }
    Location max = sel.getMaximumPoint();
    Location min = sel.getMinimumPoint();

    /* if(max.getWorld()!=SettingsManager.getGameWorld() || min.getWorld()!=SettingsManager.getGameWorld()){
        pl.sendMessage(ChatColor.RED+"Wrong World!");
        return;
    }*/

    /*
     *
     *
     *
     *     RE-IMPLEMENT THIS PART
     *     LEAVING AS A REFRENCE
     *
     *
     */

    int no = c.getInt("sg-system.arenano") + 1;
    c.set("sg-system.arenano", no);
    if (games.size() == 0) {
      no = 1;
    } else no = games.get(games.size() - 1).getID() + 1;
    SettingsManager.getInstance().getSpawns().set(("spawns." + no), null);
    c.set("sg-system.arenas." + no + ".world", max.getWorld().getName());
    c.set("sg-system.arenas." + no + ".x1", max.getBlockX());
    c.set("sg-system.arenas." + no + ".y1", max.getBlockY());
    c.set("sg-system.arenas." + no + ".z1", max.getBlockZ());
    c.set("sg-system.arenas." + no + ".x2", min.getBlockX());
    c.set("sg-system.arenas." + no + ".y2", min.getBlockY());
    c.set("sg-system.arenas." + no + ".z2", min.getBlockZ());
    c.set("sg-system.arenas." + no + ".enabled", true);

    SettingsManager.getInstance().saveSystemConfig();
    hotAddArena(no);
    pl.sendMessage(ChatColor.GREEN + "Arena ID " + no + " Succesfully added");
  }

  private void hotAddArena(int no) {
    Game game = new Game(no);
    games.add(game);
    // StatsManager.getInstance().addArena(no);
    // Assassins.$("game added "+ games.size()+"
    // "+SettingsManager.getInstance().getSystemConfig().getInt("gs-system.arenano"));
  }

  public void hotRemoveArena(int no) {
    for (Game g : games.toArray(new Game[0])) {
      if (g.getID() == no) {
        games.remove(getGame(no));
      }
    }
  }

  public void gameEndCallBack(int id) {}

  public String getStringList(int gid) {
    Game g = getGame(gid);
    StringBuilder sb = new StringBuilder();
    Player[][] players = g.getPlayers();

    sb.append(
        ChatColor.GREEN
            + "<---------------------[ Alive: "
            + players[0].length
            + " ]--------------------->\n"
            + ChatColor.GREEN
            + " ");
    for (Player p : players[0]) {
      sb.append(p.getName() + ",");
    }
    sb.append("\n\n");
    sb.append(
        ChatColor.RED
            + "<---------------------[ Dead: "
            + players[1].length
            + " ]---------------------->\n"
            + ChatColor.GREEN
            + " ");
    for (Player p : players[1]) {
      sb.append(p.getName() + ",");
    }
    sb.append("\n\n");

    return sb.toString();
  }
}