9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-28 19:39:14 +00:00

Added remove cosmetic command

This commit is contained in:
HeroBrineGoat
2022-01-16 16:06:10 -05:00
parent d6c052294a
commit 4a1eb8a85f
3 changed files with 80 additions and 18 deletions

View File

@@ -18,6 +18,7 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Map;
import java.util.Optional;
@Command("cosmetics")
@@ -99,7 +100,7 @@ public class CosmeticsCommand extends CommandBase {
@SubCommand("add")
@Permission(io.github.fisher2911.hmccosmetics.message.Permission.SET_COSMETIC_COMMAND)
public void setCommand(final CommandSender sender, final Player player, @Completion("#ids") final String id) {
public void setCommand(final CommandSender sender, @Completion("#players") final Player player, @Completion("#ids") final String id) {
final Optional<User> userOptional = this.userManager.get(player.getUniqueId());
if (userOptional.isEmpty()) {
@@ -133,7 +134,7 @@ public class CosmeticsCommand extends CommandBase {
sender,
Messages.SET_OTHER_BACKPACK,
Map.of(Placeholder.PLAYER, player.getName(),
Placeholder.ITEM, id)
Placeholder.TYPE, id)
);
}
case HAT -> {
@@ -146,10 +147,65 @@ public class CosmeticsCommand extends CommandBase {
sender,
Messages.SET_OTHER_HAT,
Map.of(Placeholder.PLAYER, player.getName(),
Placeholder.ITEM, id)
Placeholder.TYPE, id)
);
}
}
}
@SubCommand("remove")
@Permission(io.github.fisher2911.hmccosmetics.message.Permission.SET_COSMETIC_COMMAND)
public void removeCommand(final CommandSender sender, @Completion("#players") final Player player, @Completion("#types") String typeString) {
final Optional<User> userOptional = this.userManager.get(player.getUniqueId());
if (userOptional.isEmpty()) {
this.messageHandler.sendMessage(
sender,
Messages.INVALID_USER
);
return;
}
final User user = userOptional.get();
try {
final ArmorItem.Type type = ArmorItem.Type.valueOf(typeString.toUpperCase());
switch (type) {
case HAT -> {
user.removeHat(this.userManager);
this.messageHandler.sendMessage(
player,
Messages.REMOVED_HAT
);
this.messageHandler.sendMessage(
sender,
Messages.SET_OTHER_HAT,
Map.of(Placeholder.PLAYER, player.getName(),
Placeholder.TYPE, "none")
);
}
case BACKPACK -> {
user.removeBackpack();
this.messageHandler.sendMessage(
player,
Messages.REMOVED_BACKPACK
);
this.messageHandler.sendMessage(
sender,
Messages.SET_OTHER_BACKPACK,
Map.of(Placeholder.PLAYER, player.getName(),
Placeholder.TYPE, "none")
);
}
}
} catch (final IllegalArgumentException exception) {
this.messageHandler.sendMessage(
player,
Messages.INVALID_TYPE);
}
}
}

View File

@@ -9,6 +9,7 @@ import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
public class ArmorItem extends GuiItem {
@@ -144,6 +145,16 @@ public class ArmorItem extends GuiItem {
this.dyeable = dyeable;
}
public static ArmorItem empty(final Type type) {
return new ArmorItem(
new ItemStack(Material.AIR),
"",
new ArrayList<>(),
"",
type
);
}
public String getId() {
return id;
}

View File

@@ -64,6 +64,14 @@ public class User {
this.setPlayerArmor(PlayerArmor.empty());
}
public void removeHat(final UserManager userManager) {
this.setHat(ArmorItem.empty(ArmorItem.Type.HAT), userManager);
}
public void removeBackpack() {
this.setBackpack(ArmorItem.empty(ArmorItem.Type.BACKPACK));
}
public int getArmorStandId() {
return armorStandId;
}
@@ -85,13 +93,7 @@ public class User {
}
if (backpack.getId().equals(this.playerArmor.getBackpack().getId())) {
this.setBackpack(new ArmorItem(
new ItemStack(Material.AIR),
"",
new ArrayList<>(),
"",
ArmorItem.Type.BACKPACK
));
this.setBackpack(ArmorItem.empty(ArmorItem.Type.BACKPACK));
messageHandler.sendMessage(
player,
@@ -130,14 +132,7 @@ public class User {
}
if (hat.getId().equals(this.playerArmor.getHat().getId())) {
this.setHat(new ArmorItem(
new ItemStack(Material.AIR),
"",
new ArrayList<>(),
"",
ArmorItem.Type.HAT
),
userManager);
this.setHat(ArmorItem.empty(ArmorItem.Type.BACKPACK), userManager);
messageHandler.sendMessage(
player,