@Override public void spawnEntity(Entity entity) { if (entity == null) throw new NullPointerException(); synchronized (entities) { if (!entities.contains(entity)) entities.add(entity); } }
@EventHandler public void onPacketProcess(PacketProcessEvent event) { if (event.getPacket().getId() != 201) return; Packet201PlayerInfo infoPacket = (Packet201PlayerInfo) event.getPacket(); if (infoPacket.isConnected && !users.contains(infoPacket.playerName)) { users.add(infoPacket.playerName); if (infoPacket.ping == 1000) { if (infoPacket.playerName.equalsIgnoreCase(bot.getSession().getUsername())) return; } } else if (!infoPacket.isConnected && users.contains(infoPacket.playerName)) users.remove(infoPacket.playerName); }
@Override public void despawnEntity(Entity entity) { if (entity == null) throw new NullPointerException(); synchronized (entities) { entities.remove(entity); } }
public RegularBot(RegularBotControlsUI ui, RegularBotData data) { this.ui = ui; data.lock(); this.data = data; commands = new ArrayList<Command>(); commands.addAll(Arrays.asList((Command[]) DefaultCommands.values())); status("Waiting."); progress(0, false); connect(); }
@Override public void execute(String[] args) { String players = users.toString(); players = players.substring(1, players.length() - 1); List<String> lines = new ArrayList<String>(); String[] parts = players.split(", "); String current = ""; for (int i = 0; i < parts.length; i++) { if (current.length() + parts[i].length() + 2 >= 100) { lines.add(current); current = parts[i] + ", "; } else current += parts[i] + ", "; } if (!current.isEmpty()) { current = current.substring(0, current.length() - 2); lines.add(current); } bot.say("Players:"); for (String line : lines) bot.say(line); }
@Override public Entity[] getEntities() { synchronized (entities) { return entities.toArray(new Entity[entities.size()]); } }