Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Продажа блоков инвентарь

Thorgathis

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Thorgathis
Всем привет решил я значит сделать плагин который будет продовать блоки по 16 штук из инвентаря
Мне нужно что бы блоки можно было продовать(ПКМ) и покупать(ЛКМ)
Зарание спасибо за помощь

вот что накидал
Код:
@Override
    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
        Player p = (Player) commandSender;
        Inventory menu = Bukkit.createInventory(null, 9 * 6, ChatColor.RED + "Продажа блоков");

        ItemStack grassb = new ItemStack(Material.GRASS_BLOCK);
        ItemMeta btmeta = grassb.getItemMeta();
        btmeta.setDisplayName(ChatColor.BLUE + "Дёрн");
        List<String> grassbl = new ArrayList<>();
        grassbl.add(ChatColor.GRAY + "Цена: 0.0016 за 16 блолков");
        btmeta.setLore(grassbl);
        grassb.setItemMeta(btmeta);
        menu.setItem(1,grassb);
       
        main.getInstance().pdata.set("data." + p.getName() + ".ccb", main.getInstance().pdata.getInt("data." + p.getName() + ".ccb") + 0.0016);
        main.getInstance().save();

       
        p.openInventory(menu);

        return true;
    }

+ из этого инвентаря можно брать вещи и они не проподают при перезаходе
 
Ну инвентарь ты создал, теперь нужно прослушать клики по нему через InventoryClickEvent и написать логику
 
вот мой код
но нечего не работает


Код:
package main;

import java.util.ArrayList;
import java.util.List;

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.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;

public class blocks implements CommandExecutor, Listener {
   
    public boolean onCommand(InventoryClickEvent e, CommandSender commandSender, Command command, String s, String[] strings) {
        Player p = (Player) commandSender;
        e.setCancelled(true);
        Inventory menu = Bukkit.createInventory(null, 9 * 6, ChatColor.RED + "Меню блоков");

       
        ItemStack grassb = new ItemStack(Material.GRASS_BLOCK);
        grassb.setType(Material.GRASS_BLOCK);
        ItemMeta btmeta = grassb.getItemMeta();
        btmeta.setDisplayName(ChatColor.BLUE + "Дёрн");
        List<String> grassbl = new ArrayList<>();
        grassbl.add(ChatColor.GRAY + "Цена: 0.0016 за 16 блолков");
        btmeta.setLore(grassbl);
        grassb.setItemMeta(btmeta);
        menu.setItem(1,grassb);
        p.getInventory().removeItem(grassb);
       
        main.getInstance().pdata.set("data." + p.getName() + ".blocks", main.getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 0.0016);
        main.getInstance().save();

       
        p.openInventory(menu);

        return true;
    }

    @Override
    public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) {
        return false;
    }

}
 
Последнее редактирование:
А может евент надо отдельно записывать и проверять твоё меню это или нет?
 
@NoooobKa можешь скинуть пожалуйста пример для решение моей проблеммы
 
вот мой код
но нечего не работает


Код:
package main;

import java.util.ArrayList;
import java.util.List;

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.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;

public class blocks implements CommandExecutor, Listener {
  
    public boolean onCommand(InventoryClickEvent e, CommandSender commandSender, Command command, String s, String[] strings) {
        Player p = (Player) commandSender;
        e.setCancelled(true);
        Inventory menu = Bukkit.createInventory(null, 9 * 6, ChatColor.RED + "Меню блоков");

      
        ItemStack grassb = new ItemStack(Material.GRASS_BLOCK);
        grassb.setType(Material.GRASS_BLOCK);
        ItemMeta btmeta = grassb.getItemMeta();
        btmeta.setDisplayName(ChatColor.BLUE + "Дёрн");
        List<String> grassbl = new ArrayList<>();
        grassbl.add(ChatColor.GRAY + "Цена: 0.0016 за 16 блолков");
        btmeta.setLore(grassbl);
        grassb.setItemMeta(btmeta);
        menu.setItem(1,grassb);
        p.getInventory().removeItem(grassb);
      
        main.getInstance().pdata.set("data." + p.getName() + ".blocks", main.getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 0.0016);
        main.getInstance().save();

      
        p.openInventory(menu);

        return true;
    }

    @Override
    public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) {
        return false;
    }

}
Господи, да загугли ты что такое листенер и как его обрабатывать.
 
@NoooobKa можешь скинуть пожалуйста пример для решение моей проблеммы
Если ты хочешь научится делать плагины, то гугли или задавай конкретные вопросы. Иначе проси в разделе запросов на разработку, мб тебе там напишут готовый плагин.
 
вот мой код
но нечего не работает


Код:
package main;

import java.util.ArrayList;
import java.util.List;

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.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;

public class blocks implements CommandExecutor, Listener {
  
    public boolean onCommand(InventoryClickEvent e, CommandSender commandSender, Command command, String s, String[] strings) {
        Player p = (Player) commandSender;
        e.setCancelled(true);
        Inventory menu = Bukkit.createInventory(null, 9 * 6, ChatColor.RED + "Меню блоков");

      
        ItemStack grassb = new ItemStack(Material.GRASS_BLOCK);
        grassb.setType(Material.GRASS_BLOCK);
        ItemMeta btmeta = grassb.getItemMeta();
        btmeta.setDisplayName(ChatColor.BLUE + "Дёрн");
        List<String> grassbl = new ArrayList<>();
        grassbl.add(ChatColor.GRAY + "Цена: 0.0016 за 16 блолков");
        btmeta.setLore(grassbl);
        grassb.setItemMeta(btmeta);
        menu.setItem(1,grassb);
        p.getInventory().removeItem(grassb);
      
        main.getInstance().pdata.set("data." + p.getName() + ".blocks", main.getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 0.0016);
        main.getInstance().save();

      
        p.openInventory(menu);

        return true;
    }

    @Override
    public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) {
        return false;
    }

}
Такой дряни ещё не видел.
 
вот мой код
но нечего не работает


Код:
package main;

import java.util.ArrayList;
import java.util.List;

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.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;

public class blocks implements CommandExecutor, Listener {
  
    public boolean onCommand(InventoryClickEvent e, CommandSender commandSender, Command command, String s, String[] strings) {
        Player p = (Player) commandSender;
        e.setCancelled(true);
        Inventory menu = Bukkit.createInventory(null, 9 * 6, ChatColor.RED + "Меню блоков");

      
        ItemStack grassb = new ItemStack(Material.GRASS_BLOCK);
        grassb.setType(Material.GRASS_BLOCK);
        ItemMeta btmeta = grassb.getItemMeta();
        btmeta.setDisplayName(ChatColor.BLUE + "Дёрн");
        List<String> grassbl = new ArrayList<>();
        grassbl.add(ChatColor.GRAY + "Цена: 0.0016 за 16 блолков");
        btmeta.setLore(grassbl);
        grassb.setItemMeta(btmeta);
        menu.setItem(1,grassb);
        p.getInventory().removeItem(grassb);
      
        main.getInstance().pdata.set("data." + p.getName() + ".blocks", main.getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 0.0016);
        main.getInstance().save();

      
        p.openInventory(menu);

        return true;
    }

    @Override
    public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) {
        return false;
    }

}
upload_2021-11-12_20-17-11.png



На вот учи гасподи https://www.youtube.com/playlist?list=PLwJEyVmzD4t1K8Uv6Wi9sz7VWPyLaQ1uX
 

Поделиться этой страницей

Назад
Верх