public void saveSettings() { amcConfig.set("radio-format", amcTools.formatSaveFix(varMsgFormat)); amcConfig.set("broadcast-format", amcTools.formatSaveFix(varBCsatMsgFormat)); amcConfig.set("radio-suffix", varRadioFreqSuffix); amcConfig.set("chat-distance", varPlayerMaxChatDist); amcConfig.set("radio-distance", varRadioMaxChatDist); amcConfig.set("manage-local", varManagePlayerChat); amcConfig.set("chat-limited", varLimitPlayerChat); amcConfig.set("radio-limited", varLimitRadioChat); amcConfig.set("enable-skywave", varSkyWaveEnabled); amcConfig.set("skywave-mod", varRadioSkyWaveMod); amcConfig.set("radio-min", varRadioMinFreq); amcConfig.set("radio-max", varRadioMaxFreq); amcConfig.set("radio-cutoff-max", varRadioMaxCuttoff); amcConfig.set("radio-code-max", varRadioMaxCode); amcConfig.set("radio-default-channel", varRadioDefFreq); amcConfig.set("radio-auto-on", varRadioAutoOn); amcConfig.set("radio-item-id", varHeldItemID); amcConfig.set("radio-item-required", varHeldItemReq); amcConfig.set("antenna-range-mod", varFixedRadioRangeMod); amcConfig.set("antenna-user-mod-iron", varFixedRadioUserModI); amcConfig.set("antenna-user-mod-gold", varFixedRadioUserModG); amcConfig.set("antenna-user-mod-diamond", varFixedRadioUserModD); amcConfig.set("antenna-tick-rate", varScheduleTickRate); amcConfig.set("antenna-max-height", varRadioMaxHeight); amcConfig.set("save-interval", varScheduleSaveRate); amcConfig.set("waypoint-update", varUpdateWaypointOnLink); this.saveConfig(); }
public void togglePlayerFilter(Player player) { if (playerRadioFilter.get(player)) { playerRadioFilter.put(player, false); amcTools.msgToPlayer(player, "[Filter]:", " OFF"); } else { playerRadioFilter.put(player, true); amcTools.msgToPlayer(player, "[Filter]:", " ON"); } }
public void togglePlayerMic(Player player) { if (playerRadioMic.get(player)) { playerRadioMic.put(player, false); amcTools.msgToPlayer(player, "[Mic]:", " OFF"); } else { playerRadioMic.put(player, true); amcTools.msgToPlayer(player, "[Mic]:", " ON"); } }
public void togglePlayerRadio(Player player) { if (playerRadioOn.contains(player.getDisplayName())) { playerRadioOn.remove(player.getDisplayName()); amcTools.msgToPlayer(player, "[Radio]:", " OFF"); } else { playerRadioOn.add(player.getDisplayName()); amcTools.msgToPlayer(player, "[Radio]:", " ON"); } }
public void playerRadioPing(Player sender, Player player) { // This works pretty simple, we use the message format to show our information String senderInfo = "Frequency:" + getPlayerRadioChannel(player) + this.varRadioFreqSuffix + " Code:" + getPlayerRadioCode(player); String pingMessage = "*PING*" + amcTools.createMessage(player, ChatColor.YELLOW + senderInfo + "*PING*"); amcTools.msgToPlayer(player, pingMessage); if (canPing(sender, player)) { amcTools.msgToPlayer(sender, pingMessage); } }
public boolean canReceive(AMChatRadio radio, Player player) { if (player.hasPermission("amchat.radio.hearall") || player.isOp()) { return true; } if (!isRadioOn(player)) { // The player doesn't even have his radio on return false; } if (!radio.getLoc().getWorld().equals(player.getWorld())) { // we can't talk to the other side. return false; } if (radio.getChan() < (playerRadioChannel.get(player) - playerRadioCutoff.get(player))) { // Radio chat is below cutoff limit return false; } else if (radio.getChan() > (playerRadioChannel.get(player) + playerRadioCutoff.get(player))) { // Radio channel is above the cutoff limit return false; } if ((!playerRadioChannel.get(player).equals(radio.getChan())) && (!playerRadioCode.get(player).equals(radio.getCode())) && (playerRadioFilter.get(player))) { // message is encrypted and we don't want to hear that. return false; } if (varLimitRadioChat) { if (!radio.isAdmin() && (amcTools.getDistance(radio.getLoc(), player.getLocation()) > radio.getMaxDistance())) { return false; } } return true; }
public void scanPlayerRadioChannel(Player player, boolean varDirection) { if (isPlayerLinked(player)) { amcTools.msgToPlayer(player, "Scanning disabled while linked to a fixed radio!"); } else { int playerOnThisChan = varRadioMinFreq; if (playerRadioChannel.containsKey(player)) { int currentChan = playerRadioChannel.get(player); int scanValue = playerRadioCutoff.get(player); // SCAN UP if (varDirection) { playerOnThisChan = currentChan + scanValue; if (playerOnThisChan > varRadioMaxFreq) { playerOnThisChan = varRadioMinFreq + (playerOnThisChan - varRadioMaxFreq); } // SCAN DOWN } else { playerOnThisChan = currentChan - scanValue; if (playerOnThisChan < varRadioMinFreq) { playerOnThisChan = varRadioMaxFreq - (playerOnThisChan + varRadioMinFreq); } } } else { playerRadioChannel.put(player, varRadioDefFreq); playerOnThisChan = varRadioDefFreq; } tunePlayerRadioChannel(player, playerOnThisChan); } }
public void setPlayerRadioCode(Player player, Integer value) { if (value < 0) { value = 0; } playerRadioCode.put(player, value); amcTools.msgToPlayer(player, "[Code]:", " " + value); }
// Set Players Radio link id, if the give id is blank its set to none public void setPlayerLinkID(Player player, String linkID) { if (linkID.isEmpty()) { linkID = "none"; } amcTools.msgToPlayer(player, "[Link]: ", linkID); this.playerRadioLinkID.put(player, linkID); }
public boolean canPing(Player sender, Player player) { if (varLimitRadioChat) { if (amcTools.getDistance(sender.getLocation(), player.getLocation()) > varRadioMaxChatDist) { return false; } } return true; }
public void setPlayerRadioCutoff(Player player, Integer value) { if (value < 0) { value = 0; } playerRadioCutoff.put(player, value); amcTools.msgToPlayer(player, "[Cutoff]:", " " + value); ; }
// Instead of slamming the main object with compares we do all that stuff here public boolean canReceive(Player sender, Player player) { if (sender.equals(player)) { return true; } // If the player receiving the message is a op or has the below permission they can hear // everything. if (player.hasPermission("amchat.radio.hearall") || player.isOp()) { return true; } if (!isRadioOn(player)) { // The player doesn't even have his radio on return false; } if (!sender.getWorld().equals(player.getWorld())) { // we can't talk to the other side. return false; } if (playerRadioChannel.get(sender) < (playerRadioChannel.get(player) - playerRadioCutoff.get(player))) { // Radio chat is below cutoff limit return false; } else if (playerRadioChannel.get(sender) > (playerRadioChannel.get(player) + playerRadioCutoff.get(player))) { // Radio channel is above the cutoff limit return false; } // TODO:Change this comparison, This might cause issues on certain channel/code combinations if ((playerRadioChannel.get(sender) != playerRadioChannel.get(player)) && (playerRadioCode.get(sender) != playerRadioCode.get(player)) && (playerRadioFilter.get(player))) { // message is encrypted and we don't want to hear that. return false; } if (varLimitRadioChat) { if (amcTools.getDistance(sender.getLocation(), player.getLocation()) > varRadioMaxChatDist) { // Radio chat is limited and they are too far return false; } } return true; }
public boolean canLink(AMChatRadio radio, Player player) { if (player.hasPermission("amchat.radio.override.link") || player.isOp()) { return true; } if (!isRadioOn(player)) { // The player doesn't even have his radio on return false; } if (!radio.getLoc().getWorld().equals(player.getWorld())) { // we can't talk to the other side. return false; } if (varLimitRadioChat) { if (!radio.isAdmin() && (amcTools.getDistance(radio.getLoc(), player.getLocation()) > radio.getMaxDistance())) { return false; } } return true; }
public void tunePlayerRadioChannel(Player player, Integer value) { playerRadioChannel.put(player, value); amcTools.msgToPlayer(player, "[Freq]:", " " + value); }