public boolean toggle(Player player, String arg, QueryFactory qf) { UUID uuid = player.getUniqueId(); String ustr = uuid.toString(); // get TARDIS HashMap<String, Object> where = new HashMap<String, Object>(); where.put("uuid", ustr); ResultSetTardis rs = new ResultSetTardis(plugin, where, "", false, 0); if (rs.resultSet()) { Tardis tardis = rs.getTardis(); int id = tardis.getTardis_id(); // get current preset String current = tardis.getPreset().toString(); String chameleon = tardis.getChameleon(); // must be outside of the TARDIS HashMap<String, Object> wheret = new HashMap<String, Object>(); wheret.put("uuid", ustr); ResultSetTravellers rst = new ResultSetTravellers(plugin, wheret, false); if (rst.resultSet()) { TARDISMessage.send(player, "JUNK_PRESET_OUTSIDE"); return true; } if (plugin.getTrackerKeeper().getRebuildCooldown().containsKey(uuid)) { long now = System.currentTimeMillis(); long cooldown = plugin.getConfig().getLong("police_box.rebuild_cooldown"); long then = plugin.getTrackerKeeper().getRebuildCooldown().get(uuid) + cooldown; if (now < then) { TARDISMessage.send(player.getPlayer(), "COOLDOWN", String.format("%d", cooldown / 1000)); return true; } } // make sure is opposite if (current.equals("JUNK_MODE") && arg.equalsIgnoreCase("on")) { TARDISMessage.send(player, "JUNK_ALREADY_ON"); return true; } if (!current.equals("JUNK_MODE") && arg.equalsIgnoreCase("off")) { TARDISMessage.send(player, "JUNK_ALREADY_OFF"); return true; } // check if they have a junk record HashMap<String, Object> wherej = new HashMap<String, Object>(); wherej.put("uuid", ustr); ResultSetJunk rsj = new ResultSetJunk(plugin, wherej); boolean has = rsj.resultSet(); HashMap<String, Object> sett = new HashMap<String, Object>(); String cham_set = ""; if (arg.equalsIgnoreCase("on")) { HashMap<String, Object> set = new HashMap<String, Object>(); if (has) { // update record HashMap<String, Object> whereu = new HashMap<String, Object>(); whereu.put("uuid", ustr); set.put("preset", current); qf.doSyncUpdate("junk", set, whereu); } else { // insert record set.put("uuid", ustr); set.put("tardis_id", id); set.put("preset", current); qf.doSyncInsert("junk", set); } // save JUNK_MODE preset sett.put("chameleon_preset", "JUNK_MODE"); sett.put("chameleon_demat", current); TARDISMessage.send(player, "JUNK_PRESET_ON"); cham_set = "JUNK_MODE"; } if (arg.equalsIgnoreCase("off")) { // restore saved preset String preset = (has) ? rsj.getPreset().toString() : current; sett.put("chameleon_preset", preset); sett.put("chameleon_demat", "JUNK_MODE"); TARDISMessage.send(player, "JUNK_PRESET_OFF"); cham_set = preset; } // update tardis table HashMap<String, Object> whereu = new HashMap<String, Object>(); whereu.put("uuid", ustr); qf.doSyncUpdate("tardis", sett, whereu); // set the Chameleon Circuit sign TARDISStaticUtils.setSign(chameleon, 3, cham_set, player); // rebuild player.performCommand("tardis rebuild"); return true; } return true; }