Added a bypass for dupeban
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1,3 @@
|
||||
/.idea/
|
||||
/.gradle/
|
||||
/build/
|
||||
|
||||
Binary file not shown.
BIN
.gradle/8.2-rc-2/checksums/md5-checksums.bin
Normal file
BIN
.gradle/8.2-rc-2/checksums/md5-checksums.bin
Normal file
Binary file not shown.
BIN
.gradle/8.2-rc-2/checksums/sha1-checksums.bin
Normal file
BIN
.gradle/8.2-rc-2/checksums/sha1-checksums.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
.gradle/8.2-rc-2/executionHistory/executionHistory.lock
Normal file
BIN
.gradle/8.2-rc-2/executionHistory/executionHistory.lock
Normal file
Binary file not shown.
BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock
Normal file
BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock
Normal file
Binary file not shown.
2
.gradle/buildOutputCleanup/cache.properties
Normal file
2
.gradle/buildOutputCleanup/cache.properties
Normal file
@@ -0,0 +1,2 @@
|
||||
#Tue Feb 27 07:35:11 CST 2024
|
||||
gradle.version=8.2-rc-2
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
package io.github.thetrouper.ultradupe;
|
||||
package me.trouper.ultradupe;
|
||||
|
||||
import io.github.itzispyder.pdk.PDK;
|
||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
||||
import io.github.thetrouper.ultradupe.cmds.DupeBansCommand;
|
||||
import io.github.thetrouper.ultradupe.cmds.DupeCommand;
|
||||
import io.github.thetrouper.ultradupe.cmds.MultiplyCommand;
|
||||
import io.github.thetrouper.ultradupe.data.DupeBanStorage;
|
||||
import io.github.thetrouper.ultradupe.data.config.Config;
|
||||
import io.github.thetrouper.ultradupe.events.GuiEvents;
|
||||
import me.trouper.ultradupe.cmds.DupeBansCommand;
|
||||
import me.trouper.ultradupe.cmds.DupeCommand;
|
||||
import me.trouper.ultradupe.cmds.MultiplyCommand;
|
||||
import me.trouper.ultradupe.cmds.UltraDupeCommand;
|
||||
import me.trouper.ultradupe.data.DupeBanStorage;
|
||||
import me.trouper.ultradupe.data.config.Config;
|
||||
import me.trouper.ultradupe.events.GuiEvents;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
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");
|
||||
public static Config config = JsonSerializable.load(cfgfile, Config.class, new Config());
|
||||
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();
|
||||
|
||||
/**
|
||||
@@ -53,6 +52,7 @@ public final class UltraDupe extends JavaPlugin {
|
||||
new DupeCommand().register();
|
||||
new DupeBansCommand().register();
|
||||
new MultiplyCommand().register();
|
||||
new UltraDupeCommand().register();
|
||||
|
||||
// Events
|
||||
new GuiEvents().register();
|
||||
43
src/main/java/me/trouper/ultradupe/cmds/DupeBansCommand.java
Normal file
43
src/main/java/me/trouper/ultradupe/cmds/DupeBansCommand.java
Normal 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());
|
||||
}
|
||||
}
|
||||
@@ -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.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.completions.CompletionBuilder;
|
||||
import io.github.itzispyder.pdk.utils.SchedulerUtils;
|
||||
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 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.Sound;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@CommandRegistry(value = "ultradupe", permission = @Permission("ultradupe.dupe"), printStackTrace = true)
|
||||
@CommandRegistry(value = "duplicate", permission = @Permission("ultradupe.dupe"), printStackTrace = true)
|
||||
public class DupeCommand implements CustomCommand {
|
||||
|
||||
DupeBanCheck check = new DupeBanCheck();
|
||||
@@ -33,9 +32,15 @@ public class DupeCommand implements CustomCommand {
|
||||
return;
|
||||
}
|
||||
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();
|
||||
|
||||
if (check.itemPasses(i)) {
|
||||
if (check.itemPasses(i) || (p.hasPermission("ultradupe.bypass.bans") && UltraDupeCommand.bypassingBans.contains(p.getUniqueId()))) {
|
||||
if (factor == 0) factor = i.getAmount();
|
||||
SchedulerUtils.loop(1,factor,(time)->{
|
||||
i.setAmount(1);
|
||||
@@ -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.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.completions.CompletionBuilder;
|
||||
import io.github.itzispyder.pdk.utils.SchedulerUtils;
|
||||
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 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.Sound;
|
||||
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);
|
||||
|
||||
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);
|
||||
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();
|
||||
|
||||
if (check.itemPasses(i)) {
|
||||
if (factor == 0) factor = i.getAmount();
|
||||
SchedulerUtils.loop(1,factor,(time)->{
|
||||
if (check.itemPasses(i) || (p.hasPermission("ultradupe.bypass.bans") && UltraDupeCommand.bypassingBans.contains(p.getUniqueId()))) {
|
||||
if (exponent == 0) exponent = i.getAmount();
|
||||
SchedulerUtils.loop(1,exponent,(time)->{
|
||||
yes.play(p);
|
||||
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 {
|
||||
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);
|
||||
}
|
||||
}
|
||||
123
src/main/java/me/trouper/ultradupe/cmds/UltraDupeCommand.java
Normal file
123
src/main/java/me/trouper/ultradupe/cmds/UltraDupeCommand.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package io.github.thetrouper.ultradupe.data;
|
||||
package me.trouper.ultradupe.data;
|
||||
|
||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
||||
import me.trouper.ultradupe.data.GUIs.GuiItems;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
@@ -16,8 +18,13 @@ public class DupeBanStorage implements JsonSerializable<DupeBanStorage> {
|
||||
return file;
|
||||
}
|
||||
public int bannedModelData = 1111;
|
||||
public List<Material> dupeBans = Arrays.asList(
|
||||
Material.AZALEA,
|
||||
Material.BIG_DRIPLEAF
|
||||
public List<Material> bannedMaterials = Arrays.asList(
|
||||
Material.ANCIENT_DEBRIS,
|
||||
Material.NETHERITE_INGOT,
|
||||
Material.TOTEM_OF_UNDYING
|
||||
);
|
||||
public List<ItemStack> bannedItems = Arrays.asList(
|
||||
GuiItems.backArrow,
|
||||
GuiItems.nextArrow
|
||||
);
|
||||
}
|
||||
@@ -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.plugin.builders.ItemBuilder;
|
||||
import io.github.itzispyder.pdk.plugin.gui.CustomGui;
|
||||
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.Sound;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -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.plugin.builders.ItemBuilder;
|
||||
@@ -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;
|
||||
|
||||
@@ -18,6 +18,8 @@ public class Config implements JsonSerializable<Config> {
|
||||
public Plugin plugin = new Plugin();
|
||||
|
||||
public class Plugin {
|
||||
public int dupeCooldown = 0;
|
||||
public int multCooldown = 0;
|
||||
public int maxDupe = 128;
|
||||
public int maxMult = 10;
|
||||
}
|
||||
@@ -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.thetrouper.ultradupe.data.GUIs.DupeBanGUI;
|
||||
import me.trouper.ultradupe.data.GUIs.DupeBanGUI;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
|
||||
public class GuiEvents implements CustomListener {
|
||||
@EventHandler
|
||||
@@ -1,15 +1,13 @@
|
||||
package io.github.thetrouper.ultradupe.server.functions;
|
||||
package me.trouper.ultradupe.server.functions;
|
||||
|
||||
import io.github.thetrouper.ultradupe.UltraDupe;
|
||||
import io.github.thetrouper.ultradupe.data.DupeBanStorage;
|
||||
import io.github.thetrouper.ultradupe.server.util.ServerUtils;
|
||||
import me.trouper.ultradupe.UltraDupe;
|
||||
import me.trouper.ultradupe.server.util.ServerUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.Container;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class DupeBanCheck {
|
||||
private boolean isContainer(ItemStack itemStack) {
|
||||
@@ -66,7 +64,7 @@ public class DupeBanCheck {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (UltraDupe.dupeBanStorage.dupeBans.contains(i.getType())) {
|
||||
if (UltraDupe.dupeBanStorage.bannedMaterials.contains(i.getType())) {
|
||||
ServerUtils.verbose("DUPEBANS: No pass T");
|
||||
return false;
|
||||
}
|
||||
@@ -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.Location;
|
||||
import org.bukkit.Sound;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.github.thetrouper.ultradupe.server.util;
|
||||
package me.trouper.ultradupe.server.util;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
@@ -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;
|
||||
public class FileUtils {
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.github.thetrouper.ultradupe.server.util;
|
||||
package me.trouper.ultradupe.server.util;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.github.thetrouper.ultradupe.server.util;
|
||||
package me.trouper.ultradupe.server.util;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
@@ -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.chat.TextComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -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.Pattern;
|
||||
@@ -1,24 +1,35 @@
|
||||
name: UltraDupe
|
||||
version: '${version}'
|
||||
main: io.github.thetrouper.ultradupe.UltraDupe
|
||||
main: me.trouper.ultradupe.UltraDupe
|
||||
api-version: 1.19
|
||||
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/
|
||||
softdepend: [ ProtocolLib ]
|
||||
permissions:
|
||||
ultradupe.multiply:
|
||||
default: op
|
||||
description: Access to the multiply/exponential dupe feature
|
||||
ultradupe.dupe:
|
||||
description: Access to the dupe
|
||||
default: op
|
||||
ultradupe.dupebans.edit:
|
||||
description: edit the dupe ban list
|
||||
description: Access to the dupe feature
|
||||
ultradupe.bypass.mult-cooldown:
|
||||
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:
|
||||
description: see the dupe ban list
|
||||
default: op
|
||||
description: see the dupe ban list
|
||||
ultradupe.dupebans.edit:
|
||||
default: op
|
||||
description: edit the dupe ban list
|
||||
|
||||
commands:
|
||||
ultradupe:
|
||||
duplicate:
|
||||
description: A command for testing.
|
||||
usage: /ultradupe
|
||||
permission: ultradupe.info
|
||||
@@ -26,7 +37,6 @@ commands:
|
||||
aliases:
|
||||
- dupe
|
||||
- d
|
||||
- ud
|
||||
multiply:
|
||||
description: A command for testing.
|
||||
usage: /ultradupe
|
||||
@@ -35,7 +45,6 @@ commands:
|
||||
aliases:
|
||||
- mult
|
||||
- m
|
||||
- um
|
||||
dupebans:
|
||||
description: dupe bans
|
||||
usage: /dupebans [add|remove]
|
||||
|
||||
Reference in New Issue
Block a user