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;
 }