Added netherite items in concept, trust and admin commands are conceptual as well.
This commit is contained in:
71
src/main/java/me/trouper/armorsmp/data/NetheritePiece.java
Normal file
71
src/main/java/me/trouper/armorsmp/data/NetheritePiece.java
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
package me.trouper.armorsmp.data;
|
||||||
|
|
||||||
|
import io.github.itzispyder.pdk.plugin.builders.ItemBuilder;
|
||||||
|
import me.trouper.armorsmp.utils.Text;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
public enum NetheritePiece {
|
||||||
|
HELMET(ItemBuilder.create()
|
||||||
|
.material(Material.NETHERITE_HELMET)
|
||||||
|
.lore(Text.legacyColor("&bAbilities:"))
|
||||||
|
.lore(Text.legacyColor("&3| &75 Extra Hearts"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Fire Resistence"))
|
||||||
|
.enchant(Enchantment.BINDING_CURSE,1)
|
||||||
|
.enchant(Enchantment.PROTECTION,4)
|
||||||
|
.enchant(Enchantment.UNBREAKING,3)
|
||||||
|
.enchant(Enchantment.MENDING,1)
|
||||||
|
.enchant(Enchantment.RESPIRATION,3)
|
||||||
|
.enchant(Enchantment.AQUA_AFFINITY,1)
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
CHESTPLATE(ItemBuilder.create()
|
||||||
|
.material(Material.NETHERITE_CHESTPLATE)
|
||||||
|
.lore(Text.legacyColor("&bAbilities:"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Dragon's Breath"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Resistence I"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Strength I"))
|
||||||
|
.enchant(Enchantment.BINDING_CURSE,1)
|
||||||
|
.enchant(Enchantment.PROTECTION,4)
|
||||||
|
.enchant(Enchantment.UNBREAKING,3)
|
||||||
|
.enchant(Enchantment.MENDING,1)
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
LEGGINGS(ItemBuilder.create()
|
||||||
|
.material(Material.NETHERITE_LEGGINGS)
|
||||||
|
.lore(Text.legacyColor("&bAbilities:"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Knockback Shield"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Resistence I"))
|
||||||
|
.enchant(Enchantment.BINDING_CURSE,1)
|
||||||
|
.enchant(Enchantment.PROTECTION,4)
|
||||||
|
.enchant(Enchantment.UNBREAKING,3)
|
||||||
|
.enchant(Enchantment.MENDING,1)
|
||||||
|
.enchant(Enchantment.SWIFT_SNEAK,3)
|
||||||
|
.build()
|
||||||
|
),
|
||||||
|
BOOTS(ItemBuilder.create()
|
||||||
|
.material(Material.NETHERITE_BOOTS)
|
||||||
|
.lore(Text.legacyColor("&bAbilities:"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Dash"))
|
||||||
|
.lore(Text.legacyColor("&3| &7Speed 1"))
|
||||||
|
.enchant(Enchantment.BINDING_CURSE,1)
|
||||||
|
.enchant(Enchantment.PROTECTION,4)
|
||||||
|
.enchant(Enchantment.UNBREAKING,3)
|
||||||
|
.enchant(Enchantment.MENDING,1)
|
||||||
|
.enchant(Enchantment.SOUL_SPEED,3)
|
||||||
|
.enchant(Enchantment.FEATHER_FALLING,4)
|
||||||
|
.enchant(Enchantment.DEPTH_STRIDER,3)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
|
||||||
|
private ItemStack inGame;
|
||||||
|
|
||||||
|
NetheritePiece(ItemStack inGame) {
|
||||||
|
this.inGame = inGame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getInGameItem() {
|
||||||
|
return inGame;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,12 +6,14 @@ import me.trouper.armorsmp.server.commands.AdminCommand;
|
|||||||
import me.trouper.armorsmp.server.commands.TrustCommand;
|
import me.trouper.armorsmp.server.commands.TrustCommand;
|
||||||
import me.trouper.armorsmp.server.crafting.ArmorUpgrade;
|
import me.trouper.armorsmp.server.crafting.ArmorUpgrade;
|
||||||
import me.trouper.armorsmp.server.events.CraftEvent;
|
import me.trouper.armorsmp.server.events.CraftEvent;
|
||||||
import me.trouper.armorsmp.server.functions.ArmorBackend;
|
import me.trouper.armorsmp.server.systems.ArmorBackend;
|
||||||
|
import me.trouper.armorsmp.server.systems.TrustBackend;
|
||||||
|
|
||||||
public class Manager {
|
public class Manager {
|
||||||
// My systems
|
// My systems
|
||||||
public IO io;
|
public IO io;
|
||||||
public ArmorBackend armor;
|
public ArmorBackend armor;
|
||||||
|
public TrustBackend trust;
|
||||||
|
|
||||||
// Commands
|
// Commands
|
||||||
public AdminCommand adminCommand;
|
public AdminCommand adminCommand;
|
||||||
@@ -23,6 +25,7 @@ public class Manager {
|
|||||||
public Manager() {
|
public Manager() {
|
||||||
io = new IO(); // IO must come as the first.
|
io = new IO(); // IO must come as the first.
|
||||||
armor = new ArmorBackend();
|
armor = new ArmorBackend();
|
||||||
|
trust = new TrustBackend();
|
||||||
|
|
||||||
adminCommand = new AdminCommand();
|
adminCommand = new AdminCommand();
|
||||||
trustCommand = new TrustCommand();
|
trustCommand = new TrustCommand();
|
||||||
|
|||||||
@@ -5,32 +5,185 @@ import io.github.itzispyder.pdk.commands.CommandRegistry;
|
|||||||
import io.github.itzispyder.pdk.commands.CustomCommand;
|
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 me.trouper.armorsmp.ArmorSMP;
|
||||||
|
import me.trouper.armorsmp.data.ArmorTier;
|
||||||
|
import me.trouper.armorsmp.data.NetheritePiece;
|
||||||
|
import me.trouper.armorsmp.server.crafting.ArmorUpgrade;
|
||||||
import me.trouper.armorsmp.utils.Text;
|
import me.trouper.armorsmp.utils.Text;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@CommandRegistry(value = "armorsmp", permission = @Permission("op"), printStackTrace = true)
|
@CommandRegistry(value = "armorsmp", permission = @Permission("op"), printStackTrace = true)
|
||||||
public class AdminCommand implements CustomCommand {
|
public class AdminCommand implements CustomCommand {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispatchCommand(CommandSender sender, Command command, String label, Args args) {
|
public void dispatchCommand(CommandSender sender, Command command, String label, Args args) {
|
||||||
if (args.getSize() < 1) {
|
if (args.getSize() < 1) {
|
||||||
Text.sendError(sender, "Error: Valid sub-commands are: [change, give, toggle, reset, remove]");
|
Text.sendError(sender, "Error: Valid sub-commands are: [change, give, toggle, reset, remove]");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
switch (label) {
|
String sub = args.get(0).toString();
|
||||||
|
switch (sub) {
|
||||||
case "change" -> {
|
case "change" -> {
|
||||||
|
if (args.getSize() < 3) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp change <tier> <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final String tierName = args.get(1).toString();
|
||||||
|
final String playerName = args.get(2).toString();
|
||||||
|
final OfflinePlayer target = Bukkit.getPlayer(playerName);
|
||||||
|
|
||||||
|
if (target == null) {
|
||||||
|
Text.sendError(sender, "Player not found or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ArmorTier tier = ArmorTier.valueOf(tierName.toUpperCase());
|
||||||
|
ArmorSMP.getInstance().getManager().armor.setTier(target,tier);
|
||||||
|
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender,"Changed armor tier to {0} for {1}",tier,target.getName());
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
Text.sendError(sender, "Invalid tier! Valid tiers: " + Arrays.toString(ArmorTier.values()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
default -> {
|
case "give" -> {
|
||||||
Text.sendError(sender, "Error: Valid sub-commands are: [change, give, toggle, reset, remove]");
|
if (args.getSize() < 2) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp give <upgrader|netherite|mace> ...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String type = args.get(1).toString().toLowerCase();
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case "upgrader" -> {
|
||||||
|
if (args.getSize() < 3) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp give upgrader <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player target = Bukkit.getPlayer(args.get(2).toString());
|
||||||
|
if (target == null) {
|
||||||
|
Text.sendError(sender, "Player not found or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
target.getInventory().addItem(ArmorUpgrade.ARMOR_UGPRADE);
|
||||||
|
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender, "Given and Upgrader to {0}",target.getName());
|
||||||
|
}
|
||||||
|
case "netherite" -> {
|
||||||
|
if (args.getSize() < 4) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp give netherite <piece> <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
NetheritePiece piece = args.get(2).toEnum(NetheritePiece.class);
|
||||||
|
if (piece == null) {
|
||||||
|
Text.sendMessage(false, Text.Pallet.ERROR,sender,"Error: {0} is not a valid Netherite piece.",args.get(2).toString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player target = Bukkit.getPlayer(args.get(3).toString());
|
||||||
|
|
||||||
|
if (target == null) {
|
||||||
|
Text.sendError(sender, "Player not found or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Handle netherite stuff
|
||||||
|
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender, "Given {0} to {1}",piece.name().toLowerCase(), target.getName());
|
||||||
|
}
|
||||||
|
case "mace" -> {
|
||||||
|
if (args.getSize() < 3) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp give mace <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player target = Bukkit.getPlayer(args.get(2).toString());
|
||||||
|
if (target == null) {
|
||||||
|
Text.sendError(sender, "Player not found or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: handle Mace stuff
|
||||||
|
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender, "Given {0} to {1}","mace",target.getName());
|
||||||
|
}
|
||||||
|
default -> Text.sendError(sender, "Invalid give type! Valid types: upgrader, netherite, mace");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
case "toggle" -> {
|
||||||
|
if (args.getSize() < 2) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp toggle <end|nether|mace>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String feature = args.get(1).toString().toLowerCase();
|
||||||
|
// TODO: toggles
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender, "Toggled the {0}",feature);
|
||||||
|
}
|
||||||
|
case "reset" -> {
|
||||||
|
if (args.getSize() < 2 || !args.get(1).toString().equalsIgnoreCase("mace")) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp reset mace");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// TODO: mace reset
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender, "Reset Mace");
|
||||||
|
}
|
||||||
|
case "remove" -> {
|
||||||
|
String type = args.get(1).toString().toLowerCase();
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case "netherite" -> {
|
||||||
|
if (args.getSize() < 4) {
|
||||||
|
Text.sendError(sender, "Usage: /armorsmp remove <piece> <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
NetheritePiece piece = args.get(2).toEnum(NetheritePiece.class);
|
||||||
|
Player target = Bukkit.getPlayer(args.get(3).toString());
|
||||||
|
|
||||||
|
if (target == null) {
|
||||||
|
Text.sendError(sender, "Player not found or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: armor removal
|
||||||
|
Text.sendMessage(false, Text.Pallet.SUCCESS, sender, "Removed {0} from {1}", piece.name().toLowerCase(), target.getName());
|
||||||
|
}
|
||||||
|
default -> Text.sendError(sender, "Invalid give type! Valid types: netherite");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default -> Text.sendError(sender, "Error: Valid sub-commands are: [change, give, toggle, reset, remove]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispatchCompletions(CommandSender commandSender, Command command, String label, CompletionBuilder completionBuilder) {
|
public void dispatchCompletions(CommandSender commandSender, Command command, String label, CompletionBuilder b) {
|
||||||
|
b.then(
|
||||||
|
b.arg("change")
|
||||||
|
.then(b.argEnum(ArmorTier.class).then(b.argOnlinePlayers()))
|
||||||
|
).then(
|
||||||
|
b.arg("give")
|
||||||
|
.then(b.arg("upgrader")
|
||||||
|
.then(b.argOnlinePlayers()))
|
||||||
|
.then(b.arg("netherite")
|
||||||
|
.then(b.argEnum(NetheritePiece.class)
|
||||||
|
.then(b.argOnlinePlayers())))
|
||||||
|
.then(b.arg("mace")
|
||||||
|
.then(b.argOnlinePlayers()))
|
||||||
|
).then(
|
||||||
|
b.arg("reset")
|
||||||
|
.then(b.arg("mace"))
|
||||||
|
).then(
|
||||||
|
b.arg("remove")
|
||||||
|
.then(b.arg("netherite")
|
||||||
|
.then(b.argEnum(NetheritePiece.class)
|
||||||
|
.then(b.argOnlinePlayers())))
|
||||||
|
).then(b.arg("toggle")
|
||||||
|
.then(b.arg("end","nether","mace")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,92 @@
|
|||||||
package me.trouper.armorsmp.server.commands;
|
package me.trouper.armorsmp.server.commands;
|
||||||
|
|
||||||
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.CustomCommand;
|
import io.github.itzispyder.pdk.commands.CustomCommand;
|
||||||
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
|
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
|
||||||
|
import me.trouper.armorsmp.ArmorSMP;
|
||||||
|
import me.trouper.armorsmp.utils.Text;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@CommandRegistry(value = "trust", playersOnly = true, printStackTrace = true)
|
||||||
public class TrustCommand implements CustomCommand {
|
public class TrustCommand implements CustomCommand {
|
||||||
@Override
|
@Override
|
||||||
public void dispatchCommand(CommandSender commandSender, Command command, String s, Args args) {
|
public void dispatchCommand(CommandSender sender, Command command, String label, Args args) {
|
||||||
|
if (args.getSize() < 1) {
|
||||||
|
Text.sendError(sender, "Error: Valid sub-commands are: [add, remove, list]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String sub = args.get(0).toString();
|
||||||
|
|
||||||
|
switch (sub) {
|
||||||
|
case "add" -> {
|
||||||
|
if (args.getSize() < 2) {
|
||||||
|
Text.sendError(sender, "Usage: /trust add <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final String target = args.get(1).toString();
|
||||||
|
final OfflinePlayer trustee = Bukkit.getOfflinePlayer(target);
|
||||||
|
|
||||||
|
if (trustee == null) {
|
||||||
|
Text.sendError(sender, "Player not found online or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ArmorSMP.getInstance().getManager().trust.addTrust((Player) sender,trustee.getUniqueId())) {
|
||||||
|
Text.sendMessage(true, Text.Pallet.SUCCESS,sender,"Successfully trusted {0}.",target);
|
||||||
|
if (trustee.isOnline())Text.sendMessage(true, Text.Pallet.SUCCESS,(Player) trustee,"Successfully trusted {0}.",sender.getName());
|
||||||
|
} else {
|
||||||
|
Text.sendMessage(true, Text.Pallet.NEUTRAL,sender,"You already have {0} trusted.",target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "remove" -> {
|
||||||
|
if (args.getSize() < 2) {
|
||||||
|
Text.sendError(sender, "Usage: /trust remove <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final String target = args.get(1).toString();
|
||||||
|
final OfflinePlayer trustee = Bukkit.getOfflinePlayer(target);
|
||||||
|
|
||||||
|
if (trustee == null) {
|
||||||
|
Text.sendError(sender, "Player not found online or offline.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ArmorSMP.getInstance().getManager().trust.removeTrust((Player) sender,trustee.getUniqueId())) {
|
||||||
|
Text.sendMessage(true, Text.Pallet.SUCCESS,sender,"Successfully un-trusted {0}.",target);
|
||||||
|
if (trustee.isOnline())Text.sendMessage(true, Text.Pallet.SUCCESS,(Player) trustee,"{0} has un-trusted you.",sender.getName());
|
||||||
|
} else {
|
||||||
|
Text.sendMessage(true, Text.Pallet.NEUTRAL,sender,"You do not have {0} trusted.",target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "list" -> {
|
||||||
|
final Set<String> trustees = ArmorSMP.getInstance().getManager().trust.getTrustees((Player) sender);
|
||||||
|
Set<String> names = new HashSet<>();
|
||||||
|
for (String trustee : trustees) {
|
||||||
|
names.add(Bukkit.getOfflinePlayer(UUID.fromString(trustee)).getName());
|
||||||
|
}
|
||||||
|
Text.sendMessage(false, Text.Pallet.NEUTRAL,sender,"You currently have {0} players trusted: {1}",trustees.size(), Arrays.toString(names.toArray()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispatchCompletions(CommandSender commandSender, Command command, String s, CompletionBuilder completionBuilder) {
|
public void dispatchCompletions(CommandSender commandSender, Command command, String s, CompletionBuilder b) {
|
||||||
|
b.then(
|
||||||
|
b.arg("add","remove")
|
||||||
|
.then(b.argOnlinePlayers())
|
||||||
|
).then(
|
||||||
|
b.arg("list")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.bukkit.inventory.ShapedRecipe;
|
|||||||
public class ArmorUpgrade {
|
public class ArmorUpgrade {
|
||||||
public static final ItemStack ARMOR_UGPRADE = ItemBuilder.create()
|
public static final ItemStack ARMOR_UGPRADE = ItemBuilder.create()
|
||||||
.material(Material.NETHER_STAR)
|
.material(Material.NETHER_STAR)
|
||||||
.name("§b§lArmor Upgrade")
|
.name("§b§lArmor Upgrader")
|
||||||
.lore("§9| §3Right click to upgrade your gear")
|
.lore("§9| §3Right click to upgrade your gear")
|
||||||
.count(1)
|
.count(1)
|
||||||
.customModelData(1)
|
.customModelData(1)
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package me.trouper.armorsmp.server.events;
|
package me.trouper.armorsmp.server.events;
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.events.CustomListener;
|
import io.github.itzispyder.pdk.events.CustomListener;
|
||||||
|
import me.trouper.armorsmp.ArmorSMP;
|
||||||
import me.trouper.armorsmp.utils.Text;
|
import me.trouper.armorsmp.utils.Text;
|
||||||
|
import me.trouper.armorsmp.utils.Verbose;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.inventory.CraftItemEvent;
|
import org.bukkit.event.inventory.CraftItemEvent;
|
||||||
@@ -14,6 +16,8 @@ public class CraftEvent implements CustomListener {
|
|||||||
final ItemStack result = e.getRecipe().getResult();
|
final ItemStack result = e.getRecipe().getResult();
|
||||||
final String name = result.getType().name();
|
final String name = result.getType().name();
|
||||||
final Player p = (Player) e.getWhoClicked();
|
final Player p = (Player) e.getWhoClicked();
|
||||||
|
|
||||||
|
Verbose.send("Handling craft for %s, result: %s", p.getName(), result.getType().name());
|
||||||
|
|
||||||
if (!name.contains("HELMET")
|
if (!name.contains("HELMET")
|
||||||
&& !name.contains("CHESTPLATE")
|
&& !name.contains("CHESTPLATE")
|
||||||
@@ -24,7 +28,10 @@ public class CraftEvent implements CustomListener {
|
|||||||
&& !name.contains("NETHERITE_AXE")
|
&& !name.contains("NETHERITE_AXE")
|
||||||
&& !name.contains("NETHERITE_SHOVEL")
|
&& !name.contains("NETHERITE_SHOVEL")
|
||||||
&& !name.contains("NETHERITE_HOE")
|
&& !name.contains("NETHERITE_HOE")
|
||||||
|
&& (!ArmorSMP.getInstance().getManager().io.config.maceCraftingEnabled && !name.contains("MACE"))
|
||||||
) return;
|
) return;
|
||||||
|
|
||||||
|
Verbose.send("%s Attempted to craft a disabled item.", p.getName());
|
||||||
|
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
p.closeInventory();
|
p.closeInventory();
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
package me.trouper.armorsmp.server.functions;
|
package me.trouper.armorsmp.server.systems;
|
||||||
|
|
||||||
import me.trouper.armorsmp.ArmorSMP;
|
import me.trouper.armorsmp.ArmorSMP;
|
||||||
import me.trouper.armorsmp.data.ArmorTier;
|
import me.trouper.armorsmp.data.ArmorTier;
|
||||||
import me.trouper.armorsmp.data.Storage;
|
import me.trouper.armorsmp.data.Storage;
|
||||||
import org.bukkit.entity.Player;
|
import me.trouper.armorsmp.utils.Verbose;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
public class ArmorBackend {
|
public class ArmorBackend {
|
||||||
|
|
||||||
@@ -13,26 +14,29 @@ public class ArmorBackend {
|
|||||||
storage = ArmorSMP.getInstance().getManager().io.storage;
|
storage = ArmorSMP.getInstance().getManager().io.storage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTier(Player target, ArmorTier tier) {
|
public void setTier(OfflinePlayer target, ArmorTier tier) {
|
||||||
|
Verbose.send("Setting tier of %s to %s",target.getName(),tier);
|
||||||
storage.userData.playerTiers.put(target.getUniqueId().toString(),tier.getNumeric());
|
storage.userData.playerTiers.put(target.getUniqueId().toString(),tier.getNumeric());
|
||||||
storage.save();
|
storage.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTier(Player target, int tier) {
|
public void setTier(OfflinePlayer target, int tier) {
|
||||||
|
Verbose.send("Setting tier of %s to %s",target.getName(),tier);
|
||||||
setTier(target,ArmorTier.getTier(tier));
|
setTier(target,ArmorTier.getTier(tier));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void downTier(Player target) {
|
public void downTier(OfflinePlayer target) {
|
||||||
int numeric = storage.userData.playerTiers.get(target.getUniqueId().toString());
|
int numeric = storage.userData.playerTiers.get(target.getUniqueId().toString());
|
||||||
setTier(target,ArmorTier.getTier(numeric - 1));
|
setTier(target,ArmorTier.getTier(numeric - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void upTier(Player target) {
|
public void upTier(OfflinePlayer target) {
|
||||||
int numeric = storage.userData.playerTiers.get(target.getUniqueId().toString());
|
int numeric = storage.userData.playerTiers.get(target.getUniqueId().toString());
|
||||||
setTier(target,ArmorTier.getTier(numeric + 1));
|
setTier(target,ArmorTier.getTier(numeric + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArmorTier getTier(Player target) {
|
public ArmorTier getTier(OfflinePlayer target) {
|
||||||
|
Verbose.send("Getting tier of %s", target.getName());
|
||||||
int numeric = storage.userData.playerTiers.get(target.getUniqueId().toString());
|
int numeric = storage.userData.playerTiers.get(target.getUniqueId().toString());
|
||||||
for (ArmorTier value : ArmorTier.values()) {
|
for (ArmorTier value : ArmorTier.values()) {
|
||||||
if (value.getNumeric() == numeric) return value;
|
if (value.getNumeric() == numeric) return value;
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package me.trouper.armorsmp.server.systems;
|
||||||
|
|
||||||
|
import me.trouper.armorsmp.ArmorSMP;
|
||||||
|
import me.trouper.armorsmp.data.Storage;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class TrustBackend {
|
||||||
|
private final Storage storage;
|
||||||
|
|
||||||
|
public TrustBackend() {
|
||||||
|
storage = ArmorSMP.getInstance().getManager().io.storage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addTrust(Player truster, UUID trustee) {
|
||||||
|
Set<String> trustees = getTrustees(truster);
|
||||||
|
boolean added = trustees.add(trustee.toString());
|
||||||
|
storage.userData.playerTrust.put(truster.getUniqueId().toString(),trustees);
|
||||||
|
storage.save();
|
||||||
|
return added;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean removeTrust(Player truster, UUID trustee) {
|
||||||
|
Set<String> trustees = getTrustees(truster);
|
||||||
|
boolean removed = trustees.remove(trustee.toString());
|
||||||
|
storage.userData.playerTrust.put(truster.getUniqueId().toString(),trustees);
|
||||||
|
storage.save();
|
||||||
|
return removed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<String> getTrustees(Player target) {
|
||||||
|
return storage.userData.playerTrust.getOrDefault(target.getUniqueId(),new HashSet<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -26,23 +26,23 @@ public class Text {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void sendWarning(CommandSender sender, String warning, Object... args) {
|
public static void sendWarning(CommandSender sender, String warning, Object... args) {
|
||||||
sendMessage(Pallet.WARNING, sender, warning, false, args);
|
sendMessage(false, Pallet.WARNING, sender, warning, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendError(CommandSender sender, String error, Object... args) {
|
public static void sendError(CommandSender sender, String error, Object... args) {
|
||||||
sendMessage(Pallet.ERROR, sender, error, false, args);
|
sendMessage(false, Pallet.ERROR, sender, error, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(CommandSender sender, String text, boolean allowTip, Object... args) {
|
public static void sendMessage(boolean allowTip, CommandSender sender, String text, Object... args) {
|
||||||
sendMessage(Pallet.NEUTRAL, sender, text, allowTip, args);
|
sendMessage(false, Pallet.NEUTRAL, sender, text, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(Pallet pallet, CommandSender sender, String text, boolean allowTip, Object... args) {
|
public static void sendMessage(boolean allowTip, Pallet pallet, CommandSender sender, String text, Object... args) {
|
||||||
text = formatArgs(pallet, text, args);
|
text = formatArgs(pallet, text, args);
|
||||||
sendMessage(sender, text, allowTip);
|
sendMessage(allowTip,sender, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendMessage(CommandSender sender, String text, boolean allowTip) {
|
public static void sendMessage(boolean allowTip, CommandSender sender, String text) {
|
||||||
if (sender instanceof Player player) {
|
if (sender instanceof Player player) {
|
||||||
allowTip = allowTip
|
allowTip = allowTip
|
||||||
&& ArmorSMP.getInstance().getManager().io.config.tips.tipsEnabled
|
&& ArmorSMP.getInstance().getManager().io.config.tips.tipsEnabled
|
||||||
|
|||||||
Reference in New Issue
Block a user