Moves all methods for sending messages to players to the MessageSender class
This commit is contained in:
parent
50084c40f9
commit
7cc8685e26
src/main/java/net/knarcraft/stargate
@ -4,6 +4,7 @@ import net.knarcraft.stargate.command.CommandStarGate;
|
||||
import net.knarcraft.stargate.command.StarGateTabCompleter;
|
||||
import net.knarcraft.stargate.config.EconomyConfig;
|
||||
import net.knarcraft.stargate.config.LanguageLoader;
|
||||
import net.knarcraft.stargate.config.MessageSender;
|
||||
import net.knarcraft.stargate.config.StargateGateConfig;
|
||||
import net.knarcraft.stargate.container.BlockChangeRequest;
|
||||
import net.knarcraft.stargate.container.ChunkUnloadRequest;
|
||||
@ -26,7 +27,6 @@ import net.knarcraft.stargate.thread.StarGateThread;
|
||||
import net.knarcraft.stargate.utility.FileHelper;
|
||||
import net.knarcraft.stargate.utility.PortalFileHelper;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Sign;
|
||||
@ -88,6 +88,7 @@ public class Stargate extends JavaPlugin {
|
||||
|
||||
private FileConfiguration newConfig;
|
||||
private PluginManager pluginManager;
|
||||
private static MessageSender messageSender;
|
||||
|
||||
/**
|
||||
* Empty constructor necessary for Spigot
|
||||
@ -108,6 +109,15 @@ public class Stargate extends JavaPlugin {
|
||||
super(loader, descriptionFile, dataFolder, file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the sender for sending messages to players
|
||||
*
|
||||
* @return <p>The sender for sending messages to players</p>
|
||||
*/
|
||||
public static MessageSender getMessageSender() {
|
||||
return messageSender;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the object containing gate configuration values
|
||||
*
|
||||
@ -176,46 +186,6 @@ public class Stargate extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an error message to a player
|
||||
*
|
||||
* @param player <p>The player to send the message to</p>
|
||||
* @param message <p>The message to send</p>
|
||||
*/
|
||||
public static void sendErrorMessage(CommandSender player, String message) {
|
||||
sendMessage(player, message, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a success message to a player
|
||||
*
|
||||
* @param player <p>The player to send the message to</p>
|
||||
* @param message <p>The message to send</p>
|
||||
*/
|
||||
public static void sendSuccessMessage(CommandSender player, String message) {
|
||||
sendMessage(player, message, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a message to a player
|
||||
*
|
||||
* @param player <p>The player to send the message to</p>
|
||||
* @param message <p>The message to send</p>
|
||||
* @param error <p>Whether the message sent is an error</p>
|
||||
*/
|
||||
private static void sendMessage(CommandSender player, String message, boolean error) {
|
||||
if (message.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
//Replace color codes with green? What's the deal with the dollar sign?
|
||||
message = message.replaceAll("(&([a-f0-9]))", "\u00A7$2");
|
||||
if (error) {
|
||||
player.sendMessage(ChatColor.RED + Stargate.getString("prefix") + ChatColor.WHITE + message);
|
||||
} else {
|
||||
player.sendMessage(ChatColor.GREEN + Stargate.getString("prefix") + ChatColor.WHITE + message);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a line on a sign, adding the chosen sign color
|
||||
*
|
||||
@ -339,6 +309,7 @@ public class Stargate extends JavaPlugin {
|
||||
|
||||
// It is important to load languages here, as they are used during reloadGates()
|
||||
languageLoader = new LanguageLoader(languageFolder, Stargate.languageName);
|
||||
messageSender = new MessageSender(languageLoader);
|
||||
if (debuggingEnabled) {
|
||||
languageLoader.debug();
|
||||
}
|
||||
@ -549,7 +520,7 @@ public class Stargate extends JavaPlugin {
|
||||
startStopBungeeListener(stargateGateConfig.enableBungee());
|
||||
}
|
||||
|
||||
sendErrorMessage(sender, "stargate reloaded");
|
||||
messageSender.sendErrorMessage(sender, "stargate reloaded");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,7 +28,7 @@ public class CommandReload implements CommandExecutor {
|
||||
@NotNull String[] args) {
|
||||
if (commandSender instanceof Player player) {
|
||||
if (!player.hasPermission("stargate.reload")) {
|
||||
Stargate.sendErrorMessage(commandSender, "Permission Denied");
|
||||
Stargate.getMessageSender().sendErrorMessage(commandSender, "Permission Denied");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,63 @@
|
||||
package net.knarcraft.stargate.config;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* The message sender is responsible sending messages to players with correct coloring and formatting
|
||||
*/
|
||||
public final class MessageSender {
|
||||
|
||||
private final LanguageLoader languageLoader;
|
||||
|
||||
/**
|
||||
* Instantiates a new message sender
|
||||
*
|
||||
* @param languageLoader <p>The language loader to get translated strings from</p>
|
||||
*/
|
||||
public MessageSender(LanguageLoader languageLoader) {
|
||||
this.languageLoader = languageLoader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an error message to a player
|
||||
*
|
||||
* @param player <p>The player to send the message to</p>
|
||||
* @param message <p>The message to send</p>
|
||||
*/
|
||||
public void sendErrorMessage(CommandSender player, String message) {
|
||||
sendMessage(player, message, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a success message to a player
|
||||
*
|
||||
* @param player <p>The player to send the message to</p>
|
||||
* @param message <p>The message to send</p>
|
||||
*/
|
||||
public void sendSuccessMessage(CommandSender player, String message) {
|
||||
sendMessage(player, message, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a message to a player
|
||||
*
|
||||
* @param sender <p>The player to send the message to</p>
|
||||
* @param message <p>The message to send</p>
|
||||
* @param error <p>Whether the message sent is an error</p>
|
||||
*/
|
||||
private void sendMessage(CommandSender sender, String message, boolean error) {
|
||||
if (message.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
//Replace color codes with green? What's the deal with the dollar sign?
|
||||
//TODO: Figure out what this is actually supposed to do and do it in a better way
|
||||
message = message.replaceAll("(&([a-f0-9]))", "\u00A7$2");
|
||||
if (error) {
|
||||
sender.sendMessage(ChatColor.RED + languageLoader.getString("prefix") + ChatColor.WHITE + message);
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.GREEN + languageLoader.getString("prefix") + ChatColor.WHITE + message);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -81,7 +81,7 @@ public class BlockEventListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
Stargate.sendSuccessMessage(player, Stargate.getString("createMsg"));
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString("createMsg"));
|
||||
Stargate.debug("onSignChange", "Initialized stargate: " + portal.getName());
|
||||
Stargate.server.getScheduler().scheduleSyncDelayedTask(Stargate.stargate, portal::drawSign, 1);
|
||||
}
|
||||
@ -130,7 +130,7 @@ public class BlockEventListener implements Listener {
|
||||
|
||||
//Destroy denied
|
||||
if (destroyEvent.getDeny()) {
|
||||
Stargate.sendErrorMessage(player, destroyEvent.getDenyReason());
|
||||
Stargate.getMessageSender().sendErrorMessage(player, destroyEvent.getDenyReason());
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -141,7 +141,7 @@ public class BlockEventListener implements Listener {
|
||||
}
|
||||
|
||||
PortalRegistry.unregisterPortal(portal, true);
|
||||
Stargate.sendSuccessMessage(player, Stargate.getString("destroyMsg"));
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString("destroyMsg"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -114,7 +114,7 @@ public class PlayerEventListener implements Listener {
|
||||
//Just teleport the player like normal
|
||||
new PlayerTeleporter(destination, player).teleport(entrancePortal, event);
|
||||
}
|
||||
Stargate.sendSuccessMessage(player, Stargate.getString("teleportMsg"));
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString("teleportMsg"));
|
||||
entrancePortal.getPortalOpener().closePortal(false);
|
||||
}
|
||||
|
||||
@ -155,7 +155,7 @@ public class PlayerEventListener implements Listener {
|
||||
//Decide if the user should be teleported to another bungee server
|
||||
if (entrancePortal.getOptions().isBungee()) {
|
||||
if (bungeeTeleport(player, entrancePortal, event)) {
|
||||
Stargate.sendSuccessMessage(player, Stargate.getString("teleportMsg"));
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString("teleportMsg"));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -236,7 +236,7 @@ public class PlayerEventListener implements Listener {
|
||||
boolean deny = PermissionHelper.cannotAccessNetwork(player, portal.getNetwork());
|
||||
|
||||
if (PermissionHelper.cannotAccessPortal(player, portal, deny)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -318,7 +318,7 @@ public class PlayerEventListener implements Listener {
|
||||
private boolean bungeeTeleport(Player player, Portal entrancePortal, PlayerMoveEvent event) {
|
||||
//Check if bungee is actually enabled
|
||||
if (!Stargate.getGateConfig().enableBungee()) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("bungeeDisabled"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("bungeeDisabled"));
|
||||
entrancePortal.getPortalOpener().closePortal(false);
|
||||
return false;
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ public class VehicleEventListener implements Listener {
|
||||
//On the assumption that a non-player cannot sit in the driver's seat and since some portals can only be open
|
||||
// to one player at a time, we only need to check if the portal is open to the driver.
|
||||
if (!entrancePortal.getPortalOpener().isOpenFor(player)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ public class VehicleEventListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
Stargate.sendSuccessMessage(player, Stargate.getString("teleportMsg"));
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, Stargate.getString("teleportMsg"));
|
||||
new VehicleTeleporter(destinationPortal, vehicle).teleport(entrancePortal);
|
||||
entrancePortal.getPortalOpener().closePortal(false);
|
||||
}
|
||||
@ -150,7 +150,7 @@ public class VehicleEventListener implements Listener {
|
||||
private static boolean playerCanTeleport(Player player, Portal entrancePortal, Portal destinationPortal) {
|
||||
//Make sure the user can access the portal
|
||||
if (PermissionHelper.cannotAccessPortal(player, entrancePortal, destinationPortal)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
entrancePortal.getPortalOpener().closePortal(false);
|
||||
return false;
|
||||
}
|
||||
|
@ -250,7 +250,7 @@ public class PortalActivator {
|
||||
|
||||
//If no destinations are available, just tell the player and quit
|
||||
if (destinations.size() == 0) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("destEmpty"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("destEmpty"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -116,7 +116,7 @@ public class PortalCreator {
|
||||
network = network.substring(0, 11);
|
||||
}
|
||||
Stargate.debug("createPortal", "Creating personal portal");
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("createPersonal"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("createPersonal"));
|
||||
} else {
|
||||
Stargate.debug("createPortal", "Player does not have access to network");
|
||||
deny = true;
|
||||
@ -184,7 +184,7 @@ public class PortalCreator {
|
||||
|
||||
//Tell the user why it was denied from creating the portal
|
||||
if (stargateCreateEvent.getDeny()) {
|
||||
Stargate.sendErrorMessage(player, stargateCreateEvent.getDenyReason());
|
||||
Stargate.getMessageSender().sendErrorMessage(player, stargateCreateEvent.getDenyReason());
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ public class PortalCreator {
|
||||
// Name & Network can be changed in the event, so do these checks here.
|
||||
if (portal.getName().length() < 1 || portal.getName().length() > 11) {
|
||||
Stargate.debug("createPortal", "Name length error");
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("createNameLength"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("createNameLength"));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -234,13 +234,13 @@ public class PortalCreator {
|
||||
if (portal.getOptions().isBungee()) {
|
||||
if (PortalHandler.getBungeePortals().get(portal.getName().toLowerCase()) != null) {
|
||||
Stargate.debug("createPortal::Bungee", "Gate name duplicate");
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("createExists"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("createExists"));
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (PortalHandler.getByName(portal.getName(), portal.getNetwork()) != null) {
|
||||
Stargate.debug("createPortal", "Gate name duplicate");
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("createExists"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("createExists"));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -248,7 +248,7 @@ public class PortalCreator {
|
||||
List<String> networkList = PortalHandler.getAllPortalNetworks().get(portal.getNetwork().toLowerCase());
|
||||
int maxGates = Stargate.getGateConfig().maxGatesEachNetwork();
|
||||
if (maxGates > 0 && networkList != null && networkList.size() >= maxGates) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("createFull"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("createFull"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -121,13 +121,13 @@ public class PortalHandler {
|
||||
String destinationName, String network) {
|
||||
if (portalOptions.get(PortalOption.BUNGEE)) {
|
||||
if (!PermissionHelper.hasPermission(player, "stargate.admin.bungee")) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("bungeeDeny"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("bungeeDeny"));
|
||||
return false;
|
||||
} else if (!Stargate.getGateConfig().enableBungee()) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("bungeeDisabled"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("bungeeDisabled"));
|
||||
return false;
|
||||
} else if (destinationName.isEmpty() || network.isEmpty()) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("bungeeEmpty"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("bungeeEmpty"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -188,7 +188,7 @@ public class PortalHandler {
|
||||
BlockLocation borderBlockLocation = topLeft.getRelativeLocation(borderVector, yaw);
|
||||
if (getByBlock(borderBlockLocation.getBlock()) != null) {
|
||||
Stargate.debug("createPortal", "Gate conflicts with existing gate");
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("createConflict"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("createConflict"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ public final class EconomyHelper {
|
||||
public static void sendObtainMessage(String portalName, Player portalOwner, int earnings) {
|
||||
String obtainedMsg = Stargate.getString("ecoObtain");
|
||||
obtainedMsg = replaceVars(obtainedMsg, portalName, earnings);
|
||||
Stargate.sendSuccessMessage(portalOwner, obtainedMsg);
|
||||
Stargate.getMessageSender().sendSuccessMessage(portalOwner, obtainedMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -85,7 +85,7 @@ public final class EconomyHelper {
|
||||
public static void sendDeductMessage(String portalName, Player player, int cost) {
|
||||
String deductMsg = Stargate.getString("ecoDeduct");
|
||||
deductMsg = replaceVars(deductMsg, portalName, cost);
|
||||
Stargate.sendSuccessMessage(player, deductMsg);
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, deductMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -98,7 +98,7 @@ public final class EconomyHelper {
|
||||
public static void sendInsufficientFundsMessage(String portalName, Player player, int cost) {
|
||||
String inFundMsg = Stargate.getString("ecoInFunds");
|
||||
inFundMsg = replaceVars(inFundMsg, portalName, cost);
|
||||
Stargate.sendErrorMessage(player, inFundMsg);
|
||||
Stargate.getMessageSender().sendErrorMessage(player, inFundMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -111,7 +111,7 @@ public final class EconomyHelper {
|
||||
public static void sendRefundMessage(String portalName, Player player, int cost) {
|
||||
String refundMsg = Stargate.getString("ecoRefund");
|
||||
refundMsg = replaceVars(refundMsg, portalName, -cost);
|
||||
Stargate.sendSuccessMessage(player, refundMsg);
|
||||
Stargate.getMessageSender().sendSuccessMessage(player, refundMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,7 +38,7 @@ public final class PermissionHelper {
|
||||
|
||||
//Invalid destination
|
||||
if ((destination == null) || (destination == portal)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("invalidMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("invalidMsg"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -54,19 +54,19 @@ public final class PermissionHelper {
|
||||
//Gate that someone else is using -- Deny access
|
||||
if ((!portal.getOptions().isFixed()) && portal.getPortalActivator().isActive() &&
|
||||
(portal.getActivePlayer() != player)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
return;
|
||||
}
|
||||
|
||||
//Check if the player can use the private gate
|
||||
if (portal.getOptions().isPrivate() && !PermissionHelper.canPrivate(player, portal)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
return;
|
||||
}
|
||||
|
||||
//Destination blocked
|
||||
if ((destination.isOpen()) && (!destination.getOptions().isAlwaysOn())) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("blockMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("blockMsg"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -390,7 +390,7 @@ public final class PermissionHelper {
|
||||
|
||||
// Not open for this player
|
||||
if (!entrancePortal.getPortalOpener().isOpenFor(player)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
new PlayerTeleporter(entrancePortal, player).teleport(entrancePortal, event);
|
||||
return true;
|
||||
}
|
||||
@ -402,7 +402,7 @@ public final class PermissionHelper {
|
||||
|
||||
//Player cannot access portal
|
||||
if (PermissionHelper.cannotAccessPortal(player, entrancePortal, destination)) {
|
||||
Stargate.sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
Stargate.getMessageSender().sendErrorMessage(player, Stargate.getString("denyMsg"));
|
||||
new PlayerTeleporter(entrancePortal, player).teleport(entrancePortal, event);
|
||||
entrancePortal.getPortalOpener().closePortal(false);
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user