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()); } }
@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); } } } }
@Override public void run() { DuelManager dm = plugin.getDuelManager(); FileManager fm = plugin.getFileManager(); MessageManager mm = plugin.getMessageManager(); int duelTime = fm.getDuelTime(); String senderName = sender.getName(); String targetName = target.getName(); UUID senderUUID = sender.getUniqueId(); UUID targetUUID = target.getUniqueId(); int duelSize = duelArena.getPlayers().size(); if (plugin.isDebugEnabled()) { SendConsoleMessage.debug("Duel size: " + duelSize); } if (duelSize == 0) { dm.endDuel(duelArena); this.cancel(); } if (this.countDown > 0 && duelSize == 2) { String duelStartActionBar = mm.getDuelStartingActionBarMessage(); duelStartActionBar = duelStartActionBar.replaceAll("%seconds%", String.valueOf(this.countDown)); Util.sendActionBarMessage(sender, target, duelStartActionBar); this.countDown--; } else { if (duelSize == 2) { Util.setTime(sender, target, this.countDown); Util.sendMsg(sender, target, ChatColor.YELLOW + "Duel!"); duelArena.setDuelState(DuelState.STARTED); dm.surroundLocation(duelArena.getSpawnpoint1(), Material.AIR); dm.surroundLocation(duelArena.getSpawnpoint2(), Material.AIR); dm.updateDuelStatusSign(duelArena); } // dm.removeFrozenPlayer(senderUUID); // dm.removeFrozenPlayer(targetUUID); if (plugin.isDebugEnabled()) { SendConsoleMessage.debug("Stopping duel start thread."); } this.cancel(); if (duelTime != 0 && duelSize == 2) { if (plugin.isDebugEnabled()) { SendConsoleMessage.debug("Duel time limit is set, starting countdown task."); } new DuelTimeThread(plugin, sender, target, duelArena, duelTime) .runTaskTimer(plugin, 20L, 20L); } } }
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); } } } } }
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 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); } }
@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(); }
/** @param object */ private void readData() { if (mManager == null) return; dashIcon = R.drawable.ic_extension_whts; int mCount = mManager.getmCount(); LOGD(TAG, "count=" + mCount); if (mCount > 0) { dashVisible = true; dashStatus = "" + mCount; Resources res = getResources(); String book = res.getQuantityString(R.plurals.notifications, mCount, mCount); dashTitle = book; ArrayList<MessageWht> msgs = mManager.getmMsgs(); if (msgs != null) { StringBuilder sb = new StringBuilder(); String and = ""; for (MessageWht msg : msgs) { sb.append(and); sb.append(msg.getText()); and = "\n"; } dashSubtitle = sb.toString(); } } else { dashVisible = false; } }
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"); }
@Override public String resolve(String variableName, Json sr, Properties properties) { String activityLegacyCode; OWLLiteral variableLegacyCode = OWL.dataProperty( MessageManager.findIndividualFromVariable(variableName), "legacy:hasLegacyCode"); if (variableLegacyCode != null && variableLegacyCode.getLiteral().length() > 0) activityLegacyCode = variableLegacyCode .getLiteral(); // look for a specific activity as defined with the variable else activityLegacyCode = properties.getProperty("LEGACY_CODE"); Json activity = SRJsonActivityUtil.getMostRecentActivityByLegacyCode(sr, activityLegacyCode); if (activity == null || activity.isNull()) { System.out.println( "Messaging - ActivityResolver: unable to find activity " + properties.getProperty("LEGACY_CODE") + " in SR " + sr); return null; } String result = null; if (VAR_SR_ACTIVITY_TYPE.equals(variableName)) result = SRJsonActivityUtil.getActivityTypeLabel(activity); else { if (variableName.contains("_OUTCOME")) { result = SRJsonActivityUtil.getHasOutcomeLabel(activity); } else if (variableName.contains("_DETAILS") || variableName.contains("_DTLS$$")) { result = SRJsonActivityUtil.getHasDetails(activity); } else if (variableName.contains("_DUE_DTE")) { result = SRJsonActivityUtil.getHasDueDate(activity, DATE_PATTERN); } else if (variableName.equals("$$SR_ACTIVITY_DATE_TIME$$")) { result = SRJsonActivityUtil.getHasDateCreated(activity, DATE_PATTERN); } else if (variableName.equals("$$SR_ACTIVITY_DUEDATE_SWR$$")) { result = SRJsonActivityUtil.getDueDate90Days(activity, DATE_PATTERN); } else if (variableName.contains("SR_ACTIVITY_CALLCREATED_D")) { result = SRJsonActivityUtil.getIsCreatedByName(activity); } else if (variableName.equals("$$SR_ASSIGNED_STAFF$$")) { result = SRJsonActivityUtil.getAssignedStaffName(activity); } else { System.out.println( "Messaging - ActivityResolver: unable to resolve variable" + variableName); } // Just a check if we already know the variable. if (VALIDATE_VARS_POST_RESOLUTION && !ActivityVariableValidator.isKnown(variableName)) System.err.println( "ActivityResolver resolved an unknown variable: " + variableName + " to value " + result); } if (DBG) { System.out.println( "ActivityResolver: Var " + variableName + " Result: " + result + " Act: " + activity + " Code: " + activityLegacyCode); } return result; }
public static void sendLocal(ColorScheme scheme, String input, Location loc, double range) { message.sendLocal(scheme, input, loc, range); }
public static void sendAll(ColorScheme scheme, String input) { message.sendAll(scheme, input); }
public static String style(ColorScheme scheme, String input) { return message.style(scheme, input); }
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(); } }
private int postReadProcess() throws IOException { int prot_bytes_read = 0; int data_bytes_read = 0; if (!reading_length_mode && !destroyed) { // reading payload data mode // ensure-restore proper buffer limits payload_buffer.limit(SS, message_length); length_buffer.limit(SS, 4); int read = payload_buffer.position(SS) - pre_read_start_position; if (payload_buffer.position(SS) > 0) { // need to have read the message id first byte if (BTMessageFactory.getMessageType(payload_buffer) == Message.TYPE_DATA_PAYLOAD) { data_bytes_read += read; } else { prot_bytes_read += read; } } if (!payload_buffer.hasRemaining(SS) && !is_paused) { // full message received! payload_buffer.position(SS, 0); DirectByteBuffer ref_buff = payload_buffer; payload_buffer = null; if (reading_handshake_message) { // decode handshake reading_handshake_message = false; DirectByteBuffer handshake_data = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_MSG_BT_HAND, 68); handshake_data.putInt(SS, HANDSHAKE_FAKE_LENGTH); handshake_data.put(SS, ref_buff); handshake_data.flip(SS); ref_buff.returnToPool(); try { Message handshake = MessageManager.getSingleton() .createMessage(BTMessage.ID_BT_HANDSHAKE_BYTES, handshake_data, (byte) 1); messages_last_read.add(handshake); } catch (MessageException me) { handshake_data.returnToPool(); throw new IOException("BT message decode failed: " + me.getMessage()); } // we need to auto-pause decoding until we're told to start again externally, // as we don't want to accidentally read the next message on the stream if it's an // AZ-format handshake pauseDecoding(); } else { // decode normal message try { messages_last_read.add(createMessage(ref_buff)); } catch (Throwable e) { ref_buff.returnToPoolIfNotFree(); // maintain unexpected errors as such so they get logged later if (e instanceof RuntimeException) { throw ((RuntimeException) e); } throw new IOException("BT message decode failed: " + e.getMessage()); } } reading_length_mode = true; // see if we've already read the next message's length percent_complete = -1; // reset receive percentage } else { // only partial received so far percent_complete = (payload_buffer.position(SS) * 100) / message_length; // compute receive percentage } } if (reading_length_mode && !destroyed) { length_buffer.limit(SS, 4); // ensure proper buffer limit prot_bytes_read += (pre_read_start_buffer == 1) ? length_buffer.position(SS) - pre_read_start_position : length_buffer.position(SS); if (!length_buffer.hasRemaining(SS)) { // done reading the length reading_length_mode = false; length_buffer.position(SS, 0); message_length = length_buffer.getInt(SS); length_buffer.position(SS, 0); // reset it for next length read if (message_length == HANDSHAKE_FAKE_LENGTH) { // handshake message reading_handshake_message = true; message_length = 64; // restore 'real' length payload_buffer = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_MSG_BT_HAND, message_length); } else if (message_length == 0) { // keep-alive message reading_length_mode = true; last_received_was_keepalive = true; try { Message keep_alive = MessageManager.getSingleton() .createMessage(BTMessage.ID_BT_KEEP_ALIVE_BYTES, null, (byte) 1); messages_last_read.add(keep_alive); } catch (MessageException me) { throw new IOException("BT message decode failed: " + me.getMessage()); } } else if (message_length < MIN_MESSAGE_LENGTH || message_length > MAX_MESSAGE_LENGTH) { throw new IOException( "Invalid message length given for BT message decode: " + message_length); } else { // normal message payload_buffer = DirectByteBufferPool.getBuffer(DirectByteBuffer.AL_MSG_BT_PAYLOAD, message_length); } } } protocol_bytes_last_read += prot_bytes_read; data_bytes_last_read += data_bytes_read; return prot_bytes_read + data_bytes_read; }
public static void send(ColorScheme scheme, String input, Player player) { message.send(scheme, input, player); }