Added a bypass for dupeban

This commit is contained in:
TheTrouper
2024-02-27 14:33:26 -06:00
parent 347a5d0ea8
commit 4611464e40
28 changed files with 263 additions and 135 deletions

2
.gitignore vendored
View File

@@ -1 +1,3 @@
/.idea/ /.idea/
/.gradle/
/build/

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,2 @@
#Tue Feb 27 07:35:11 CST 2024
gradle.version=8.2-rc-2

View File

@@ -1,66 +0,0 @@
package io.github.thetrouper.ultradupe.cmds;
import io.github.itzispyder.pdk.Global;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.thetrouper.ultradupe.UltraDupe;
import io.github.thetrouper.ultradupe.data.DupeBanStorage;
import io.github.thetrouper.ultradupe.data.GUIs.DupeBanGUI;
import io.github.thetrouper.ultradupe.server.functions.DupeBanCheck;
import io.github.thetrouper.ultradupe.server.sound.SoundPlayer;
import io.github.thetrouper.ultradupe.server.util.Text;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandRegistry(value = "dupebans", permission = @Permission("ultradupe.dupebans"), printStackTrace = true)
public class DupeBansCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
switch (args.get(0).toString()) {
case "add" -> {
if (!p.hasPermission("ultradupe.dupebans.edit")) return;
Material m = p.getInventory().getItemInMainHand().getType();
if (UltraDupe.dupeBanStorage.dupeBans.contains(m)) {
p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is already on the dupe ban listr.".formatted(Text.cleanName(m.toString())))));
return;
}
UltraDupe.dupeBanStorage.dupeBans.add(m);
p.sendMessage(Component.text(Text.prefix("&7You have added &c%s&7 to the dupe ban list.".formatted(Text.cleanName(m.toString())))));
UltraDupe.dupeBanStorage.save();
}
case "remove" -> {
if (!p.hasPermission("ultradupe.dupebans.edit")) return;
Material m = p.getInventory().getItemInMainHand().getType();
if (!UltraDupe.dupeBanStorage.dupeBans.contains(m)) {
p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is not on the dupe ban list.".formatted(Text.cleanName(m.toString())))));
return;
}
UltraDupe.dupeBanStorage.dupeBans.remove(m);
p.sendMessage(Component.text(Text.prefix("&7You have removed &a%s&7 from the dupe ban list.".formatted(Text.cleanName(m.toString())))));
UltraDupe.dupeBanStorage.save();
}
default -> {
StringBuilder dupeBanList = new StringBuilder(Text.prefix("&7There are currently &e%s&7 dupe bans.".formatted(UltraDupe.dupeBanStorage.dupeBans.size())));
for (Material dupeBan : UltraDupe.dupeBanStorage
.dupeBans) {
dupeBanList.append(Global.instance.color("\n&6 - &c%s".formatted(Text.cleanName(dupeBan.toString()))));
}
p.sendMessage(dupeBanList.toString());
}
}
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
b.then(b.arg("add","remove"));
}
}

View File

