forked from Upstream/CitizensCMD
Cleanup
This commit is contained in:
parent
abf8b875c0
commit
4c0e4dbb3f
@ -18,6 +18,27 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd;
|
package me.mattstudios.citizenscmd;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.TAG;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.color;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.info;
|
||||||
|
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import org.bstats.bukkit.Metrics;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import ch.jalu.configme.SettingsManager;
|
import ch.jalu.configme.SettingsManager;
|
||||||
import ch.jalu.configme.SettingsManagerBuilder;
|
import ch.jalu.configme.SettingsManagerBuilder;
|
||||||
import dev.triumphteam.cmd.bukkit.BukkitCommandManager;
|
import dev.triumphteam.cmd.bukkit.BukkitCommandManager;
|
||||||
@ -55,27 +76,6 @@ import net.kyori.adventure.text.format.Style;
|
|||||||
import net.kyori.adventure.text.format.TextDecoration;
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
|
||||||
import org.bstats.bukkit.Metrics;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.plugin.PluginManager;
|
|
||||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.IntStream;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.TAG;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.color;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.info;
|
|
||||||
|
|
||||||
public final class CitizensCMD extends JavaPlugin {
|
public final class CitizensCMD extends JavaPlugin {
|
||||||
|
|
||||||
private LangHandler lang;
|
private LangHandler lang;
|
||||||
@ -122,7 +122,7 @@ public final class CitizensCMD extends JavaPlugin {
|
|||||||
|
|
||||||
commandManager = BukkitCommandManager.create(this);
|
commandManager = BukkitCommandManager.create(this);
|
||||||
|
|
||||||
Metrics metrics = new Metrics(this, 2652);
|
final Metrics metrics = new Metrics(this, 2652);
|
||||||
Util.setUpMetrics(metrics, settings);
|
Util.setUpMetrics(metrics, settings);
|
||||||
|
|
||||||
console.sendMessage(TAG.append(LEGACY.deserialize("&3Citizens&cCMD &8&o" + getDescription().getVersion())));
|
console.sendMessage(TAG.append(LEGACY.deserialize("&3Citizens&cCMD &8&o" + getDescription().getVersion())));
|
||||||
@ -169,7 +169,7 @@ public final class CitizensCMD extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (settings.getProperty(Settings.CHECK_UPDATES)) {
|
if (settings.getProperty(Settings.CHECK_UPDATES)) {
|
||||||
SpigotUpdater updater = new SpigotUpdater(this, 30224);
|
final SpigotUpdater updater = new SpigotUpdater(this, 30224);
|
||||||
try {
|
try {
|
||||||
// If there's an update, tell the user that they can update
|
// If there's an update, tell the user that they can update
|
||||||
if (updater.checkForUpdates()) {
|
if (updater.checkForUpdates()) {
|
||||||
@ -178,7 +178,7 @@ public final class CitizensCMD extends JavaPlugin {
|
|||||||
console.sendMessage(TAG.append(lang.getMessage(Messages.STARTUP_NEW_VERSION).style(Style.style(NamedTextColor.AQUA, TextDecoration.ITALIC))));
|
console.sendMessage(TAG.append(lang.getMessage(Messages.STARTUP_NEW_VERSION).style(Style.style(NamedTextColor.AQUA, TextDecoration.ITALIC))));
|
||||||
console.sendMessage(TAG.append(Component.text(updater.getResourceURL()).style(Style.style(NamedTextColor.AQUA, TextDecoration.ITALIC))));
|
console.sendMessage(TAG.append(Component.text(updater.getResourceURL()).style(Style.style(NamedTextColor.AQUA, TextDecoration.ITALIC))));
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (final Exception ignored) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,13 +259,13 @@ public final class CitizensCMD extends JavaPlugin {
|
|||||||
* Registers all the events to be used
|
* Registers all the events to be used
|
||||||
*/
|
*/
|
||||||
private void registerEvents() {
|
private void registerEvents() {
|
||||||
PluginManager pm = getServer().getPluginManager();
|
final PluginManager pm = getServer().getPluginManager();
|
||||||
pm.registerEvents(new UpdateEvent(this), this);
|
pm.registerEvents(new UpdateEvent(this), this);
|
||||||
pm.registerEvents(new NPCClickListener(this), this);
|
pm.registerEvents(new NPCClickListener(this), this);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pm.registerEvents(new NPCListener(this), this);
|
pm.registerEvents(new NPCListener(this), this);
|
||||||
} catch (Exception ex) {
|
} catch (final Exception ex) {
|
||||||
info(color("&cCould not register clone event, please update your Citizens."));
|
info(color("&cCould not register clone event, please update your Citizens."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -279,7 +279,7 @@ public final class CitizensCMD extends JavaPlugin {
|
|||||||
if (getServer().getPluginManager().getPlugin("Vault") == null) {
|
if (getServer().getPluginManager().getPlugin("Vault") == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
RegisteredServiceProvider<Economy> registeredServiceProvider = getServer().getServicesManager().getRegistration(Economy.class);
|
final RegisteredServiceProvider<Economy> registeredServiceProvider = getServer().getServicesManager().getRegistration(Economy.class);
|
||||||
if (registeredServiceProvider == null) {
|
if (registeredServiceProvider == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.CommandFlags;
|
import dev.triumphteam.cmd.core.annotation.CommandFlags;
|
||||||
import dev.triumphteam.cmd.core.annotation.Flag;
|
import dev.triumphteam.cmd.core.annotation.Flag;
|
||||||
@ -9,14 +18,6 @@ import dev.triumphteam.cmd.core.flag.Flags;
|
|||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
|
||||||
|
|
||||||
public class AddCommand extends Npcmd {
|
public class AddCommand extends Npcmd {
|
||||||
|
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
||||||
|
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
|
||||||
|
|
||||||
public class CooldownCommand extends Npcmd {
|
public class CooldownCommand extends Npcmd {
|
||||||
|
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
||||||
@ -7,14 +16,6 @@ import me.mattstudios.citizenscmd.CitizensCMD;
|
|||||||
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
|
||||||
|
|
||||||
public class EditCommand extends Npcmd {
|
public class EditCommand extends Npcmd {
|
||||||
|
|
||||||
@ -68,7 +69,7 @@ public class EditCommand extends Npcmd {
|
|||||||
|
|
||||||
switch (clickString.toLowerCase()) {
|
switch (clickString.toLowerCase()) {
|
||||||
case "left":
|
case "left":
|
||||||
int leftCommandSize = plugin.getDataHandler().getClickCommandsData(
|
final int leftCommandSize = plugin.getDataHandler().getClickCommandsData(
|
||||||
selectedNpc.getAsInt(),
|
selectedNpc.getAsInt(),
|
||||||
EnumTypes.ClickType.LEFT
|
EnumTypes.ClickType.LEFT
|
||||||
).size();
|
).size();
|
||||||
@ -89,7 +90,7 @@ public class EditCommand extends Npcmd {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "right":
|
case "right":
|
||||||
int rightCommandSize = plugin.getDataHandler().getClickCommandsData(
|
final int rightCommandSize = plugin.getDataHandler().getClickCommandsData(
|
||||||
selectedNpc.getAsInt(),
|
selectedNpc.getAsInt(),
|
||||||
EnumTypes.ClickType.RIGHT
|
EnumTypes.ClickType.RIGHT
|
||||||
).size();
|
).size();
|
||||||
@ -115,7 +116,9 @@ public class EditCommand extends Npcmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String finalString = String.join(" ", arguments).trim();
|
String finalString = String.join(" ", arguments).trim();
|
||||||
if (finalString.startsWith("/")) finalString = finalString.substring(1);
|
if (finalString.startsWith("/")) {
|
||||||
|
finalString = finalString.substring(1);
|
||||||
|
}
|
||||||
|
|
||||||
plugin.getDataHandler().edit(selectedNpc.getAsInt(), id, click, type, finalString, audience);
|
plugin.getDataHandler().edit(selectedNpc.getAsInt(), id, click, type, finalString, audience);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
||||||
|
import static net.kyori.adventure.text.Component.newline;
|
||||||
|
import static net.kyori.adventure.text.Component.space;
|
||||||
|
import static net.kyori.adventure.text.Component.text;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.Default;
|
import dev.triumphteam.cmd.core.annotation.Default;
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
@ -13,13 +21,6 @@ import net.kyori.adventure.text.event.HoverEvent;
|
|||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import net.kyori.adventure.text.format.Style;
|
import net.kyori.adventure.text.format.Style;
|
||||||
import net.kyori.adventure.text.format.TextDecoration;
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
|
||||||
import static net.kyori.adventure.text.Component.newline;
|
|
||||||
import static net.kyori.adventure.text.Component.space;
|
|
||||||
import static net.kyori.adventure.text.Component.text;
|
|
||||||
|
|
||||||
public class HelpCommand extends Npcmd {
|
public class HelpCommand extends Npcmd {
|
||||||
|
|
||||||
|
@ -1,19 +1,5 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
|
||||||
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
|
||||||
import net.kyori.adventure.audience.Audience;
|
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import net.kyori.adventure.text.TextComponent;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
@ -23,6 +9,21 @@ import static net.kyori.adventure.text.Component.text;
|
|||||||
import static net.kyori.adventure.text.event.ClickEvent.suggestCommand;
|
import static net.kyori.adventure.text.event.ClickEvent.suggestCommand;
|
||||||
import static net.kyori.adventure.text.event.HoverEvent.showText;
|
import static net.kyori.adventure.text.event.HoverEvent.showText;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
||||||
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
|
import net.kyori.adventure.audience.Audience;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.TextComponent;
|
||||||
|
|
||||||
public class ListCommand extends Npcmd {
|
public class ListCommand extends Npcmd {
|
||||||
|
|
||||||
private final CitizensCMD plugin;
|
private final CitizensCMD plugin;
|
||||||
@ -46,8 +47,8 @@ public class ListCommand extends Npcmd {
|
|||||||
final TextComponent.Builder builder = Component.text();
|
final TextComponent.Builder builder = Component.text();
|
||||||
|
|
||||||
final int npc = selectedNpc.getAsInt();
|
final int npc = selectedNpc.getAsInt();
|
||||||
List<String> leftCommands = plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.LEFT) != null ? plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.LEFT) : new ArrayList<>();
|
final List<String> leftCommands = plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.LEFT) != null ? plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.LEFT) : new ArrayList<>();
|
||||||
List<String> rightCommands = plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.RIGHT) != null ? plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.RIGHT) : new ArrayList<>();
|
final List<String> rightCommands = plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.RIGHT) != null ? plugin.getDataHandler().getClickCommandsData(npc, EnumTypes.ClickType.RIGHT) : new ArrayList<>();
|
||||||
|
|
||||||
builder.append(HEADER).append(newline());
|
builder.append(HEADER).append(newline());
|
||||||
builder.append(
|
builder.append(
|
||||||
@ -73,7 +74,7 @@ public class ListCommand extends Npcmd {
|
|||||||
builder.append(newline());
|
builder.append(newline());
|
||||||
|
|
||||||
int rightCount = 1;
|
int rightCount = 1;
|
||||||
for (String command : rightCommands) {
|
for (final String command : rightCommands) {
|
||||||
builder.append(
|
builder.append(
|
||||||
Component.text()
|
Component.text()
|
||||||
.append(LEGACY.deserialize("&c" + rightCount + " &7- &7" + command.replace("[", "&8[&c").replace("]", "&8]&b")))
|
.append(LEGACY.deserialize("&c" + rightCount + " &7- &7" + command.replace("[", "&8[&c").replace("]", "&8]&b")))
|
||||||
@ -88,7 +89,7 @@ public class ListCommand extends Npcmd {
|
|||||||
builder.append(plugin.getLang().getMessage(Messages.LIST_COUNT_LEFT, "{count}", String.valueOf(leftCommands.size())));
|
builder.append(plugin.getLang().getMessage(Messages.LIST_COUNT_LEFT, "{count}", String.valueOf(leftCommands.size())));
|
||||||
|
|
||||||
int leftCount = 1;
|
int leftCount = 1;
|
||||||
for (String command : leftCommands) {
|
for (final String command : leftCommands) {
|
||||||
builder.append(
|
builder.append(
|
||||||
Component.text()
|
Component.text()
|
||||||
.append(LEGACY.deserialize("&c" + leftCount + " &7- &7" + command.replace("[", "&8[&c").replace("]", "&8]&b")))
|
.append(LEGACY.deserialize("&c" + leftCount + " &7- &7" + command.replace("[", "&8[&c").replace("]", "&8]&b")))
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
||||||
|
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
|
||||||
|
|
||||||
public class PermissionCommand extends Npcmd {
|
public class PermissionCommand extends Npcmd {
|
||||||
|
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
||||||
|
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
|
||||||
|
|
||||||
public class PriceCommand extends Npcmd {
|
public class PriceCommand extends Npcmd {
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import ch.jalu.configme.SettingsManager;
|
import ch.jalu.configme.SettingsManager;
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
@ -8,9 +12,6 @@ import me.mattstudios.citizenscmd.Settings;
|
|||||||
import me.mattstudios.citizenscmd.utility.DisplayFormat;
|
import me.mattstudios.citizenscmd.utility.DisplayFormat;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
|
|
||||||
public class ReloadCommand extends Npcmd {
|
public class ReloadCommand extends Npcmd {
|
||||||
|
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
package me.mattstudios.citizenscmd.commands;
|
package me.mattstudios.citizenscmd.commands;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
||||||
|
|
||||||
|
import java.util.OptionalInt;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
import dev.triumphteam.cmd.bukkit.annotation.Permission;
|
||||||
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
import dev.triumphteam.cmd.core.annotation.SubCommand;
|
||||||
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
import dev.triumphteam.cmd.core.annotation.Suggestion;
|
||||||
@ -7,13 +15,6 @@ import me.mattstudios.citizenscmd.CitizensCMD;
|
|||||||
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
import java.util.OptionalInt;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.sendNotSelectedMessage;
|
|
||||||
|
|
||||||
public class RemoveCommand extends Npcmd {
|
public class RemoveCommand extends Npcmd {
|
||||||
|
|
||||||
@ -39,7 +40,7 @@ public class RemoveCommand extends Npcmd {
|
|||||||
|
|
||||||
switch (clickString.toLowerCase()) {
|
switch (clickString.toLowerCase()) {
|
||||||
case "left":
|
case "left":
|
||||||
int leftCommandSize = plugin.getDataHandler().getClickCommandsData(selectedNpc.getAsInt(), EnumTypes.ClickType.LEFT).size();
|
final int leftCommandSize = plugin.getDataHandler().getClickCommandsData(selectedNpc.getAsInt(), EnumTypes.ClickType.LEFT).size();
|
||||||
|
|
||||||
if (leftCommandSize == 0) {
|
if (leftCommandSize == 0) {
|
||||||
audience.sendMessage(HEADER);
|
audience.sendMessage(HEADER);
|
||||||
@ -57,7 +58,7 @@ public class RemoveCommand extends Npcmd {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "right":
|
case "right":
|
||||||
int rightCommandSize = plugin.getDataHandler().getClickCommandsData(selectedNpc.getAsInt(), EnumTypes.ClickType.RIGHT).size();
|
final int rightCommandSize = plugin.getDataHandler().getClickCommandsData(selectedNpc.getAsInt(), EnumTypes.ClickType.RIGHT).size();
|
||||||
|
|
||||||
if (rightCommandSize == 0) {
|
if (rightCommandSize == 0) {
|
||||||
audience.sendMessage(HEADER);
|
audience.sendMessage(HEADER);
|
||||||
|
@ -18,11 +18,8 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.files;
|
package me.mattstudios.citizenscmd.files;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import static me.mattstudios.citizenscmd.utility.Util.color;
|
||||||
import me.mattstudios.citizenscmd.utility.Util;
|
import static me.mattstudios.citizenscmd.utility.Util.info;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -30,12 +27,16 @@ import java.util.Map;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.color;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.info;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
import me.mattstudios.citizenscmd.utility.Util;
|
||||||
|
|
||||||
public class CooldownHandler {
|
public class CooldownHandler {
|
||||||
|
|
||||||
private CitizensCMD plugin;
|
private final CitizensCMD plugin;
|
||||||
private File cooldownsFile;
|
private File cooldownsFile;
|
||||||
private File dir;
|
private File dir;
|
||||||
|
|
||||||
@ -51,7 +52,7 @@ public class CooldownHandler {
|
|||||||
* Creates the basic of the class and starts the HashMap
|
* Creates the basic of the class and starts the HashMap
|
||||||
*/
|
*/
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
File pluginFolder = plugin.getDataFolder();
|
final File pluginFolder = plugin.getDataFolder();
|
||||||
dir = new File(pluginFolder + "/data");
|
dir = new File(pluginFolder + "/data");
|
||||||
cooldownsFile = new File(dir.getPath(), "cooldowns.yml");
|
cooldownsFile = new File(dir.getPath(), "cooldowns.yml");
|
||||||
cooldownsConfigurator = new YamlConfiguration();
|
cooldownsConfigurator = new YamlConfiguration();
|
||||||
@ -65,12 +66,14 @@ public class CooldownHandler {
|
|||||||
* Creates files and folders
|
* Creates files and folders
|
||||||
*/
|
*/
|
||||||
private void createBasics() {
|
private void createBasics() {
|
||||||
if (!dir.exists()) dir.mkdirs();
|
if (!dir.exists()) {
|
||||||
|
dir.mkdirs();
|
||||||
|
}
|
||||||
|
|
||||||
if (!cooldownsFile.exists()) {
|
if (!cooldownsFile.exists()) {
|
||||||
try {
|
try {
|
||||||
cooldownsFile.createNewFile();
|
cooldownsFile.createNewFile();
|
||||||
} catch (IOException e) {
|
} catch (final IOException e) {
|
||||||
info(color("&cError creating cooldowns file.."));
|
info(color("&cError creating cooldowns file.."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -83,16 +86,18 @@ public class CooldownHandler {
|
|||||||
try {
|
try {
|
||||||
cooldownsConfigurator.load(cooldownsFile);
|
cooldownsConfigurator.load(cooldownsFile);
|
||||||
|
|
||||||
if (!cooldownsConfigurator.contains("cooldown-data")) return;
|
if (!cooldownsConfigurator.contains("cooldown-data")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, Integer> cachedDataFromSaves = plugin.getDataHandler().getCachedCooldownByID();
|
final Map<String, Integer> cachedDataFromSaves = plugin.getDataHandler().getCachedCooldownByID();
|
||||||
|
|
||||||
for (String parent : Objects.requireNonNull(cooldownsConfigurator.getConfigurationSection("cooldown-data")).getKeys(false)) {
|
for (final String parent : Objects.requireNonNull(cooldownsConfigurator.getConfigurationSection("cooldown-data")).getKeys(false)) {
|
||||||
for (String child : Objects.requireNonNull(cooldownsConfigurator.getConfigurationSection("cooldown-data." + parent)).getKeys(false)) {
|
for (final String child : Objects.requireNonNull(cooldownsConfigurator.getConfigurationSection("cooldown-data." + parent)).getKeys(false)) {
|
||||||
for (String npc : cachedDataFromSaves.keySet()) {
|
for (final String npc : cachedDataFromSaves.keySet()) {
|
||||||
if (npc.equalsIgnoreCase(parent) && ((Util.getSecondsDifference(cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child)) < cachedDataFromSaves.get(npc)) || cachedDataFromSaves.get(npc) == -1))
|
if (npc.equalsIgnoreCase(parent) && ((Util.getSecondsDifference(cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child)) < cachedDataFromSaves.get(npc)) || cachedDataFromSaves.get(npc) == -1)) {
|
||||||
cooldownData.put("cooldown-data." + parent + "." + child, cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child));
|
cooldownData.put("cooldown-data." + parent + "." + child, cooldownsConfigurator.getLong("cooldown-data." + parent + "." + child));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -111,7 +116,7 @@ public class CooldownHandler {
|
|||||||
|
|
||||||
cooldownsConfigurator.set("cooldown-data", null);
|
cooldownsConfigurator.set("cooldown-data", null);
|
||||||
|
|
||||||
for (String path : cooldownData.keySet()) {
|
for (final String path : cooldownData.keySet()) {
|
||||||
cooldownsConfigurator.set(path, cooldownData.get(path));
|
cooldownsConfigurator.set(path, cooldownData.get(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,11 +134,12 @@ public class CooldownHandler {
|
|||||||
* @param time the time it was clicked from System.nanoTime();
|
* @param time the time it was clicked from System.nanoTime();
|
||||||
*/
|
*/
|
||||||
public void addInteraction(int npc, String uuid, long time) {
|
public void addInteraction(int npc, String uuid, long time) {
|
||||||
if (cooldownData.containsKey("cooldown-data.npc-" + npc + "." + uuid))
|
if (cooldownData.containsKey("cooldown-data.npc-" + npc + "." + uuid)) {
|
||||||
cooldownData.replace("cooldown-data.npc-" + npc + "." + uuid, time);
|
cooldownData.replace("cooldown-data.npc-" + npc + "." + uuid, time);
|
||||||
else
|
} else {
|
||||||
cooldownData.put("cooldown-data.npc-" + npc + "." + uuid, time);
|
cooldownData.put("cooldown-data.npc-" + npc + "." + uuid, time);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get's the time left on cooldown
|
* Get's the time left on cooldown
|
||||||
@ -155,11 +161,12 @@ public class CooldownHandler {
|
|||||||
*/
|
*/
|
||||||
public boolean onCooldown(int npc, String uuid) {
|
public boolean onCooldown(int npc, String uuid) {
|
||||||
if (cooldownData.containsKey("cooldown-data.npc-" + npc + "." + uuid)) {
|
if (cooldownData.containsKey("cooldown-data.npc-" + npc + "." + uuid)) {
|
||||||
if (plugin.getDataHandler().getNPCCooldown(npc) == -1)
|
if (plugin.getDataHandler().getNPCCooldown(npc) == -1) {
|
||||||
return true;
|
return true;
|
||||||
else
|
} else {
|
||||||
return Util.getSecondsDifference(cooldownData.get("cooldown-data.npc-" + npc + "." + uuid)) < plugin.getDataHandler().getNPCCooldown(npc);
|
return Util.getSecondsDifference(cooldownData.get("cooldown-data.npc-" + npc + "." + uuid)) < plugin.getDataHandler().getNPCCooldown(npc);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,15 +18,9 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.files;
|
package me.mattstudios.citizenscmd.files;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
import static me.mattstudios.citizenscmd.utility.Util.color;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import static me.mattstudios.citizenscmd.utility.Util.info;
|
||||||
import me.mattstudios.citizenscmd.utility.Util;
|
|
||||||
import net.kyori.adventure.audience.Audience;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -37,9 +31,16 @@ import java.util.Map;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
import org.bukkit.Bukkit;
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.color;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.info;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
import me.mattstudios.citizenscmd.utility.EnumTypes;
|
||||||
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
|
import me.mattstudios.citizenscmd.utility.Util;
|
||||||
|
import net.kyori.adventure.audience.Audience;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class DataHandler {
|
public class DataHandler {
|
||||||
@ -60,7 +61,7 @@ public class DataHandler {
|
|||||||
* Creates file and folder
|
* Creates file and folder
|
||||||
*/
|
*/
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
File pluginFolder = plugin.getDataFolder();
|
final File pluginFolder = plugin.getDataFolder();
|
||||||
dir = new File(pluginFolder + "/data");
|
dir = new File(pluginFolder + "/data");
|
||||||
savesFile = new File(dir.getPath(), "saves.yml");
|
savesFile = new File(dir.getPath(), "saves.yml");
|
||||||
dataConfigurator = new YamlConfiguration();
|
dataConfigurator = new YamlConfiguration();
|
||||||
@ -73,12 +74,14 @@ public class DataHandler {
|
|||||||
* Creates files and folders
|
* Creates files and folders
|
||||||
*/
|
*/
|
||||||
private void createBasics() {
|
private void createBasics() {
|
||||||
if (!dir.exists()) dir.mkdirs();
|
if (!dir.exists()) {
|
||||||
|
dir.mkdirs();
|
||||||
|
}
|
||||||
|
|
||||||
if (!savesFile.exists()) {
|
if (!savesFile.exists()) {
|
||||||
try {
|
try {
|
||||||
savesFile.createNewFile();
|
savesFile.createNewFile();
|
||||||
} catch (IOException e) {
|
} catch (final IOException e) {
|
||||||
info(color("&cError creating saves file.."));
|
info(color("&cError creating saves file.."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -92,10 +95,12 @@ public class DataHandler {
|
|||||||
try {
|
try {
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
if (!dataConfigurator.contains("npc-data")) return;
|
if (!dataConfigurator.contains("npc-data")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (String parent : Objects.requireNonNull(dataConfigurator.getConfigurationSection("npc-data")).getKeys(false)) {
|
for (final String parent : Objects.requireNonNull(dataConfigurator.getConfigurationSection("npc-data")).getKeys(false)) {
|
||||||
for (String child : Objects.requireNonNull(dataConfigurator.getConfigurationSection("npc-data." + parent)).getKeys(false)) {
|
for (final String child : Objects.requireNonNull(dataConfigurator.getConfigurationSection("npc-data." + parent)).getKeys(false)) {
|
||||||
switch (child.toLowerCase()) {
|
switch (child.toLowerCase()) {
|
||||||
case "permission":
|
case "permission":
|
||||||
data.put("npc-data." + parent + "." + child, dataConfigurator.getString("npc-data." + parent + "." + child));
|
data.put("npc-data." + parent + "." + child, dataConfigurator.getString("npc-data." + parent + "." + child));
|
||||||
@ -140,27 +145,32 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
List<String> commandList = data.containsKey("npc-data.npc-" + npc + ".right-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".right-click-commands") : new ArrayList<>();
|
final List<String> commandList = data.containsKey("npc-data.npc-" + npc + ".right-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".right-click-commands") : new ArrayList<>();
|
||||||
List<String> commandListLeft = data.containsKey("npc-data.npc-" + npc + ".left-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".left-click-commands") : new ArrayList<>();
|
final List<String> commandListLeft = data.containsKey("npc-data.npc-" + npc + ".left-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".left-click-commands") : new ArrayList<>();
|
||||||
|
|
||||||
if (!data.containsKey("npc-data.npc-" + npc + ".cooldown")) {
|
if (!data.containsKey("npc-data.npc-" + npc + ".cooldown")) {
|
||||||
data.put("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
data.put("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (left) commandListLeft.add("[" + permission + "] " + command);
|
if (left) {
|
||||||
else commandList.add("[" + permission + "] " + command);
|
commandListLeft.add("[" + permission + "] " + command);
|
||||||
|
} else {
|
||||||
|
commandList.add("[" + permission + "] " + command);
|
||||||
|
}
|
||||||
|
|
||||||
if (data.containsKey("npc-data.npc-" + npc + ".right-click-commands"))
|
if (data.containsKey("npc-data.npc-" + npc + ".right-click-commands")) {
|
||||||
data.replace("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
data.replace("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
||||||
else
|
} else {
|
||||||
data.put("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
data.put("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
||||||
|
}
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
dataConfigurator.set("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
||||||
|
|
||||||
if (data.containsKey("npc-data.npc-" + npc + ".left-click-commands"))
|
if (data.containsKey("npc-data.npc-" + npc + ".left-click-commands")) {
|
||||||
data.replace("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
data.replace("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
||||||
else
|
} else {
|
||||||
data.put("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
data.put("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
||||||
|
}
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
dataConfigurator.set("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
||||||
|
|
||||||
if (!data.containsKey("npc-data.npc-" + npc + ".price")) {
|
if (!data.containsKey("npc-data.npc-" + npc + ".price")) {
|
||||||
@ -193,27 +203,32 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
List<String> commandList = data.containsKey("npc-data.npc-" + npc + ".right-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".right-click-commands") : new ArrayList<>();
|
final List<String> commandList = data.containsKey("npc-data.npc-" + npc + ".right-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".right-click-commands") : new ArrayList<>();
|
||||||
List<String> commandListLeft = data.containsKey("npc-data.npc-" + npc + ".left-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".left-click-commands") : new ArrayList<>();
|
final List<String> commandListLeft = data.containsKey("npc-data.npc-" + npc + ".left-click-commands") ? (List<String>) data.get("npc-data.npc-" + npc + ".left-click-commands") : new ArrayList<>();
|
||||||
|
|
||||||
if (!data.containsKey("npc-data.npc-" + npc + ".cooldown")) {
|
if (!data.containsKey("npc-data.npc-" + npc + ".cooldown")) {
|
||||||
data.put("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
data.put("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
dataConfigurator.set("npc-data.npc-" + npc + ".cooldown", Util.getDefaultCooldown(plugin));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (left) commandListLeft.add("[" + permission + "] " + command);
|
if (left) {
|
||||||
else commandList.add("[" + permission + "] " + command);
|
commandListLeft.add("[" + permission + "] " + command);
|
||||||
|
} else {
|
||||||
|
commandList.add("[" + permission + "] " + command);
|
||||||
|
}
|
||||||
|
|
||||||
if (data.containsKey("npc-data.npc-" + npc + ".right-click-commands"))
|
if (data.containsKey("npc-data.npc-" + npc + ".right-click-commands")) {
|
||||||
data.replace("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
data.replace("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
||||||
else
|
} else {
|
||||||
data.put("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
data.put("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
||||||
|
}
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
dataConfigurator.set("npc-data.npc-" + npc + ".right-click-commands", commandList);
|
||||||
|
|
||||||
if (data.containsKey("npc-data.npc-" + npc + ".left-click-commands"))
|
if (data.containsKey("npc-data.npc-" + npc + ".left-click-commands")) {
|
||||||
data.replace("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
data.replace("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
||||||
else
|
} else {
|
||||||
data.put("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
data.put("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
||||||
|
}
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
dataConfigurator.set("npc-data.npc-" + npc + ".left-click-commands", commandListLeft);
|
||||||
|
|
||||||
if (!data.containsKey("npc-data.npc-" + npc + ".price")) {
|
if (!data.containsKey("npc-data.npc-" + npc + ".price")) {
|
||||||
@ -321,8 +336,9 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
if (dataConfigurator.contains("npc-data.npc-" + npc + ".permission"))
|
if (dataConfigurator.contains("npc-data.npc-" + npc + ".permission")) {
|
||||||
dataConfigurator.set("npc-data.npc-" + npc + ".permission", null);
|
dataConfigurator.set("npc-data.npc-" + npc + ".permission", null);
|
||||||
|
}
|
||||||
|
|
||||||
data.remove("npc-data.npc-" + npc + ".permission");
|
data.remove("npc-data.npc-" + npc + ".permission");
|
||||||
|
|
||||||
@ -363,10 +379,11 @@ public class DataHandler {
|
|||||||
* @return Returns arrays with strings to show on tab completion event
|
* @return Returns arrays with strings to show on tab completion event
|
||||||
*/
|
*/
|
||||||
public String[] getCompleteCommandsNumbers(int npc, EnumTypes.ClickType click) {
|
public String[] getCompleteCommandsNumbers(int npc, EnumTypes.ClickType click) {
|
||||||
List<String> commandList = (List<String>) data.get("npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands");
|
final List<String> commandList = (List<String>) data.get("npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands");
|
||||||
String[] commandSet = new String[commandList.size()];
|
final String[] commandSet = new String[commandList.size()];
|
||||||
for (int i = 0; i < commandList.size(); i++)
|
for (int i = 0; i < commandList.size(); i++) {
|
||||||
commandSet[i] = "" + (i + 1);
|
commandSet[i] = "" + (i + 1);
|
||||||
|
}
|
||||||
return commandSet;
|
return commandSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,9 +395,10 @@ public class DataHandler {
|
|||||||
* @return Returns true if has and false if not
|
* @return Returns true if has and false if not
|
||||||
*/
|
*/
|
||||||
public boolean hasNoCommands(int npc, EnumTypes.ClickType click) {
|
public boolean hasNoCommands(int npc, EnumTypes.ClickType click) {
|
||||||
String key = "npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands";
|
final String key = "npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands";
|
||||||
if (data.containsKey(key))
|
if (data.containsKey(key)) {
|
||||||
return ((List<String>) data.get(key)).isEmpty();
|
return ((List<String>) data.get(key)).isEmpty();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,8 +409,10 @@ public class DataHandler {
|
|||||||
* @return True or false depending if it has or not.
|
* @return True or false depending if it has or not.
|
||||||
*/
|
*/
|
||||||
public boolean hasNPCData(int npc) {
|
public boolean hasNPCData(int npc) {
|
||||||
for (String key : data.keySet()) {
|
for (final String key : data.keySet()) {
|
||||||
if (key.contains("npc-" + npc)) return true;
|
if (key.contains("npc-" + npc)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -431,11 +451,11 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
List<String> commands = getClickCommandsData(npc, click);
|
final List<String> commands = getClickCommandsData(npc, click);
|
||||||
|
|
||||||
commands.remove(commandID - 1);
|
commands.remove(commandID - 1);
|
||||||
|
|
||||||
String key = "npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands";
|
final String key = "npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands";
|
||||||
data.replace(key, commands);
|
data.replace(key, commands);
|
||||||
dataConfigurator.set(key, commands);
|
dataConfigurator.set(key, commands);
|
||||||
|
|
||||||
@ -465,7 +485,7 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
List<String> commandsData = getClickCommandsData(npc, click);
|
final List<String> commandsData = getClickCommandsData(npc, click);
|
||||||
|
|
||||||
final String typeText;
|
final String typeText;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@ -485,7 +505,7 @@ public class DataHandler {
|
|||||||
typeText = "";
|
typeText = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
String key = "npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands";
|
final String key = "npc-data.npc-" + npc + "." + click.toString().toLowerCase() + "-click-commands";
|
||||||
data.replace(key, commandsData);
|
data.replace(key, commandsData);
|
||||||
dataConfigurator.set(key, commandsData);
|
dataConfigurator.set(key, commandsData);
|
||||||
|
|
||||||
@ -510,7 +530,9 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
if (dataConfigurator.contains("npc-data.npc-" + npc)) dataConfigurator.set("npc-data.npc-" + npc, null);
|
if (dataConfigurator.contains("npc-data.npc-" + npc)) {
|
||||||
|
dataConfigurator.set("npc-data.npc-" + npc, null);
|
||||||
|
}
|
||||||
|
|
||||||
data.keySet().removeIf(key -> key.contains("npc-data.npc-" + npc));
|
data.keySet().removeIf(key -> key.contains("npc-data.npc-" + npc));
|
||||||
|
|
||||||
@ -533,11 +555,11 @@ public class DataHandler {
|
|||||||
createBasics();
|
createBasics();
|
||||||
dataConfigurator.load(savesFile);
|
dataConfigurator.load(savesFile);
|
||||||
|
|
||||||
Map<String, Object> newNpcData = new HashMap<>();
|
final Map<String, Object> newNpcData = new HashMap<>();
|
||||||
|
|
||||||
for (String key : data.keySet()) {
|
for (final String key : data.keySet()) {
|
||||||
if (key.contains("npc-" + npc)) {
|
if (key.contains("npc-" + npc)) {
|
||||||
String newKey = key.replace("npc-" + npc, "npc-" + npcClone);
|
final String newKey = key.replace("npc-" + npc, "npc-" + npcClone);
|
||||||
newNpcData.put(newKey, data.get(key));
|
newNpcData.put(newKey, data.get(key));
|
||||||
dataConfigurator.set(newKey, data.get(key));
|
dataConfigurator.set(newKey, data.get(key));
|
||||||
}
|
}
|
||||||
@ -557,13 +579,14 @@ public class DataHandler {
|
|||||||
* @return The cached cooldowns
|
* @return The cached cooldowns
|
||||||
*/
|
*/
|
||||||
Map<String, Integer> getCachedCooldownByID() {
|
Map<String, Integer> getCachedCooldownByID() {
|
||||||
Map<String, Integer> cachedData = new HashMap<>();
|
final Map<String, Integer> cachedData = new HashMap<>();
|
||||||
|
|
||||||
for (String key : data.keySet()) {
|
for (final String key : data.keySet()) {
|
||||||
String[] components = key.split("\\.");
|
final String[] components = key.split("\\.");
|
||||||
if (components[2].equalsIgnoreCase("cooldown"))
|
if (components[2].equalsIgnoreCase("cooldown")) {
|
||||||
cachedData.put(components[1], (Integer) data.get(key));
|
cachedData.put(components[1], (Integer) data.get(key));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return cachedData;
|
return cachedData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,14 +18,8 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.files;
|
package me.mattstudios.citizenscmd.files;
|
||||||
|
|
||||||
import ch.jalu.configme.SettingsManager;
|
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import static me.mattstudios.citizenscmd.utility.Util.MINI;
|
||||||
import me.mattstudios.citizenscmd.Settings;
|
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -35,8 +29,15 @@ import java.util.Locale;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.MINI;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
|
import ch.jalu.configme.SettingsManager;
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
import me.mattstudios.citizenscmd.Settings;
|
||||||
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
|
||||||
public class LangHandler {
|
public class LangHandler {
|
||||||
|
|
||||||
@ -58,8 +59,8 @@ public class LangHandler {
|
|||||||
*/
|
*/
|
||||||
private void cacheMessage() {
|
private void cacheMessage() {
|
||||||
try {
|
try {
|
||||||
File langFile = new File(plugin.getDataFolder(), "lang/" + lang + ".yml");
|
final File langFile = new File(plugin.getDataFolder(), "lang/" + lang + ".yml");
|
||||||
FileConfiguration langConf = new YamlConfiguration();
|
final FileConfiguration langConf = new YamlConfiguration();
|
||||||
// InputStream langStream = CitizensCMD.class.getClassLoader().getResourceAsStream("lang/" + lang + ".yml");
|
// InputStream langStream = CitizensCMD.class.getClassLoader().getResourceAsStream("lang/" + lang + ".yml");
|
||||||
|
|
||||||
if (!langFile.exists()) {
|
if (!langFile.exists()) {
|
||||||
@ -68,8 +69,8 @@ public class LangHandler {
|
|||||||
|
|
||||||
langConf.load(langFile);
|
langConf.load(langFile);
|
||||||
|
|
||||||
for (String parent : Objects.requireNonNull(langConf.getConfigurationSection("messages")).getKeys(false)) {
|
for (final String parent : Objects.requireNonNull(langConf.getConfigurationSection("messages")).getKeys(false)) {
|
||||||
for (String child : Objects.requireNonNull(langConf.getConfigurationSection("messages." + parent)).getKeys(false)) {
|
for (final String child : Objects.requireNonNull(langConf.getConfigurationSection("messages." + parent)).getKeys(false)) {
|
||||||
messages.put("messages." + parent + "." + child, langConf.getString("messages." + parent + "." + child));
|
messages.put("messages." + parent + "." + child, langConf.getString("messages." + parent + "." + child));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,7 +99,9 @@ public class LangHandler {
|
|||||||
value = value.replace(entry.getKey(), entry.getValue());
|
value = value.replace(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.getProperty(Settings.MINIMESSAGE_LANG)) return MINI.deserialize(value);
|
if (settings.getProperty(Settings.MINIMESSAGE_LANG)) {
|
||||||
|
return MINI.deserialize(value);
|
||||||
|
}
|
||||||
return LEGACY.deserialize(value);
|
return LEGACY.deserialize(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,28 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.listeners;
|
package me.mattstudios.citizenscmd.listeners;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.MINI;
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.getFormattedTime;
|
||||||
|
import static org.bukkit.Bukkit.getScheduler;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
import com.google.common.primitives.Floats;
|
import com.google.common.primitives.Floats;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
import me.clip.placeholderapi.PlaceholderAPI;
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import me.mattstudios.citizenscmd.Settings;
|
import me.mattstudios.citizenscmd.Settings;
|
||||||
@ -32,25 +53,6 @@ import net.citizensnpcs.api.event.NPCRightClickEvent;
|
|||||||
import net.citizensnpcs.api.npc.NPC;
|
import net.citizensnpcs.api.npc.NPC;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.LEGACY;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.MINI;
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.getFormattedTime;
|
|
||||||
import static org.bukkit.Bukkit.getScheduler;
|
|
||||||
|
|
||||||
public class NPCClickListener implements Listener {
|
public class NPCClickListener implements Listener {
|
||||||
|
|
||||||
@ -67,14 +69,18 @@ public class NPCClickListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onRightClick(NPCRightClickEvent event) {
|
public void onRightClick(NPCRightClickEvent event) {
|
||||||
NPC npc = event.getNPC();
|
final NPC npc = event.getNPC();
|
||||||
Player player = event.getClicker();
|
final Player player = event.getClicker();
|
||||||
final Audience audience = plugin.getAudiences().player(player);
|
final Audience audience = plugin.getAudiences().player(player);
|
||||||
|
|
||||||
if (!player.hasPermission("citizenscmd.use")) return;
|
if (!player.hasPermission("citizenscmd.use")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (plugin.getDataHandler().hasCustomPermission(npc.getId())) {
|
if (plugin.getDataHandler().hasCustomPermission(npc.getId())) {
|
||||||
if (!player.hasPermission(plugin.getDataHandler().getCustomPermission(npc.getId()))) return;
|
if (!player.hasPermission(plugin.getDataHandler().getCustomPermission(npc.getId()))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getWaitingList().containsKey(player.getUniqueId() + "." + npc.getId())) {
|
if (!plugin.getWaitingList().containsKey(player.getUniqueId() + "." + npc.getId())) {
|
||||||
@ -93,10 +99,12 @@ public class NPCClickListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getDataHandler().hasNoCommands(npc.getId(), EnumTypes.ClickType.RIGHT)) return;
|
if (plugin.getDataHandler().hasNoCommands(npc.getId(), EnumTypes.ClickType.RIGHT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double price = plugin.getDataHandler().getPrice(npc.getId());
|
final double price = plugin.getDataHandler().getPrice(npc.getId());
|
||||||
|
|
||||||
if (price > 0.0) {
|
if (price > 0.0) {
|
||||||
if (CitizensCMD.getEconomy() != null) {
|
if (CitizensCMD.getEconomy() != null) {
|
||||||
@ -105,8 +113,11 @@ public class NPCClickListener implements Listener {
|
|||||||
final Map<String, String> replacements = new HashMap<>();
|
final Map<String, String> replacements = new HashMap<>();
|
||||||
replacements.put("{price}", String.valueOf(price));
|
replacements.put("{price}", String.valueOf(price));
|
||||||
|
|
||||||
if (!plugin.isShift()) replacements.put("{shift}", "");
|
if (!plugin.isShift()) {
|
||||||
else replacements.put("{shift}", "Shift ");
|
replacements.put("{shift}", "");
|
||||||
|
} else {
|
||||||
|
replacements.put("{shift}", "Shift ");
|
||||||
|
}
|
||||||
|
|
||||||
final Component messageConfirm = plugin.getLang().getMessage(Messages.PAY_CONFIRM, replacements);
|
final Component messageConfirm = plugin.getLang().getMessage(Messages.PAY_CONFIRM, replacements);
|
||||||
|
|
||||||
@ -141,14 +152,18 @@ public class NPCClickListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onLeftClick(NPCLeftClickEvent event) {
|
public void onLeftClick(NPCLeftClickEvent event) {
|
||||||
NPC npc = event.getNPC();
|
final NPC npc = event.getNPC();
|
||||||
Player player = event.getClicker();
|
final Player player = event.getClicker();
|
||||||
final Audience audience = plugin.getAudiences().player(player);
|
final Audience audience = plugin.getAudiences().player(player);
|
||||||
|
|
||||||
if (!player.hasPermission("citizenscmd.use")) return;
|
if (!player.hasPermission("citizenscmd.use")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (plugin.getDataHandler().hasCustomPermission(npc.getId())) {
|
if (plugin.getDataHandler().hasCustomPermission(npc.getId())) {
|
||||||
if (!player.hasPermission(plugin.getDataHandler().getCustomPermission(npc.getId()))) return;
|
if (!player.hasPermission(plugin.getDataHandler().getCustomPermission(npc.getId()))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getWaitingList().containsKey(player.getUniqueId() + "." + npc.getId())) {
|
if (!plugin.getWaitingList().containsKey(player.getUniqueId() + "." + npc.getId())) {
|
||||||
@ -168,10 +183,12 @@ public class NPCClickListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getDataHandler().hasNoCommands(npc.getId(), EnumTypes.ClickType.LEFT)) return;
|
if (plugin.getDataHandler().hasNoCommands(npc.getId(), EnumTypes.ClickType.LEFT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double price = plugin.getDataHandler().getPrice(npc.getId());
|
final double price = plugin.getDataHandler().getPrice(npc.getId());
|
||||||
|
|
||||||
if (price > 0.0) {
|
if (price > 0.0) {
|
||||||
if (CitizensCMD.getEconomy() != null) {
|
if (CitizensCMD.getEconomy() != null) {
|
||||||
@ -180,8 +197,11 @@ public class NPCClickListener implements Listener {
|
|||||||
final Map<String, String> replacements = new HashMap<>();
|
final Map<String, String> replacements = new HashMap<>();
|
||||||
replacements.put("{price}", String.valueOf(price));
|
replacements.put("{price}", String.valueOf(price));
|
||||||
|
|
||||||
if (!plugin.isShift()) replacements.put("{shift}", "");
|
if (!plugin.isShift()) {
|
||||||
else replacements.put("{shift}", "Shift ");
|
replacements.put("{shift}", "");
|
||||||
|
} else {
|
||||||
|
replacements.put("{shift}", "Shift ");
|
||||||
|
}
|
||||||
|
|
||||||
final Component messageConfirm = plugin.getLang().getMessage(Messages.PAY_CONFIRM, replacements);
|
final Component messageConfirm = plugin.getLang().getMessage(Messages.PAY_CONFIRM, replacements);
|
||||||
|
|
||||||
@ -191,7 +211,9 @@ public class NPCClickListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.isShift() && !player.isSneaking()) return;
|
if (plugin.isShift() && !player.isSneaking()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
plugin.getWaitingList().remove(player.getUniqueId() + "." + npc.getId());
|
plugin.getWaitingList().remove(player.getUniqueId() + "." + npc.getId());
|
||||||
audience.sendMessage(plugin.getLang().getMessage(Messages.PAY_CANCELED));
|
audience.sendMessage(plugin.getLang().getMessage(Messages.PAY_CANCELED));
|
||||||
@ -208,7 +230,9 @@ public class NPCClickListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onRemoveNPC(NPCRemoveEvent event) {
|
public void onRemoveNPC(NPCRemoveEvent event) {
|
||||||
if (!plugin.getDataHandler().hasNPCData(event.getNPC().getId())) return;
|
if (!plugin.getDataHandler().hasNPCData(event.getNPC().getId())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
plugin.getDataHandler().removeNPCData(event.getNPC().getId());
|
plugin.getDataHandler().removeNPCData(event.getNPC().getId());
|
||||||
}
|
}
|
||||||
@ -221,11 +245,11 @@ public class NPCClickListener implements Listener {
|
|||||||
* @param clickType The type of click, either left or right.
|
* @param clickType The type of click, either left or right.
|
||||||
*/
|
*/
|
||||||
private void doCommands(NPC npc, Player player, EnumTypes.ClickType clickType) {
|
private void doCommands(NPC npc, Player player, EnumTypes.ClickType clickType) {
|
||||||
List<String> permissions = new ArrayList<>();
|
final List<String> permissions = new ArrayList<>();
|
||||||
List<String> commands = new ArrayList<>();
|
final List<String> commands = new ArrayList<>();
|
||||||
|
|
||||||
for (String list : plugin.getDataHandler().getClickCommandsData(npc.getId(), clickType)) {
|
for (final String list : plugin.getDataHandler().getClickCommandsData(npc.getId(), clickType)) {
|
||||||
Matcher matcher = MAIN_PATTERN.matcher(list);
|
final Matcher matcher = MAIN_PATTERN.matcher(list);
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
|
|
||||||
permissions.add(matcher.group(1));
|
permissions.add(matcher.group(1));
|
||||||
@ -242,22 +266,24 @@ public class NPCClickListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (permissions.size() != commands.size()) return;
|
if (permissions.size() != commands.size()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < permissions.size(); i++) {
|
for (int i = 0; i < permissions.size(); i++) {
|
||||||
|
|
||||||
double delay = 0;
|
double delay = 0;
|
||||||
|
|
||||||
if (permissions.get(i).contains("(")) {
|
if (permissions.get(i).contains("(")) {
|
||||||
Matcher matcher = PERMISSION_PATTERN.matcher(permissions.get(i));
|
final Matcher matcher = PERMISSION_PATTERN.matcher(permissions.get(i));
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
delay = Double.parseDouble(matcher.group(2));
|
delay = Double.parseDouble(matcher.group(2));
|
||||||
String permission = matcher.group(1);
|
final String permission = matcher.group(1);
|
||||||
permissions.set(i, permission);
|
permissions.set(i, permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int finalI = i;
|
final int finalI = i;
|
||||||
switch (permissions.get(i).toLowerCase()) {
|
switch (permissions.get(i).toLowerCase()) {
|
||||||
case "console":
|
case "console":
|
||||||
getScheduler().runTaskLater(plugin, () -> plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), commands.get(finalI)), (int) delay * 20);
|
getScheduler().runTaskLater(plugin, () -> plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), commands.get(finalI)), (int) delay * 20);
|
||||||
@ -299,17 +325,21 @@ public class NPCClickListener implements Listener {
|
|||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
sound = matcher.group("sound");
|
sound = matcher.group("sound");
|
||||||
|
|
||||||
String volumeString = matcher.group("volume");
|
final String volumeString = matcher.group("volume");
|
||||||
String pitchString = matcher.group("pitch");
|
final String pitchString = matcher.group("pitch");
|
||||||
|
|
||||||
if (volumeString != null) {
|
if (volumeString != null) {
|
||||||
final Float nullableVolume = Floats.tryParse(volumeString);
|
final Float nullableVolume = Floats.tryParse(volumeString);
|
||||||
if (nullableVolume != null) volume = nullableVolume;
|
if (nullableVolume != null) {
|
||||||
|
volume = nullableVolume;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pitchString != null) {
|
if (pitchString != null) {
|
||||||
final Float nullablePitch = Floats.tryParse(pitchString);
|
final Float nullablePitch = Floats.tryParse(pitchString);
|
||||||
if (nullablePitch != null) volume = nullablePitch;
|
if (nullablePitch != null) {
|
||||||
|
volume = nullablePitch;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
package me.mattstudios.citizenscmd.listeners;
|
package me.mattstudios.citizenscmd.listeners;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
|
||||||
import net.citizensnpcs.api.event.NPCCloneEvent;
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
import net.citizensnpcs.api.event.NPCCloneEvent;
|
||||||
|
|
||||||
public class NPCListener implements Listener {
|
public class NPCListener implements Listener {
|
||||||
|
|
||||||
private CitizensCMD plugin;
|
private final CitizensCMD plugin;
|
||||||
|
|
||||||
public NPCListener(CitizensCMD plugin) {
|
public NPCListener(CitizensCMD plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -16,7 +17,9 @@ public class NPCListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void on(NPCCloneEvent event) {
|
public void on(NPCCloneEvent event) {
|
||||||
if (!plugin.getDataHandler().hasNPCData(event.getNPC().getId())) return;
|
if (!plugin.getDataHandler().hasNPCData(event.getNPC().getId())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
plugin.getDataHandler().cloneData(event.getNPC().getId(), event.getClone().getId());
|
plugin.getDataHandler().cloneData(event.getNPC().getId(), event.getClone().getId());
|
||||||
}
|
}
|
||||||
|
@ -18,20 +18,21 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.listeners;
|
package me.mattstudios.citizenscmd.listeners;
|
||||||
|
|
||||||
|
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
||||||
|
import static net.kyori.adventure.text.Component.newline;
|
||||||
|
import static net.kyori.adventure.text.Component.text;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.TextComponent;
|
import net.kyori.adventure.text.TextComponent;
|
||||||
import net.kyori.adventure.text.event.ClickEvent;
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
|
||||||
|
|
||||||
import static me.mattstudios.citizenscmd.utility.Util.HEADER;
|
|
||||||
import static net.kyori.adventure.text.Component.newline;
|
|
||||||
import static net.kyori.adventure.text.Component.text;
|
|
||||||
|
|
||||||
public class UpdateEvent implements Listener {
|
public class UpdateEvent implements Listener {
|
||||||
|
|
||||||
@ -43,7 +44,9 @@ public class UpdateEvent implements Listener {
|
|||||||
|
|
||||||
@EventHandler(priority = EventPriority.NORMAL)
|
@EventHandler(priority = EventPriority.NORMAL)
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
if (!plugin.isUpdateStatus() || !event.getPlayer().hasPermission("citizenscmd.update")) return;
|
if (!plugin.isUpdateStatus() || !event.getPlayer().hasPermission("citizenscmd.update")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final Audience audience = plugin.getAudiences().player(event.getPlayer());
|
final Audience audience = plugin.getAudiences().player(event.getPlayer());
|
||||||
|
|
||||||
|
@ -19,17 +19,18 @@
|
|||||||
package me.mattstudios.citizenscmd.permissions;
|
package me.mattstudios.citizenscmd.permissions;
|
||||||
|
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.permissions.PermissionAttachment;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
|
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
|
||||||
public class PermissionsManager {
|
public class PermissionsManager {
|
||||||
|
|
||||||
private HashMap<UUID, PermissionAttachment> permissionsData;
|
private final HashMap<UUID, PermissionAttachment> permissionsData;
|
||||||
private CitizensCMD plugin;
|
private final CitizensCMD plugin;
|
||||||
|
|
||||||
public PermissionsManager(CitizensCMD plugin) {
|
public PermissionsManager(CitizensCMD plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -43,9 +44,9 @@ public class PermissionsManager {
|
|||||||
* @param permission The permission node
|
* @param permission The permission node
|
||||||
*/
|
*/
|
||||||
public void setPermission(Player player, String permission) {
|
public void setPermission(Player player, String permission) {
|
||||||
PermissionAttachment permissionAttachment = player.addAttachment(plugin);
|
final PermissionAttachment permissionAttachment = player.addAttachment(plugin);
|
||||||
permissionsData.put(player.getUniqueId(), permissionAttachment);
|
permissionsData.put(player.getUniqueId(), permissionAttachment);
|
||||||
PermissionAttachment permissionAttachment1 = permissionsData.get(player.getUniqueId());
|
final PermissionAttachment permissionAttachment1 = permissionsData.get(player.getUniqueId());
|
||||||
permissionAttachment1.setPermission(permission, true);
|
permissionAttachment1.setPermission(permission, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,11 +18,12 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.schedulers;
|
package me.mattstudios.citizenscmd.schedulers;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import me.mattstudios.citizenscmd.utility.Messages;
|
import me.mattstudios.citizenscmd.utility.Messages;
|
||||||
import net.kyori.adventure.audience.Audience;
|
import net.kyori.adventure.audience.Audience;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
public class ConfirmScheduler extends BukkitRunnable {
|
public class ConfirmScheduler extends BukkitRunnable {
|
||||||
|
|
||||||
|
@ -18,9 +18,10 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.schedulers;
|
package me.mattstudios.citizenscmd.schedulers;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
|
||||||
public class CooldownScheduler extends BukkitRunnable {
|
public class CooldownScheduler extends BukkitRunnable {
|
||||||
|
|
||||||
private final CitizensCMD plugin;
|
private final CitizensCMD plugin;
|
||||||
|
@ -18,14 +18,15 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.schedulers;
|
package me.mattstudios.citizenscmd.schedulers;
|
||||||
|
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
import me.mattstudios.citizenscmd.Settings;
|
import me.mattstudios.citizenscmd.Settings;
|
||||||
import me.mattstudios.citizenscmd.updater.SpigotUpdater;
|
import me.mattstudios.citizenscmd.updater.SpigotUpdater;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
public class UpdateScheduler extends BukkitRunnable {
|
public class UpdateScheduler extends BukkitRunnable {
|
||||||
|
|
||||||
private CitizensCMD plugin;
|
private final CitizensCMD plugin;
|
||||||
|
|
||||||
public UpdateScheduler(CitizensCMD plugin) {
|
public UpdateScheduler(CitizensCMD plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -36,15 +37,17 @@ public class UpdateScheduler extends BukkitRunnable {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (plugin.getSettings().getProperty(Settings.CHECK_UPDATES)) return;
|
if (plugin.getSettings().getProperty(Settings.CHECK_UPDATES)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SpigotUpdater updater = new SpigotUpdater(plugin, 30224);
|
final SpigotUpdater updater = new SpigotUpdater(plugin, 30224);
|
||||||
try {
|
try {
|
||||||
if (updater.checkForUpdates()) {
|
if (updater.checkForUpdates()) {
|
||||||
plugin.setUpdateStatus(true);
|
plugin.setUpdateStatus(true);
|
||||||
plugin.setNewVersion(updater.getLatestVersion());
|
plugin.setNewVersion(updater.getLatestVersion());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (final Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package me.mattstudios.citizenscmd.updater;
|
package me.mattstudios.citizenscmd.updater;
|
||||||
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by GlareMasters on 5/30/2018.
|
* Created by GlareMasters on 5/30/2018.
|
||||||
*/
|
*/
|
||||||
@ -24,7 +24,7 @@ public class SpigotUpdater {
|
|||||||
this.project = projectID;
|
this.project = projectID;
|
||||||
try {
|
try {
|
||||||
this.checkURL = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + projectID);
|
this.checkURL = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + projectID);
|
||||||
} catch (MalformedURLException ignored) {}
|
} catch (final MalformedURLException ignored) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
public JavaPlugin getPlugin() {
|
public JavaPlugin getPlugin() {
|
||||||
@ -38,7 +38,7 @@ public class SpigotUpdater {
|
|||||||
* @throws Exception I/O Exception
|
* @throws Exception I/O Exception
|
||||||
*/
|
*/
|
||||||
public String getLatestVersion() throws Exception {
|
public String getLatestVersion() throws Exception {
|
||||||
URLConnection con = checkURL.openConnection();
|
final URLConnection con = checkURL.openConnection();
|
||||||
this.newVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine();
|
this.newVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine();
|
||||||
return newVersion;
|
return newVersion;
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ public class SpigotUpdater {
|
|||||||
* @throws Exception I/O Exception
|
* @throws Exception I/O Exception
|
||||||
*/
|
*/
|
||||||
public boolean checkForUpdates() throws Exception {
|
public boolean checkForUpdates() throws Exception {
|
||||||
URLConnection con = checkURL.openConnection();
|
final URLConnection con = checkURL.openConnection();
|
||||||
this.newVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine();
|
this.newVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine();
|
||||||
return !plugin.getDescription().getVersion().equals(newVersion);
|
return !plugin.getDescription().getVersion().equals(newVersion);
|
||||||
}
|
}
|
||||||
|
@ -18,23 +18,6 @@
|
|||||||
|
|
||||||
package me.mattstudios.citizenscmd.utility;
|
package me.mattstudios.citizenscmd.utility;
|
||||||
|
|
||||||
import ch.jalu.configme.SettingsManager;
|
|
||||||
import me.mattstudios.citizenscmd.CitizensCMD;
|
|
||||||
import me.mattstudios.citizenscmd.Settings;
|
|
||||||
import net.citizensnpcs.api.CitizensAPI;
|
|
||||||
import net.citizensnpcs.api.npc.NPC;
|
|
||||||
import net.kyori.adventure.audience.Audience;
|
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
|
||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
|
||||||
import org.bstats.bukkit.Metrics;
|
|
||||||
import org.bstats.charts.SimplePie;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -45,6 +28,24 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.bstats.bukkit.Metrics;
|
||||||
|
import org.bstats.charts.SimplePie;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import ch.jalu.configme.SettingsManager;
|
||||||
|
import me.mattstudios.citizenscmd.CitizensCMD;
|
||||||
|
import me.mattstudios.citizenscmd.Settings;
|
||||||
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
|
import net.citizensnpcs.api.npc.NPC;
|
||||||
|
import net.kyori.adventure.audience.Audience;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
|
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||||
|
|
||||||
public class Util {
|
public class Util {
|
||||||
|
|
||||||
private Util() {}
|
private Util() {}
|
||||||
@ -95,7 +96,9 @@ public class Util {
|
|||||||
*/
|
*/
|
||||||
public static OptionalInt getSelectedNpcId(final CommandSender sender) {
|
public static OptionalInt getSelectedNpcId(final CommandSender sender) {
|
||||||
final NPC npc = CitizensAPI.getDefaultNPCSelector().getSelected(sender);
|
final NPC npc = CitizensAPI.getDefaultNPCSelector().getSelected(sender);
|
||||||
if (npc == null) return OptionalInt.empty();
|
if (npc == null) {
|
||||||
|
return OptionalInt.empty();
|
||||||
|
}
|
||||||
return OptionalInt.of(npc.getId());
|
return OptionalInt.of(npc.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,12 +171,12 @@ public class Util {
|
|||||||
* @param server the server name
|
* @param server the server name
|
||||||
*/
|
*/
|
||||||
public static void changeServer(CitizensCMD plugin, Player player, String server) {
|
public static void changeServer(CitizensCMD plugin, Player player, String server) {
|
||||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||||
DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
|
final DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
|
||||||
try {
|
try {
|
||||||
dataOutputStream.writeUTF("Connect");
|
dataOutputStream.writeUTF("Connect");
|
||||||
dataOutputStream.writeUTF(server);
|
dataOutputStream.writeUTF(server);
|
||||||
} catch (IOException e) {
|
} catch (final IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
player.sendPluginMessage(plugin, "BungeeCord", byteArrayOutputStream.toByteArray());
|
player.sendPluginMessage(plugin, "BungeeCord", byteArrayOutputStream.toByteArray());
|
||||||
@ -193,21 +196,21 @@ public class Util {
|
|||||||
String minutePlural = "";
|
String minutePlural = "";
|
||||||
String secondPlural = "";
|
String secondPlural = "";
|
||||||
|
|
||||||
TimeUtil timeUtil = new TimeUtil(seconds);
|
final TimeUtil timeUtil = new TimeUtil(seconds);
|
||||||
|
|
||||||
String[] messagesString = new String[4];
|
final String[] messagesString = new String[4];
|
||||||
messagesString[0] = plugin.getLang().getUncoloredMessage(Messages.SECONDS);
|
messagesString[0] = plugin.getLang().getUncoloredMessage(Messages.SECONDS);
|
||||||
messagesString[1] = plugin.getLang().getUncoloredMessage(Messages.MINUTES);
|
messagesString[1] = plugin.getLang().getUncoloredMessage(Messages.MINUTES);
|
||||||
messagesString[2] = plugin.getLang().getUncoloredMessage(Messages.HOURS);
|
messagesString[2] = plugin.getLang().getUncoloredMessage(Messages.HOURS);
|
||||||
messagesString[3] = plugin.getLang().getUncoloredMessage(Messages.DAYS);
|
messagesString[3] = plugin.getLang().getUncoloredMessage(Messages.DAYS);
|
||||||
|
|
||||||
String[] shorts = new String[4];
|
final String[] shorts = new String[4];
|
||||||
String[] mediums = new String[4];
|
final String[] mediums = new String[4];
|
||||||
String[] fulls = new String[4];
|
final String[] fulls = new String[4];
|
||||||
|
|
||||||
Pattern pattern = Pattern.compile("\\[([^]]*)], \\[([^]]*)], \\[([^]]*)]");
|
final Pattern pattern = Pattern.compile("\\[([^]]*)], \\[([^]]*)], \\[([^]]*)]");
|
||||||
for (int i = 0; i < messagesString.length; i++) {
|
for (int i = 0; i < messagesString.length; i++) {
|
||||||
Matcher matcher = pattern.matcher(messagesString[i]);
|
final Matcher matcher = pattern.matcher(messagesString[i]);
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
shorts[i] = matcher.group(1);
|
shorts[i] = matcher.group(1);
|
||||||
mediums[i] = matcher.group(2);
|
mediums[i] = matcher.group(2);
|
||||||
@ -222,13 +225,13 @@ public class Util {
|
|||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case MEDIUM:
|
case MEDIUM:
|
||||||
String[] mediumsAfter = new String[4];
|
final String[] mediumsAfter = new String[4];
|
||||||
String[] mediumsPlurals = new String[4];
|
final String[] mediumsPlurals = new String[4];
|
||||||
Pattern patternMediums = Pattern.compile("([^]]*)\\(([^]]*)\\)");
|
final Pattern patternMediums = Pattern.compile("([^]]*)\\(([^]]*)\\)");
|
||||||
|
|
||||||
for (int i = 0; i < mediums.length; i++) {
|
for (int i = 0; i < mediums.length; i++) {
|
||||||
if (mediums[i].contains("(") && mediums[i].contains(")")) {
|
if (mediums[i].contains("(") && mediums[i].contains(")")) {
|
||||||
Matcher matcher = patternMediums.matcher(mediums[i]);
|
final Matcher matcher = patternMediums.matcher(mediums[i]);
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
mediumsAfter[i] = matcher.group(1);
|
mediumsAfter[i] = matcher.group(1);
|
||||||
mediumsPlurals[i] = matcher.group(2);
|
mediumsPlurals[i] = matcher.group(2);
|
||||||
@ -250,13 +253,13 @@ public class Util {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case FULL:
|
case FULL:
|
||||||
String[] fullsAfter = new String[4];
|
final String[] fullsAfter = new String[4];
|
||||||
String[] fullsPlurals = new String[4];
|
final String[] fullsPlurals = new String[4];
|
||||||
Pattern patternFulls = Pattern.compile("([^]]*)\\(([^]]*)\\)");
|
final Pattern patternFulls = Pattern.compile("([^]]*)\\(([^]]*)\\)");
|
||||||
|
|
||||||
for (int i = 0; i < fulls.length; i++) {
|
for (int i = 0; i < fulls.length; i++) {
|
||||||
if (fulls[i].contains("(") && fulls[i].contains(")")) {
|
if (fulls[i].contains("(") && fulls[i].contains(")")) {
|
||||||
Matcher matcher = patternFulls.matcher(fulls[i]);
|
final Matcher matcher = patternFulls.matcher(fulls[i]);
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
fullsAfter[i] = matcher.group(1);
|
fullsAfter[i] = matcher.group(1);
|
||||||
fullsPlurals[i] = matcher.group(2);
|
fullsPlurals[i] = matcher.group(2);
|
||||||
@ -285,7 +288,7 @@ public class Util {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
final StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
|
||||||
if (timeUtil.getDays() != 0) {
|
if (timeUtil.getDays() != 0) {
|
||||||
if (format != DisplayFormat.SHORT) {
|
if (format != DisplayFormat.SHORT) {
|
||||||
@ -339,8 +342,10 @@ public class Util {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean soundExists(String soundName) {
|
public static boolean soundExists(String soundName) {
|
||||||
for (Sound sound : Sound.values()) {
|
for (final Sound sound : Sound.values()) {
|
||||||
if (sound.name().equalsIgnoreCase(soundName)) return true;
|
if (sound.name().equalsIgnoreCase(soundName)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user