EpicKnarvik97 b66c63f698 Cleans a lot of code and fixes several bugs
Fixes joining by sign click not working
Fixes negative numbers breaking variable parsing
Fixes many messages not displaying properly
2023-07-23 20:15:40 +02:00

53 lines
2.1 KiB
Java

package net.knarcraft.blockhunt.command;
import net.knarcraft.blockhunt.BlockHunt;
import net.knarcraft.blockhunt.MemoryStorage;
import net.knarcraft.blockhunt.config.ConfigKey;
import net.knarcraft.blockhunt.config.MessageKey;
import net.knarcraft.blockhunt.util.MessageHelper;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.logging.Level;
public class WandCommand extends DefaultCommand {
@Override
public boolean execute(Player player, String[] args) {
if (player != null) {
Material material = Material.getMaterial((String) MemoryStorage.config.get(ConfigKey.WAND_ID_NAME));
if (material == null) {
BlockHunt.plugin.getLogger().log(Level.SEVERE, "Invalid wand material specified in the config file!");
return true;
}
ItemStack wand = new ItemStack(material);
ItemMeta itemMeta = wand.getItemMeta();
Objects.requireNonNull(itemMeta).setDisplayName(MessageHelper.replaceAll(
(String) MemoryStorage.config.get(ConfigKey.WAND_NAME)));
MemoryStorage.config.load();
List<String> loreLines = MemoryStorage.config.getFileConfiguration().getStringList(
ConfigKey.WAND_DESCRIPTION.getPath());
List<String> loreLines2 = new ArrayList<>();
for (String lore : loreLines) {
loreLines2.add(MessageHelper.replaceAll(lore));
}
itemMeta.setLore(loreLines2);
wand.setItemMeta(itemMeta);
player.getInventory().addItem(wand);
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 5, 0);
MessageHelper.sendMessage(player, MessageKey.NORMAL_WAND_GAVE_WAND, "type-" +
wand.getType().toString().replaceAll("_", " ").toLowerCase());
} else {
MessageHelper.sendMessage(null, MessageKey.ERROR_ONLY_IN_GAME);
}
return true;
}
}