@@ -1,13 +1,14 @@
package io.github.thetrouper.ultradupe; package me.trouper.ultradupe;
import io.github.itzispyder.pdk.PDK; import io.github.itzispyder.pdk.PDK;
import io.github.itzispyder.pdk.utils.misc.JsonSerializable; import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
import io.github.thetrouper.ultradupe.cmds.DupeBansCommand; import me.trouper.ultradupe.cmds.DupeBansCommand;
import io.github.thetrouper.ultradupe.cmds.DupeCommand; import me.trouper.ultradupe.cmds.DupeCommand;
import io.github.thetrouper.ultradupe.cmds.MultiplyCommand; import me.trouper.ultradupe.cmds.MultiplyCommand;
import io.github.thetrouper.ultradupe.data.DupeBanStorage; import me.trouper.ultradupe.cmds.UltraDupeCommand;
import io.github.thetrouper.ultradupe.data.config.Config; import me.trouper.ultradupe.data.DupeBanStorage;
import io.github.thetrouper.ultradupe.events.GuiEvents; import me.trouper.ultradupe.data.config.Config;
import me.trouper.ultradupe.events.GuiEvents;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@@ -22,8 +23,6 @@ public final class UltraDupe extends JavaPlugin {
private static final File dupeBans = new File("plugins/UltraDupe/dupebans.json"); private static final File dupeBans = new File("plugins/UltraDupe/dupebans.json");
public static Config config = JsonSerializable.load(cfgfile, Config.class, new Config()); public static Config config = JsonSerializable.load(cfgfile, Config.class, new Config());
public static DupeBanStorage dupeBanStorage = JsonSerializable.load(dupeBans, DupeBanStorage.class, new DupeBanStorage()); public static DupeBanStorage dupeBanStorage = JsonSerializable.load(dupeBans, DupeBanStorage.class, new DupeBanStorage());
public static final PluginManager manager = Bukkit.getPluginManager();
public static final Logger log = Bukkit.getLogger(); public static final Logger log = Bukkit.getLogger();
/** /**
@@ -53,6 +52,7 @@ public final class UltraDupe extends JavaPlugin {
new DupeCommand().register(); new DupeCommand().register();
new DupeBansCommand().register(); new DupeBansCommand().register();
new MultiplyCommand().register(); new MultiplyCommand().register();
new UltraDupeCommand().register();
// Events // Events
new GuiEvents().register(); new GuiEvents().register();

View File

@@ -0,0 +1,43 @@
package me.trouper.ultradupe.cmds;
import io.github.itzispyder.pdk.Global;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import me.trouper.ultradupe.UltraDupe;
import me.trouper.ultradupe.server.util.Text;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandRegistry(value = "dupebans", permission = @Permission("ultradupe.dupebans"), printStackTrace = true)
public class DupeBansCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
handleListBans(p);
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
b.then(b.arg("item")
.then(b.arg("add","remove"))
.then(b.arg("material")
.then(b.arg("add","remove"))));
}
protected static void handleListBans(Player p) {
StringBuilder dupeBanList = new StringBuilder(Text.prefix("&7There are currently &e%s&7 dupe bans.".formatted(UltraDupe.dupeBanStorage.bannedMaterials.size())));
for (Material dupeBan : UltraDupe.dupeBanStorage
.bannedMaterials) {
dupeBanList.append(Global.instance.color("\n&6 - &c%s".formatted(Text.cleanName(dupeBan.toString()))));
}
p.sendMessage(dupeBanList.toString());
}
}

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.cmds; package me.trouper.ultradupe.cmds;
import io.github.itzispyder.pdk.commands.Args; import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry; import io.github.itzispyder.pdk.commands.CommandRegistry;
@@ -6,18 +6,17 @@ import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission; import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.SchedulerUtils; import io.github.itzispyder.pdk.utils.SchedulerUtils;
import io.github.thetrouper.ultradupe.server.functions.DupeBanCheck; import me.trouper.ultradupe.UltraDupe;
import io.github.thetrouper.ultradupe.server.sound.SoundPlayer; import me.trouper.ultradupe.server.functions.DupeBanCheck;
import io.github.thetrouper.ultradupe.server.util.Text; import me.trouper.ultradupe.server.sound.SoundPlayer;
import me.trouper.ultradupe.server.util.Text;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import java.util.concurrent.CompletableFuture; @CommandRegistry(value = "duplicate", permission = @Permission("ultradupe.dupe"), printStackTrace = true)
@CommandRegistry(value = "ultradupe", permission = @Permission("ultradupe.dupe"), printStackTrace = true)
public class DupeCommand implements CustomCommand { public class DupeCommand implements CustomCommand {
DupeBanCheck check = new DupeBanCheck(); DupeBanCheck check = new DupeBanCheck();
@@ -33,9 +32,15 @@ public class DupeCommand implements CustomCommand {
return; return;
} }
int factor = args.get(0).toInt(); int factor = args.get(0).toInt();
if (factor > UltraDupe.config.plugin.maxDupe) {
p.sendMessage(Component.text(Text.prefix("&7You are not allowed to dupe with a factor greater than &c%s&7!".formatted(UltraDupe.config.plugin.maxDupe))));
return;
}
ItemStack i = p.getInventory().getItemInMainHand().clone(); ItemStack i = p.getInventory().getItemInMainHand().clone();
if (check.itemPasses(i)) { if (check.itemPasses(i) || (p.hasPermission("ultradupe.bypass.bans") && UltraDupeCommand.bypassingBans.contains(p.getUniqueId()))) {
if (factor == 0) factor = i.getAmount(); if (factor == 0) factor = i.getAmount();
SchedulerUtils.loop(1,factor,(time)->{ SchedulerUtils.loop(1,factor,(time)->{
i.setAmount(1); i.setAmount(1);

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.cmds; package me.trouper.ultradupe.cmds;
import io.github.itzispyder.pdk.commands.Args; import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry; import io.github.itzispyder.pdk.commands.CommandRegistry;
@@ -6,9 +6,10 @@ import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission; import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.SchedulerUtils; import io.github.itzispyder.pdk.utils.SchedulerUtils;
import io.github.thetrouper.ultradupe.server.functions.DupeBanCheck; import me.trouper.ultradupe.UltraDupe;
import io.github.thetrouper.ultradupe.server.sound.SoundPlayer; import me.trouper.ultradupe.server.functions.DupeBanCheck;
import io.github.thetrouper.ultradupe.server.util.Text; import me.trouper.ultradupe.server.sound.SoundPlayer;
import me.trouper.ultradupe.server.util.Text;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -26,22 +27,29 @@ public class MultiplyCommand implements CustomCommand {
SoundPlayer no = new SoundPlayer(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 10,1); SoundPlayer no = new SoundPlayer(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 10,1);
if (p.getInventory().getItemInMainHand().isEmpty()) { if (p.getInventory().getItemInMainHand().isEmpty()) {
p.sendMessage(Component.text(Text.prefix("That was air... it was duped, but you still didn't get anything."))); p.sendMessage(Component.text(Text.prefix("That was air... it was multiplied, but you still didn't get anything.")));
no.play(p); no.play(p);
return; return;
} }
int factor = args.get(0).toInt();
int exponent = args.get(0).toInt();
if (exponent > UltraDupe.config.plugin.maxMult) {
p.sendMessage(Component.text(Text.prefix("&7You are not allowed to multiply with an exponent greater than &c%s&7!".formatted(UltraDupe.config.plugin.maxMult))));
return;
}
ItemStack i = p.getInventory().getItemInMainHand().clone(); ItemStack i = p.getInventory().getItemInMainHand().clone();
if (check.itemPasses(i)) { if (check.itemPasses(i) || (p.hasPermission("ultradupe.bypass.bans") && UltraDupeCommand.bypassingBans.contains(p.getUniqueId()))) {
if (factor == 0) factor = i.getAmount(); if (exponent == 0) exponent = i.getAmount();
SchedulerUtils.loop(1,factor,(time)->{ SchedulerUtils.loop(1,exponent,(time)->{
yes.play(p); yes.play(p);
p.getInventory().addItem(i); p.getInventory().addItem(i);
}); });
p.sendMessage(Component.text(Text.prefix("&7You have duped &a%s %s&7.".formatted(factor, Text.cleanName(i.getType().toString()))))); p.sendMessage(Component.text(Text.prefix("&7You have multiply &a%s %s&7.".formatted(exponent, Text.cleanName(i.getType().toString())))));
} else { } else {
p.sendMessage(Component.text(Text.prefix("&cYou are not allowed to dupe &7%s&c.".formatted(Text.cleanName(i.getType().toString()))))); p.sendMessage(Component.text(Text.prefix("&cYou are not allowed to multiply &7%s&c.".formatted(Text.cleanName(i.getType().toString())))));
no.play(p); no.play(p);
} }
} }

View File

@@ -0,0 +1,123 @@
package me.trouper.ultradupe.cmds;
import io.github.itzispyder.pdk.commands.Args;
import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.Permission;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.SchedulerUtils;
import me.trouper.ultradupe.UltraDupe;
import me.trouper.ultradupe.server.functions.DupeBanCheck;
import me.trouper.ultradupe.server.sound.SoundPlayer;
import me.trouper.ultradupe.server.util.Text;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@CommandRegistry(value = "ultradupe", permission = @Permission("ultradupe.admin"), printStackTrace = true)
public class UltraDupeCommand implements CustomCommand {
public static List<UUID> bypassingBans = new ArrayList<>();
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
switch (args.get(0).toString()) {
case "dupebans" -> {
switch (args.get(1).toString()) {
case "item" -> handleItemEdit(p,args);
case "material" -> handleMaterialEdit(p,args);
default -> DupeBansCommand.handleListBans(p);
}
}
case "toggle" -> {
switch (args.get(1).toString()) {
case "debug" -> {
UltraDupe.config.debugMode = !UltraDupe.config.debugMode;
UltraDupe.config.save();
}
case "bypass" -> {
if (!bypassingBans.contains(p.getUniqueId())) {
bypassingBans.add(p.getUniqueId());
} else {
bypassingBans.remove(p.getUniqueId());
}
p.sendMessage(Component.text(Text.prefix("&7You are now %s dupe bans".formatted(bypassingBans.contains(p.getUniqueId()) ? "&aBypassing&7" : "&cObeying&7"))));
}
}
}
}
}
@Override
public void dispatchCompletions(CompletionBuilder b) {
b.then(b.arg("[<INT>]"));
}
private void handleItemEdit(Player p, Args args) {
if (!p.hasPermission("ultradupe.dupebans.edit")) {
DupeBansCommand.handleListBans(p);
return;
}
switch (args.get(2).toString()) {
case "add" -> {
ItemStack i = p.getInventory().getItemInMainHand().clone();
if (UltraDupe.dupeBanStorage.bannedItems.contains(i)) {
p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is already on the dupe ban list.".formatted(Text.cleanName(i.getType().toString())))));
return;
}
UltraDupe.dupeBanStorage.bannedItems.add(i);
p.sendMessage(Component.text(Text.prefix("&7You have added &c%s&7 to the dupe ban list.".formatted(Text.cleanName(i.getType().toString())))));
UltraDupe.dupeBanStorage.save();
}
case "remove" -> {
ItemStack i = p.getInventory().getItemInMainHand().clone();
if (!UltraDupe.dupeBanStorage.bannedItems.contains(i)) {
p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is not on the dupe ban list.".formatted(Text.cleanName(i.getType().toString())))));
return;
}
UltraDupe.dupeBanStorage.bannedItems.remove(i);
p.sendMessage(Component.text(Text.prefix("&7You have removed &a%s&7 from the dupe ban list.".formatted(Text.cleanName(i.getType().toString())))));
UltraDupe.dupeBanStorage.save();
}
}
}
private void handleMaterialEdit(Player p, Args args) {
if (!p.hasPermission("ultradupe.dupebans.edit")) {
DupeBansCommand.handleListBans(p);
return;
}
switch (args.get(2).toString()) {
case "add" -> {
Material m = p.getInventory().getItemInMainHand().getType();
if (UltraDupe.dupeBanStorage.bannedMaterials.contains(m)) {
p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is already on the dupe ban list.".formatted(Text.cleanName(m.toString())))));
return;
}
UltraDupe.dupeBanStorage.bannedMaterials.add(m);
p.sendMessage(Component.text(Text.prefix("&7You have added &c%s&7 to the dupe ban list.".formatted(Text.cleanName(m.toString())))));
UltraDupe.dupeBanStorage.save();
}
case "remove" -> {
Material m = p.getInventory().getItemInMainHand().getType();
if (!UltraDupe.dupeBanStorage.bannedMaterials.contains(m)) {
p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is not on the dupe ban list.".formatted(Text.cleanName(m.toString())))));
return;
}
UltraDupe.dupeBanStorage.bannedMaterials.remove(m);
p.sendMessage(Component.text(Text.prefix("&7You have removed &a%s&7 from the dupe ban list.".formatted(Text.cleanName(m.toString())))));
UltraDupe.dupeBanStorage.save();
}
}
}
}

View File

@@ -1,7 +1,9 @@
package io.github.thetrouper.ultradupe.data; package me.trouper.ultradupe.data;
import io.github.itzispyder.pdk.utils.misc.JsonSerializable; import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
import me.trouper.ultradupe.data.GUIs.GuiItems;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import java.io.File; import java.io.File;
import java.util.Arrays; import java.util.Arrays;
@@ -16,8 +18,13 @@ public class DupeBanStorage implements JsonSerializable<DupeBanStorage> {
return file; return file;
} }
public int bannedModelData = 1111; public int bannedModelData = 1111;
public List<Material> dupeBans = Arrays.asList( public List<Material> bannedMaterials = Arrays.asList(
Material.AZALEA, Material.ANCIENT_DEBRIS,
Material.BIG_DRIPLEAF Material.NETHERITE_INGOT,
Material.TOTEM_OF_UNDYING
);
public List<ItemStack> bannedItems = Arrays.asList(
GuiItems.backArrow,
GuiItems.nextArrow
); );
} }

View File

@@ -1,15 +1,11 @@
package io.github.thetrouper.ultradupe.data.GUIs; package me.trouper.ultradupe.data.GUIs;
import io.github.itzispyder.pdk.Global; import io.github.itzispyder.pdk.Global;
import io.github.itzispyder.pdk.plugin.builders.ItemBuilder;
import io.github.itzispyder.pdk.plugin.gui.CustomGui; import io.github.itzispyder.pdk.plugin.gui.CustomGui;
import io.github.itzispyder.pdk.utils.misc.SoundPlayer; import io.github.itzispyder.pdk.utils.misc.SoundPlayer;
import io.github.thetrouper.ultradupe.UltraDupe;
import io.github.thetrouper.ultradupe.data.DupeBanStorage;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.data.GUIs; package me.trouper.ultradupe.data.GUIs;
import io.github.itzispyder.pdk.Global; import io.github.itzispyder.pdk.Global;
import io.github.itzispyder.pdk.plugin.builders.ItemBuilder; import io.github.itzispyder.pdk.plugin.builders.ItemBuilder;

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.data.config; package me.trouper.ultradupe.data.config;
import io.github.itzispyder.pdk.utils.misc.JsonSerializable; import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
@@ -18,6 +18,8 @@ public class Config implements JsonSerializable<Config> {
public Plugin plugin = new Plugin(); public Plugin plugin = new Plugin();
public class Plugin { public class Plugin {
public int dupeCooldown = 0;
public int multCooldown = 0;
public int maxDupe = 128; public int maxDupe = 128;
public int maxMult = 10; public int maxMult = 10;
} }

View File

@@ -1,10 +1,9 @@
package io.github.thetrouper.ultradupe.events; package me.trouper.ultradupe.events;
import io.github.itzispyder.pdk.events.CustomListener; import io.github.itzispyder.pdk.events.CustomListener;
import io.github.thetrouper.ultradupe.data.GUIs.DupeBanGUI; import me.trouper.ultradupe.data.GUIs.DupeBanGUI;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
public class GuiEvents implements CustomListener { public class GuiEvents implements CustomListener {
@EventHandler @EventHandler

View File

@@ -1,15 +1,13 @@
package io.github.thetrouper.ultradupe.server.functions; package me.trouper.ultradupe.server.functions;
import io.github.thetrouper.ultradupe.UltraDupe; import me.trouper.ultradupe.UltraDupe;
import io.github.thetrouper.ultradupe.data.DupeBanStorage; import me.trouper.ultradupe.server.util.ServerUtils;
import io.github.thetrouper.ultradupe.server.util.ServerUtils;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.block.Container; import org.bukkit.block.Container;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.BlockStateMeta; import org.bukkit.inventory.meta.BlockStateMeta;
import org.bukkit.inventory.meta.ItemMeta;
public class DupeBanCheck { public class DupeBanCheck {
private boolean isContainer(ItemStack itemStack) { private boolean isContainer(ItemStack itemStack) {
@@ -66,7 +64,7 @@ public class DupeBanCheck {
return false; return false;
} }
} }
if (UltraDupe.dupeBanStorage.dupeBans.contains(i.getType())) { if (UltraDupe.dupeBanStorage.bannedMaterials.contains(i.getType())) {
ServerUtils.verbose("DUPEBANS: No pass T"); ServerUtils.verbose("DUPEBANS: No pass T");
return false; return false;
} }

View File

@@ -6,9 +6,9 @@
*/ */
package io.github.thetrouper.ultradupe.server.sound; package me.trouper.ultradupe.server.sound;
import io.github.thetrouper.ultradupe.UltraDupe; import me.trouper.ultradupe.UltraDupe;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Sound; import org.bukkit.Sound;

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.server.util; package me.trouper.ultradupe.server.util;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;

View File

@@ -1,6 +1,6 @@
package io.github.thetrouper.ultradupe.server.util; package me.trouper.ultradupe.server.util;
import io.github.thetrouper.ultradupe.UltraDupe; import me.trouper.ultradupe.UltraDupe;
import java.io.File; import java.io.File;
public class FileUtils { public class FileUtils {

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.server.util; package me.trouper.ultradupe.server.util;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;

View File

@@ -1,4 +1,4 @@
package io.github.thetrouper.ultradupe.server.util; package me.trouper.ultradupe.server.util;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,6 +1,6 @@
package io.github.thetrouper.ultradupe.server.util; package me.trouper.ultradupe.server.util;
import io.github.thetrouper.ultradupe.UltraDupe; import me.trouper.ultradupe.UltraDupe;
import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;

View File

@@ -1,7 +1,7 @@
package io.github.thetrouper.ultradupe.server.util; package me.trouper.ultradupe.server.util;
import io.github.thetrouper.ultradupe.UltraDupe; import me.trouper.ultradupe.UltraDupe;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;

View File

@@ -1,24 +1,35 @@
name: UltraDupe name: UltraDupe
version: '${version}' version: '${version}'
main: io.github.thetrouper.ultradupe.UltraDupe main: me.trouper.ultradupe.UltraDupe
api-version: 1.19 api-version: 1.19
authors: [ TheTrouper ] authors: [ TheTrouper ]
description: Detect Block and Ban players who attempt to grief your server. description: The only acceptable dupe plugin.
website: https://thetrouper.github.io/ website: https://thetrouper.github.io/
softdepend: [ ProtocolLib ]
permissions: permissions:
ultradupe.multiply:
default: op
description: Access to the multiply/exponential dupe feature
ultradupe.dupe: ultradupe.dupe:
description: Access to the dupe
default: op default: op
ultradupe.dupebans.edit: description: Access to the dupe feature
description: edit the dupe ban list ultradupe.bypass.mult-cooldown:
default: op default: op
description: Bypass the multiply cooldown
ultradupe.bypass.dupe-cooldown:
default: op
description: Bypass the dupe cooldown
ultradupe.bypass.bans:
default: op
description: Bypass all the dupe bans
ultradupe.dupebans: ultradupe.dupebans:
description: see the dupe ban list
default: op default: op
description: see the dupe ban list
ultradupe.dupebans.edit:
default: op
description: edit the dupe ban list
commands: commands:
ultradupe: duplicate:
description: A command for testing. description: A command for testing.
usage: /ultradupe usage: /ultradupe
permission: ultradupe.info permission: ultradupe.info
@@ -26,7 +37,6 @@ commands:
aliases: aliases:
- dupe - dupe
- d - d
- ud
multiply: multiply:
description: A command for testing. description: A command for testing.
usage: /ultradupe usage: /ultradupe
@@ -35,7 +45,6 @@ commands:
aliases: aliases:
- mult - mult
- m - m
- um
dupebans: dupebans:
description: dupe bans description: dupe bans
usage: /dupebans [add|remove] usage: /dupebans [add|remove]