mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2026-01-02 22:02:41 +00:00
Cosmetic wardrobe through commands #24
This commit is contained in:
@@ -2,6 +2,7 @@ package com.hibiscusmc.hmccosmetics.command;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import com.hibiscusmc.hmccosmetics.config.Settings;
|
||||
import com.hibiscusmc.hmccosmetics.config.WardrobeSettings;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics;
|
||||
@@ -12,6 +13,8 @@ import com.hibiscusmc.hmccosmetics.gui.special.DyeMenu;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUsers;
|
||||
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -83,6 +86,13 @@ public class CosmeticCommand implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
TagResolver placeholders =
|
||||
TagResolver.resolver(Placeholder.parsed("cosmetic", cosmetic.getId()),
|
||||
TagResolver.resolver(Placeholder.parsed("player", player.getName())),
|
||||
TagResolver.resolver(Placeholder.parsed("cosmeticslot", cosmetic.getSlot().name())));
|
||||
|
||||
MessagesUtil.sendMessage(player, "equip-cosmetic", placeholders);
|
||||
|
||||
user.addPlayerCosmetic(cosmetic);
|
||||
user.updateCosmetic(cosmetic.getSlot());
|
||||
return true;
|
||||
@@ -108,6 +118,13 @@ public class CosmeticCommand implements CommandExecutor {
|
||||
|
||||
CosmeticUser user = CosmeticUsers.getUser(player);
|
||||
|
||||
TagResolver placeholders =
|
||||
TagResolver.resolver(Placeholder.parsed("cosmetic", user.getCosmetic(cosmeticSlot).getId()),
|
||||
TagResolver.resolver(Placeholder.parsed("player", player.getName())),
|
||||
TagResolver.resolver(Placeholder.parsed("cosmeticslot", cosmeticSlot.name())));
|
||||
|
||||
MessagesUtil.sendMessage(player, "unequip-cosmetic", placeholders);
|
||||
|
||||
user.removeCosmeticSlot(cosmeticSlot);
|
||||
user.updateCosmetic(cosmeticSlot);
|
||||
return true;
|
||||
@@ -182,6 +199,35 @@ public class CosmeticCommand implements CommandExecutor {
|
||||
DyeMenu.openMenu(user, user.getCosmetic(CosmeticSlot.valueOf(args[1])));
|
||||
}
|
||||
|
||||
else if (args[0].equalsIgnoreCase("setlocation")) {
|
||||
|
||||
Player player = sender instanceof Player ? (Player) sender : null;
|
||||
if (player == null) return true;
|
||||
|
||||
if (args.length < 2) {
|
||||
MessagesUtil.sendMessage(player, "not-enough-args");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("wardrobelocation")) {
|
||||
WardrobeSettings.setWardrobeLocation(player.getLocation());
|
||||
MessagesUtil.sendMessage(player, "set-wardrobe-location");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("viewerlocation")) {
|
||||
WardrobeSettings.setViewerLocation(player.getLocation());
|
||||
MessagesUtil.sendMessage(player, "set-wardrobe-viewing");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[1].equalsIgnoreCase("leavelocation")) {
|
||||
WardrobeSettings.setLeaveLocation(player.getLocation());
|
||||
MessagesUtil.sendMessage(player, "set-wardrobe-leaving");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
else if (args[0].equalsIgnoreCase("dump") && args.length == 1) {
|
||||
Player player = sender instanceof Player ? (Player) sender : null;
|
||||
if (player == null) return true;
|
||||
|
||||
@@ -31,6 +31,7 @@ public class CosmeticCommandTabComplete implements TabCompleter {
|
||||
completions.add("reload");
|
||||
completions.add("dataclear");
|
||||
completions.add("dye");
|
||||
completions.add("setlocation");
|
||||
}
|
||||
|
||||
if (!(sender instanceof Player)) return completions;
|
||||
@@ -54,6 +55,10 @@ public class CosmeticCommandTabComplete implements TabCompleter {
|
||||
for (CosmeticSlot slot : user.getDyeableSlots()) {
|
||||
completions.add(slot.name());
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("setlocation")) {
|
||||
completions.add("wardrobelocation");
|
||||
completions.add("viewerlocation");
|
||||
completions.add("leavelocation");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user