/** * Handle gate activation switch. * * @param stargate the stargate * @param player the player * @return true, if successful */ private boolean HandleGateActivationSwitch(Stargate stargate, Player player) { if (stargate.Active || stargate.LitGate) { if (stargate.Target != null) { // Shutdown stargate stargate.ShutdownStargate(); player.sendMessage(ConfigManager.output_strings.get(StringTypes.GATE_SHUTDOWN)); return true; } else { Stargate s2 = StargateManager.RemoveActivatedStargate(player); if (s2 != null && stargate.GateId == s2.GateId) { stargate.StopActivationTimer(player); stargate.DeActivateStargate(); stargate.UnLightStargate(); player.sendMessage(ConfigManager.output_strings.get(StringTypes.GATE_DEACTIVATED)); return true; } else { if (stargate.LitGate && !stargate.Active) { player.sendMessage( ConfigManager.errorheader + "Gate has been activated by someone else already."); } else { player.sendMessage(ConfigManager.output_strings.get(StringTypes.GATE_REMOTE_ACTIVE)); } return false; } } } else { if (stargate.IsSignPowered) { if (WXPermissions.checkWXPermissions(player, stargate, PermissionType.SIGN)) { if (stargate.TeleportSign == null && stargate.TeleportSignBlock != null) { stargate.TryClickTeleportSign(stargate.TeleportSignBlock); } if (stargate.SignTarget != null) { if (stargate.DialStargate(stargate.SignTarget)) { player.sendMessage(ConfigManager.normalheader + "Stargates connected!"); return true; } else { player.sendMessage(ConfigManager.output_strings.get(StringTypes.GATE_REMOTE_ACTIVE)); return false; } } else { player.sendMessage(ConfigManager.output_strings.get(StringTypes.TARGET_INVALID)); return false; } } else { player.sendMessage(ConfigManager.output_strings.get(StringTypes.PERMISSION_NO)); return false; } } else { // Activate Stargate player.sendMessage(ConfigManager.output_strings.get(StringTypes.GATE_ACTIVATED)); player.sendMessage( ConfigManager.normalheader + "Chevrons Locked! \u00A73:: \u00A7B<required> \u00A76[optional]"); player.sendMessage( ConfigManager.normalheader + "Type \'\u00A7F/dial \u00A7B<gatename> \u00A76[idc]\u00A77\'"); StargateManager.AddActivatedStargate(player, stargate); stargate.StartActivationTimer(player); stargate.LightStargate(); return true; } } }