forked from Upstream/CitizensCMD
Added function to send messages to player when clicking the NPC
This commit is contained in:
parent
60a31c65fd
commit
8b38473896
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>me.mattmoreira.plugins</groupId>
|
||||
<artifactId>citizens-cmd</artifactId>
|
||||
<version>2.0</version>
|
||||
<version>2.1-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>CitizensCMD</name>
|
||||
|
@ -42,6 +42,7 @@ import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static me.mattmoreira.citizenscmd.utility.TimeUtil.getFormattedTime;
|
||||
import static me.mattmoreira.citizenscmd.utility.Util.color;
|
||||
|
||||
public class NPCListener implements Listener {
|
||||
|
||||
@ -49,7 +50,7 @@ public class NPCListener implements Listener {
|
||||
Bukkit.getMessenger().registerOutgoingPluginChannel(CitizensCMD.getPlugin(), "BungeeCord");
|
||||
}
|
||||
|
||||
@EventHandler (priority = EventPriority.HIGHEST)
|
||||
@EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onRightClick(NPCRightClickEvent event) {
|
||||
int npc = event.getNPC().getId();
|
||||
Player player = event.getClicker();
|
||||
@ -127,28 +128,35 @@ public class NPCListener implements Listener {
|
||||
if (permissions.size() != commands.size()) return;
|
||||
|
||||
for (int i = 0; i < permissions.size(); i++) {
|
||||
final int loopFinalPosition = i;
|
||||
Bukkit.getScheduler().runTask(CitizensCMD.getPlugin(), () -> {
|
||||
switch (permissions.get(loopFinalPosition).toLowerCase()) {
|
||||
switch (permissions.get(i).toLowerCase()) {
|
||||
|
||||
case "console":
|
||||
CitizensCMD.getPlugin().getServer().dispatchCommand(CitizensCMD.getPlugin().getServer().getConsoleSender(), commands.get(loopFinalPosition));
|
||||
break;
|
||||
case "console":
|
||||
CitizensCMD.getPlugin().getServer().dispatchCommand(CitizensCMD.getPlugin().getServer().getConsoleSender(), commands.get(i));
|
||||
break;
|
||||
|
||||
case "none":
|
||||
player.chat("/" + commands.get(loopFinalPosition));
|
||||
break;
|
||||
case "none":
|
||||
player.chat("/" + commands.get(i));
|
||||
break;
|
||||
|
||||
case "server":
|
||||
changeServer(player, commands.get(loopFinalPosition));
|
||||
break;
|
||||
case "server":
|
||||
changeServer(player, commands.get(i));
|
||||
break;
|
||||
|
||||
default:
|
||||
CitizensCMD.getPlugin().getPermissionsManager().setPermission(player, permissions.get(loopFinalPosition));
|
||||
player.chat("/" + commands.get(loopFinalPosition));
|
||||
CitizensCMD.getPlugin().getPermissionsManager().unsetPermission(player, permissions.get(loopFinalPosition));
|
||||
}
|
||||
});
|
||||
case "message":
|
||||
String finalMessage;
|
||||
if (commands.get(i).contains("{display}")) {
|
||||
String tmpStr = commands.get(i).replace("{display}", CitizensCMD.getPlugin().getLang().getMessage(Path.MESSAGE_DISPLAY));
|
||||
finalMessage = tmpStr.replace("{name}", event.getNPC().getFullName());
|
||||
} else
|
||||
finalMessage = commands.get(i);
|
||||
player.sendMessage(color(finalMessage));
|
||||
break;
|
||||
|
||||
default:
|
||||
CitizensCMD.getPlugin().getPermissionsManager().setPermission(player, permissions.get(i));
|
||||
player.chat("/" + commands.get(i));
|
||||
CitizensCMD.getPlugin().getPermissionsManager().unsetPermission(player, permissions.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -157,7 +165,7 @@ public class NPCListener implements Listener {
|
||||
|
||||
}
|
||||
|
||||
@EventHandler (priority = EventPriority.HIGHEST)
|
||||
@EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onLeftClick(NPCLeftClickEvent event) {
|
||||
int npc = event.getNPC().getId();
|
||||
Player player = event.getClicker();
|
||||
@ -225,32 +233,39 @@ public class NPCListener implements Listener {
|
||||
commands.add(command);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (permissions.size() != commands.size()) return;
|
||||
|
||||
for (int i = 0; i < permissions.size(); i++) {
|
||||
final int loopFinalPosition = i;
|
||||
Bukkit.getScheduler().runTask(CitizensCMD.getPlugin(), () -> {
|
||||
switch (permissions.get(loopFinalPosition).toLowerCase()) {
|
||||
switch (permissions.get(i).toLowerCase()) {
|
||||
|
||||
case "console":
|
||||
CitizensCMD.getPlugin().getServer().dispatchCommand(CitizensCMD.getPlugin().getServer().getConsoleSender(), commands.get(loopFinalPosition));
|
||||
break;
|
||||
case "console":
|
||||
CitizensCMD.getPlugin().getServer().dispatchCommand(CitizensCMD.getPlugin().getServer().getConsoleSender(), commands.get(i));
|
||||
break;
|
||||
|
||||
case "none":
|
||||
player.chat("/" + commands.get(loopFinalPosition));
|
||||
break;
|
||||
case "none":
|
||||
player.chat("/" + commands.get(i));
|
||||
break;
|
||||
|
||||
case "server":
|
||||
changeServer(player, commands.get(loopFinalPosition));
|
||||
break;
|
||||
case "server":
|
||||
changeServer(player, commands.get(i));
|
||||
break;
|
||||
|
||||
default:
|
||||
CitizensCMD.getPlugin().getPermissionsManager().setPermission(player, permissions.get(loopFinalPosition));
|
||||
player.chat("/" + commands.get(loopFinalPosition));
|
||||
CitizensCMD.getPlugin().getPermissionsManager().unsetPermission(player, permissions.get(loopFinalPosition));
|
||||
}
|
||||
});
|
||||
case "message":
|
||||
String finalMessage;
|
||||
if (commands.get(i).contains("{display}")) {
|
||||
String tmpStr = commands.get(i).replace("{display}", CitizensCMD.getPlugin().getLang().getMessage(Path.MESSAGE_DISPLAY));
|
||||
finalMessage = tmpStr.replace("{name}", event.getNPC().getFullName());
|
||||
} else
|
||||
finalMessage = commands.get(i);
|
||||
player.sendMessage(color(finalMessage));
|
||||
break;
|
||||
|
||||
default:
|
||||
CitizensCMD.getPlugin().getPermissionsManager().setPermission(player, permissions.get(i));
|
||||
player.chat("/" + commands.get(i));
|
||||
CitizensCMD.getPlugin().getPermissionsManager().unsetPermission(player, permissions.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
if (!player.hasPermission("citizenscmd.bypass") || CitizensCMD.getPlugin().getDataHandler().getNPCCooldown(npc) != 0)
|
||||
|
@ -46,12 +46,19 @@ public class CMDAdd extends CommandBase {
|
||||
|
||||
String permission = args[0];
|
||||
boolean left = false;
|
||||
boolean displayName = false;
|
||||
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
String[] commandsArray = Arrays.copyOfRange(args, 1, args.length);
|
||||
commandsArray[0] = commandsArray[0].replace("/", "");
|
||||
|
||||
for (int i = 0; i < commandsArray.length; i++) {
|
||||
|
||||
if (commandsArray[i].equalsIgnoreCase("-d")) {
|
||||
displayName = true;
|
||||
commandsArray[i] = "";
|
||||
}
|
||||
|
||||
if (commandsArray[i].equalsIgnoreCase("-l")) {
|
||||
left = true;
|
||||
break;
|
||||
@ -60,9 +67,16 @@ public class CMDAdd extends CommandBase {
|
||||
else stringBuilder.append(commandsArray[i]).append(" ");
|
||||
}
|
||||
|
||||
String finalString;
|
||||
|
||||
if (displayName)
|
||||
finalString = "{display} " + stringBuilder.toString().trim();
|
||||
else
|
||||
finalString = stringBuilder.toString().trim();
|
||||
|
||||
boolean finalLeft = left;
|
||||
|
||||
CitizensCMD.getPlugin().getDataHandler().addCommand(getSelectedNpcId(player), permission, stringBuilder.toString().trim(), player, finalLeft);
|
||||
CitizensCMD.getPlugin().getDataHandler().addCommand(getSelectedNpcId(player), permission, finalString, player, finalLeft);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
package me.mattmoreira.citizenscmd.files;
|
||||
|
||||
import me.mattmoreira.citizenscmd.CitizensCMD;
|
||||
import me.mattmoreira.citizenscmd.utility.Path;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@ -87,6 +88,9 @@ public class LangHandler {
|
||||
|
||||
langConf.load(langFile);
|
||||
|
||||
if (!langConf.contains(Path.MESSAGE_DISPLAY))
|
||||
langConf.set(Path.MESSAGE_DISPLAY, "{name}:&r");
|
||||
|
||||
for (String parent : langConf.getConfigurationSection("messages").getKeys(false)) {
|
||||
for (String child : langConf.getConfigurationSection("messages." + parent).getKeys(false))
|
||||
messages.put("messages." + parent + "." + child, langConf.getString("messages." + parent + "." + child));
|
||||
|
@ -69,6 +69,7 @@ public class Path {
|
||||
public static final String PAY_CANCELED = MAIN_PATH_NPCS + "pay-canceled";
|
||||
public static final String PAY_NO_MONEY = MAIN_PATH_NPCS + "pay-no-money";
|
||||
public static final String PAY_COMPLETED = MAIN_PATH_NPCS + "pay-completed";
|
||||
public static final String MESSAGE_DISPLAY = MAIN_PATH_NPCS + "message-display";
|
||||
|
||||
/**
|
||||
* Help
|
||||
|
@ -146,7 +146,7 @@ public class Util {
|
||||
|
||||
switch (subCMD.toLowerCase()) {
|
||||
case "add":
|
||||
argComplete[0] = new String[]{"console", "none", "permission", "server"};
|
||||
argComplete[0] = new String[]{"console", "none", "permission", "server", "message"};
|
||||
break;
|
||||
case "remove":
|
||||
argComplete[0] = new String[]{"left", "right"};
|
||||
@ -158,7 +158,7 @@ public class Util {
|
||||
argComplete[1] = new String[]{"left", "right"};
|
||||
argComplete[2] = CitizensCMD.getPlugin().getDataHandler().getCompleteCommandsNumbers(getSelectedNpcId(player), EnumTypes.ClickType.LEFT);
|
||||
argComplete[3] = CitizensCMD.getPlugin().getDataHandler().getCompleteCommandsNumbers(getSelectedNpcId(player), EnumTypes.ClickType.RIGHT);
|
||||
argComplete[4] = new String[]{"console", "none", "permission", "server"};
|
||||
argComplete[4] = new String[]{"console", "none", "permission", "server", "message"};
|
||||
}
|
||||
return argComplete;
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ messages:
|
||||
pay-canceled: "&cПлащането бе отменено!"
|
||||
pay-no-money: "&cНямаш достатъчно пари, за да извършиш това действие!"
|
||||
pay-completed: "&a{price}$ Бяха взети от твоята сметка!"
|
||||
message-display: "{name}:&r"
|
||||
help:
|
||||
version: "&7&oВерсия:"
|
||||
info: "&7Задръжте върху команда за помощ и пример!"
|
||||
|
@ -42,6 +42,7 @@ messages:
|
||||
pay-canceled: "&c付費被取消!"
|
||||
pay-no-money: "&c你沒有足夠的金錢!"
|
||||
pay-completed: "&a已經在你的帳戶扣去{price}$!"
|
||||
message-display: "{name}:&r"
|
||||
help:
|
||||
version: "&7&o版本:"
|
||||
info: "&7欲要知道更多,把鼠標停留在一個指令上!"
|
||||
|
@ -42,6 +42,7 @@ messages:
|
||||
pay-canceled: "&cPayment canceled!"
|
||||
pay-no-money: "&cYou don't have enough money to do this!"
|
||||
pay-completed: "&a{price}$ has been taken from your account!"
|
||||
message-display: "{name}:&r"
|
||||
help:
|
||||
version: "&7&oVersion:"
|
||||
info: "&7Hover a command for more info and example!"
|
||||
|
@ -42,6 +42,7 @@ messages:
|
||||
pay-canceled: "&cBetaling avslått!"
|
||||
pay-no-money: "&cDu har ikke nok penger til dette!"
|
||||
pay-completed: "&a{price}$ har blitt tatt fra din konto!"
|
||||
message-display: "{name}:&r"
|
||||
help:
|
||||
version: "&7&oVersjon:"
|
||||
info: "&7Hold musen over for å få infomarsjon!"
|
||||
|
@ -42,6 +42,7 @@ messages:
|
||||
pay-canceled: "&cPagamento cancelado!"
|
||||
pay-no-money: "&cVocê não tem dinheiro suficiente para fazer isso!"
|
||||
pay-completed: "&a{price}$ foi retirado da sua conta!"
|
||||
message-display: "{name}:&r"
|
||||
help:
|
||||
version: "&7&oVersão:"
|
||||
info: "&7Passe o mouse sobre um comando para mais informações e exemplos!"
|
||||
|
@ -42,6 +42,7 @@ messages:
|
||||
pay-canceled: "&cPlata anulata!"
|
||||
pay-no-money: "&cNu aveti destui bani pentru a face asta!"
|
||||
pay-completed: "&a{price}$ au fost adaugati in contul dvs!"
|
||||
message-display: "{name}:&r"
|
||||
help:
|
||||
version: "&7&oVersiune:"
|
||||
info: "&7Plasati mouse-ul peste o comanda pentru mai multe informatii si exemple!"
|
||||
|
Loading…
Reference in New Issue
Block a user