public ArrayList doBandwidth(String args, MessageCommand msgc) { ArrayList out = new ArrayList(); ReplacerEnvironment env = new ReplacerEnvironment(SiteBot.GLOBAL_ENV); SlaveStatus status = getGlobalContext().getSlaveManager().getAllStatus(); SiteBot.fillEnvSlaveStatus(env, status, getGlobalContext().getSlaveManager()); // Add a couple more variables. ArrayList conns = new ArrayList(getGlobalContext().getConnectionManager() .getConnections()); int idle = conns.size() - status.getTransfersReceiving() - status.getTransfersSending(); env.add("idle", idle); env.add("xfers", status.getTransfers()); env.add("total", idle + status.getTransfers()); long throughputReceiving = 0; long throughputSending = 0; int i = 0; while (true) { SlaveStatus tmpStatus = getGlobalContext().getSlaveManager().getAllStatus(); long tmpThroughputReceiving = tmpStatus.getThroughputReceiving(); long tmpThroughputSending = tmpStatus.getThroughputSending(); if (tmpThroughputReceiving > throughputReceiving) throughputReceiving = tmpThroughputReceiving; if (tmpThroughputSending > throughputSending) throughputSending = tmpThroughputSending; if (i == 15) break; else { try { Thread.sleep(100); } catch (Exception ee) { } } i++; } env.add("throughputEXT", Bytes.formatBytes(throughputReceiving + throughputSending) + "/s"); env.add("throughputmEXT", Bytes.formatBytesToMega(throughputReceiving + throughputSending)); env.add("throughputupEXT", Bytes.formatBytes(throughputReceiving) + "/s"); env.add("throughputupmEXT", Bytes.formatBytesToMega(throughputReceiving)); env.add("throughputdownEXT", Bytes.formatBytes(throughputSending) + "/s"); env.add("throughputdownmEXT", Bytes.formatBytesToMega(throughputSending)); out.add(ReplacerUtils.jprintf("bw", env, Bandwidth.class)); return out; }