Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.io.File;
- import java.io.IOException;
- public class RewardPlugin extends JavaPlugin implements Listener, CommandExecutor {
- private File dataFile;
- private FileConfiguration dataConfig;
- private String menuTitle;
- private ItemStack requiredItem;
- private String rewardCommand;
- @Override
- public void onEnable() {
- saveDefaultConfig();
- loadConfig();
- getServer().getPluginManager().registerEvents(this, this);
- getCommand("rewards").setExecutor(this);
- dataFile = new File(getDataFolder(), "data.yml");
- dataConfig = YamlConfiguration.loadConfiguration(dataFile);
- }
- private void loadConfig() {
- reloadConfig();
- menuTitle = ChatColor.translateAlternateColorCodes('&', getConfig().getString("menu-title"));
- ConfigurationSection requiredItemSection = getConfig().getConfigurationSection("required-item");
- Material material = Material.valueOf(requiredItemSection.getString("material"));
- String name = ChatColor.translateAlternateColorCodes('&', requiredItemSection.getString("name"));
- String[] loreArray = requiredItemSection.getStringList("lore").toArray(new String[0]);
- ItemStack item = new ItemStack(material);
- item.getItemMeta().setDisplayName(name);
- item.getItemMeta().setLore(Arrays.asList(loreArray));
- requiredItem = item;
- rewardCommand = getConfig().getString("reward-command");
- }
- @Override
- public void onDisable() {
- }
- @Override
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if (cmd.getName().equalsIgnoreCase("rewards")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- openRewardMenu(player);
- } else {
- sender.sendMessage("Only players.");
- }
- return true;
- }
- return false;
- }
- private void openRewardMenu(Player player) {
- Inventory menu = Bukkit.createInventory(null, 9, menuTitle);
- menu.setItem(4, requiredItem);
- player.openInventory(menu);
- }
- @EventHandler
- public void onInventoryClick(InventoryClickEvent event) {
- if (event.getView().getTitle().equals(menuTitle)) {
- ItemStack clickedItem = event.getCurrentItem();
- Player player = (Player) event.getWhoClicked();
- if (clickedItem != null && clickedItem.isSimilar(requiredItem)) {
- player.getInventory().remove(clickedItem);
- player.sendMessage(ChatColor.GREEN + "Поздравляем! Вы получили награду!");
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), rewardCommand.replace("{player}", player.getName()));
- recordItem(player.getName(), clickedItem);
- }
- event.setCancelled(true);
- }
- }
- private void recordItem(String playerName, ItemStack item) {
- dataConfig.set("rewards." + playerName + ".item", item);
- saveDataConfig();
- }
- private void saveDataConfig() {
- try {
- dataConfig.save(dataFile);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment