1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Стартап Помощь новичкам и тем, кто мало писал плагины. (+ LifeHack'и)

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

  1. indexosu

    indexosu Активный участник

    Баллы:
    63
    Эвент при попадании молнии в свинью?
     
    slavik123123123 нравится это.
  2. Автор темы
    ANTI_GREEFER

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

    Баллы:
    88
    Спасибо за советы, сейчас все исправлю + добавлю евенты Hanging и Intentory
    [​IMG]
     
  3. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ты говоришь именно о списке игроков — чтобы выбрать их за один цикл или тебе не нравится, то что игнорируется регистр?

    Код:
    public Player getPlayerExact(String name) {            
      Validate.notNull(name, "Name cannot be null");      
                                                          
      String lname = name.toLowerCase();                  
                                                          
      for (Player player : getOnlinePlayers()) {          
        if (player.getName().equalsIgnoreCase(lname)) {    
          return player;                                  
        }                                                  
      }                                                    
      return null;                                        
    }                                                      
    
     
  4. Tyzun

    Tyzun Старожил

    Баллы:
    153
    Skype:
    tyzun1997
    Имя в Minecraft:
    _Tyzun_
    Как по мне там очень неудобно, по два часа ищу нужный ивент
     
    saharin94 нравится это.
  5. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    slavik123123123 нравится это.
  6. Tyzun

    Tyzun Старожил

    Баллы:
    153
    Skype:
    tyzun1997
    Имя в Minecraft:
    _Tyzun_
    Кстати, никто незнает как называется собитие, когда игрок тыкает по рамке и из неё вылетает вещь(в 1,7 ввели)?
     
  7. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Чтобы выбрать за 1 цикл, и чтобы контролить регистрозаисимость самому.

    Причём больше меня бесит херня с регистронезависиомтью. Твою мать какого хрена они творят вообще? Я уже писал тему о куче проблем с getOfflinePlayer(), но такое у них везде.
    Оно конечно хорошо работает для онлайн мода, но в случае оффлайн сервера это всё превращается в адовый пипец.
     
  8. FirePoint

    FirePoint Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Just_Andrew
    Спасибо,на английском неудобно :)
     
  9. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ну собственно ты сам ответил ;) Если сделать соответствующий баг-репорт, тебе ответят, что система авторизации Mojang регистронезависима (т.е там нельзя создать игрока fromgate и Fromgate), а проблемы оффлайн-серверов их не волнуют.
    Единственный, выход - это строить систему регистрации пользователей так, чтобы она тоже была регистронезависима.
    Чтобы после регистрации пользователя Test нельзя было зарегистрировать test, TEST и т.д.
     
  10. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    И что я должен сказать юзерам? Извините но вы должны следить за регами потому что баккитовцы идиоты? А главное регистронезависимость в документации нигде, нигде не прописана, из-за чего я потратил сука 4 месяца на поиск бага, 4 долбанных месяца.
    Благо я мастер костыляний, и конкретно эту проблему я уже решил, благо new CraftOfflinePlayer(CraftServer, имя), регистрозавсим и дёргает именно то что мне нужно, хоть и пришлось поколдовать с рефлексией чтобы быть версионно независимым.
     
    Последнее редактирование: 4 дек 2013
  11. michaelukolov

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

    Баллы:
    68
    Skype:
    michael.ukolov
    Имя в Minecraft:
    UGT_Micl
    Помогите, как сделать чтобы на табличке писать: [Название плагина] - команду которая должна выполняться - дом? Чтобы при нажатии ЛКМ или ПКМ был эффект выполнения
     
  12. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Нет, на сколько я знаю, ещё не ввели. А вообще bukkit-овцы очень медленные существа. Они ещё с 1.4 не могут прикрутить API к спавнерам.
    Ловим событие PlayerInteractEvent, там берём блок, смотрим, что это табличка(e.getClickedBlock().getMaterial()==Material.табличка...), кастуем её к табличке(Sign sing = e.getClickedBlock().getBlockState();), анализируем текст на первой строчке и на остальных, если первая верная.
     
  13. michaelukolov

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

    Баллы:
    68
    Skype:
    michael.ukolov
    Имя в Minecraft:
    UGT_Micl
    Спасибо. А e.getClickedBlock().getBlockState() это мы получаем текст с таблички? И какой именно строчки?
     
  14. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    e.getClickedBlock().getBlockState() это состояния блока, которое мы приводим к табличке
    Код:
    Sign s = (Sign)e.getClickedBlock().getBlockState();
    После чего мы можем взять текст таблички при помощи
    Код:
    s.get(num);
    , где num -- номер строки начиная с 0.
     
    fromgate и michaelukolov нравится это.
  15. Deless503

    Deless503 Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Deless503
    помогите пожалуйста
    я пишу в чате /sims и мне пишется в чате /sims и ни чего не делается.

    вот код

    package ru.russia.sims;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.*********ventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;

    public class main extends JavaPlugin implements Listener{

    private static main instance;

    public static main instance() {
    return instance;
    }

    public void onEnable() {
    Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }

    public void onDisable() {

    }

    public boolean checkSender(CommandSender sender)
    {
    if (sender instanceof Player)
    {
    return false;
    }
    return true;
    }

    public boolean OnCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
    if (cmd.getName().equalsIgnoreCase("sims"))
    {
    if (checkSender(sender))
    {
    sender.sendMessage("Only players can use this command!");
    return true;
    }
    Player p = (Player) sender;

    p.getInventory().addItem(new ItemStack(Material.EMERALD));
    в
    p.sendMessage(ChatColor.GREEN + "Вам выдан предмет SIMS");

    return true;
    }

    return false;
    }

    @EventHandler
    public void onPlayerJoin (PlayerJoinEvent e){
    Player p = e.getPlayer();

    p.sendMessage(ChatColor.GREEN + "THE Sims loaded");


    }
    }

    а вот plugin.yml

    name: The SIMS
    main: ru.russia.sims.main
    discription: The SIMS in minecraft
    version: 1.0
    authors:
    - Deless503
    commands:
    sims:
    usage: /sims

    помогите кто может пожалуйста
     
  16. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Не OnCommand, a onCommand
     
  17. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Т.е. что он не регистрирует слушателя команды -- вообще пофигу?
     
  18. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    В главном классе слушатель команды регистрируется автоматически.
     
  19. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    С каких пор(версий)? Я где-то отстал или у меня самопроизвольно плагины не работали с такой ошибкой?
     
  20. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    Когда я только начинал, была версия 1.4.7, уже тогда было.
     

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