Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Работа с инвентарём

Тема в разделе "Разработка плагинов для новичков", создана пользователем Meferis, 6 ноя 2016.

  1. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    В чём ошибка в коде? Подозреваю, что такого пространства имён, как player.GetInventory не существует, но, к сожалению, я не смог найти инфу на эту тему. Может здесь кто-нибудь поможет с первым плагином
    Код:
    package ru.dmitriymx.bukkit.tutorial;
    
    import org.bukkit.plugin.java.JavaPlugin;
    import java.util.logging.Logger;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.event.player.getInventory;
    
    public class DmxFirstPlugin extends JavaPlugin implements Listener {
           public static final Logger _log = Logger.getLogger("Minecraft");
       
       
        @Override
           public void onEnable() {
               _log.info("Anti-Items Start");
               Bukkit.getPluginManager().registerEvents(this, this);
           }
        @EventHandler
            public void getInventory{
            player.removeItem (new ItemStack (169, 64, 0));
            player.addItem (new ItemStack (0, 1, 0));
        }
    }
    
     
  2. Хостинг MineCraft
    <
  3. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Вобещм...[DOUBLEPOST=1478452231,1478452123][/DOUBLEPOST]Во первых...
    Это доглжно выглядеть так :

    Код:
        public void getInventory(Player player){ //Где Player - игрок которому заменяем предмет
            player.removeItem (new ItemStack (169, 64, 0));
            player.addItem (new ItemStack (0, 1, 0));
        }
    И @EventHandler там не нужен, а вообще, ты круто замахнулся сразу с инвентарем, отправь для начала при входе сообщение игроку
     
  4. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Слегка удивлен, что по этим старым туториалам еще кто-то учиться. Но для начала вам лучше стоит подучить синтаксис явы (или сишки).
     
  5. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Отправить сообщение игроку при входе:

    Код:
    @EventHandler //Регистрация Event'a
    public void onJoin(PlayerJoinEvent e){ //Сам Event
    Player p = e.getPlayer(); //Определяем игрока, который зашел
    p.sendMessage("hellscoder"); //Отправит сообщение
    }
     
  6. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    А под Player нужно указывать конкретный ник? Или же это относится ко всем игрокам на сервере?
    P.S. Знаю, что прыгнула выше головы. Java знаю на крайне низком уровне и только-только начинаю учить. Просто нужно было до завтра сделать что-то подобное, вот и решилась :D
     
  7. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Твой метод, требует входящих аргументов, в данном случаи это сущность (Player), его можно получить из эвэнта, я уже показывал как, вобщем, в краце, что ты хочешь сделать...

    Код:
    public void onJoin(PlayerJoinEvent e){
    Player p = e.getPlayer();
    getInventory(p); //Как раз таки, передаюм аргумент
    }
    public void getInventory(Player p){ //Ловит входящий аргумент, и делает что-то с ним
    p.getInventory().addItem(new ItemStak(Material.STONE));
    }
    Все это, при входе игрока на сервер, даст камень, далее по аналогии...
     
  8. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    Видимо, вы правы. Я совсем глупая раз даже в этом запуталась. Eclipse ругается на ItemStack.
    Код:
    public void onJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            getInventory(p);
            }
            public void getInventory(Player p){
            p.getInventory().removeItem (new ItemStack (4125, 64));
            }
    }
    Что с этим делать? Мне просто нужно, чтобы игрок никак не мог получить предмет. Ни из креатива, ни скрафтить, никак. А вот что с этим делать, я не знаю D:
     
  9. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Вам проще заказать плагин...
     
  10. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    Я пыталась, но человек взял аванс и ушёл, удалив страницу. Так что вот и пытаюсь теперь...
     
  11. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Интересно кто-же это был...

    В общем... Это не один эвэнт, и не 2, можно вообще шедуллером, не думаю, что с такими глубокими знаниями Java вы сможете написать это, вполне возможно, что такой плагин уже есть... Поищите в интернете
     
  12. Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Если расскажешь, что требуется, напишу по доброте душевной (нет)
     
  13. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Добрячок ;D
     
  14. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    А за деньги?
     
  15. Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Это был сарказм. Говори, что вообще нужно сделать.
     
  16. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    Есть список запрещённых предметов. Нужно удалять эти предметы, как только они попадают в инвентарь игрока. Причём не важно какого игрока, хоть модера, хоть гл. админа. Вооот....
     
  17. Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Через телефон писать, словно лечить геморрой народными средствами. Завтра и напишу, когда буду у ПеКа
     
  18. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    Спасибо вам большое ^_^
     
  19. Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Ну а словами можно описать. Создаем хешмеп Стринг материал. Создаем метод, в котором мы заносим все предметы, которые хотим запретить. Этот метод вызываем в гк, когда плагин включается и с помощью шедулера, как упомянул ледзимазед мы чекаем, есть ли у игрока этот айтемстак. Если есть - удаляем. Весь принцип. Зы. Игроков ищем через луп, а именно всех бакитских игроков.
     
  20. Автор темы
    Meferis

    Meferis Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Meferis
    Да.... Я действительно глупая, помогите пожалуйста, я заплачу)
     
  21. Lisenochek

    Lisenochek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Жабовский жаргон...Мммм. А так, смотри выше. Помочь сегодня я уже никак не смогу.
     

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