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

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

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

  1. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Боюсь, с этим ты должен разобраться сам, ибо знание слишком базовое, чтобы его пояснять.
     
  2. gelion

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

    Баллы:
    78
    Это условие для if, после него блок кода пишешь который должен выполниться с вероятность 50 процентов. Так же можешь добавить блок else. Тогда выполняться будет либо одно либо другое действие.

    Ну это если не разобрался еще
     
  3. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    Суть понял, а что не так в коде не понял:
    PHP:
    package rp.main;


    import java.util.concurrent.ThreadLocalRandom;

    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;


    public class 
    CommandTRY implements CommandExecutor {

        private 
    Province_RP plugin;

        public 
    CommandTRY(Province_RP plugin) {
            
    this.plugin plugin;
            
        }

        @
    Override
        
    public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
            if(
    args.length == 0) {
                return 
    false;
            }
            if (
    ThreadLocalRandom.current().nextBoolean());{
                
    String s String.join(" "args);
                
    Player p = (Playersender;
                
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                    
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " s);
                    
          }) else (
    ThreadLocalRandom.current().nextBoolean());{
              
    String s String.join(" "args);
                
    Player p = (Playersender;
                
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                    
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " s);
                    return 
    true;
                    
                }       
            }   
        }   
    }
     
  4. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Ну тут только джаву учить
     
  5. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    Времени мало, да и к тому же не для себя делаю. Погуглил, везде так:
    PHP:
    package rp.main;


    import java.util.concurrent.ThreadLocalRandom;

    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;


    public class 
    CommandTRY implements CommandExecutor {

        private 
    Province_RP plugin;

        public 
    CommandTRY(Province_RP plugin) {
            
    this.plugin plugin;
            
        }

        @
    Override
        
    public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
            if(
    args.length == 0) {
                return 
    false;
            }
            if (
    ThreadLocalRandom.current().nextBoolean());{
                
    String s String.join(" "args);
                
    Player p = (Playersender;
                
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                    
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " s);         
          } else {
              
    String s String.join(" "args);
                
    Player p = (Playersender;
                
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                    
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " s);
                    return 
    true;
                    });       
                }   
            }
        }
    }
    Но eclipse выдаёт ошибки почему то:
    upload_2021-4-30_9-44-16.png
     
  6. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Изучить основы программирования займет у табя на много меньше времени, чем поиск каждой возникшей проблемы.
     
  7. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    Можешь просто сказать в чём проблема, а не посылать меня учить? Я и так пытаюсь разобраться с джавой.
     
  8. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Ок. Ошибка синтаксе
     
  9. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    По уроку делал, вроде так же:
    upload_2021-4-30_11-19-24.png
     
  10. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Нет. Внимательнее посмотри и сравни.
     
  11. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    Вроде пофиксил несколько ошибок, но одна осталась, требует скобку куда-то...
    PHP:
    package rp.main;


    import java.util.concurrent.ThreadLocalRandom;

    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;


    public class 
    CommandTRY implements CommandExecutor {

        private 
    Province_RP plugin;

        public 
    CommandTRY(Province_RP plugin) {
            
    this.plugin plugin;
          
        }

        @
    Override
        
    public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
            if(
    args.length == 0) {
                return 
    false;
            }
            if(
    ThreadLocalRandom.current().nextBoolean()) {
                
    String s String.join(" "args);
                
    Player p = (Playersender;
                
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                    
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " s);       
                };} else {
              
    String s String.join(" "args);
              
    Player p = (Playersender;
              
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                 
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " s);
              return 
    true;
                    });     
                } 
            }
        }

     
  12. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
     
  13. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    Где их именно закрыть? Если в конце строки, то появляется миллион ошибок...

    PHP:
    package rp.main;


    import java.util.concurrent.ThreadLocalRandom;

    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;


    public class 
    CommandTRY implements CommandExecutor {

        private 
    Province_RP plugin;

        public 
    CommandTRY(Province_RP plugin) {
            
    this.plugin plugin;
            
        }
        @
    Override
        
    public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
            if(
    args.length == 0) {
                return 
    false;
            }
            if(
    ThreadLocalRandom.current().nextBoolean()) {
                
    String s String.join(" "args);
                
    Player p = (Playersender;
                
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                    
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " "|Удачно"););       
                } else {
              
    String s String.join(" "args);
              
    Player p = (Playersender;
              
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player).forEach(entity -> {
                 
    entity.sendMessage(ChatColor.LIGHT_PURPLE "* " p.getName() + " " "|Неудачно");
              return 
    true;
                    });       
                }   
            }



     
    Последнее редактирование: 30 апр 2021
  14. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    PHP:
        @Override
        
    public boolean onCommand(CommandSender senderCommand commandString labelString[] args) {
            if (!(
    sender instanceof Player))
                return 
    false;
            if (
    args.length == 0)
                return 
    false;
            
    Player p = (Playersender;
            
    String s String.join(" "args);
            
    p.getWorld().getNearbyEntities(p.getLocation(), 101010entity -> entity instanceof Player)
                    .forEach(
    entity -> entity.sendMessage("§d*" p.getName() + "* " "[" +
                            (
    ThreadLocalRandom.current().nextBoolean() ? "§aУдалось" "§cНе удалось") + "]"));
            return 
    true;
        }
     
  15. GoldHeli

    GoldHeli Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Gold_Heli
    А шо так можно было что-ли? Спасибо огромное!
     
  16. MarinCod

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

    Баллы:
    61
    Всем привет. Есть какие-нибудь гайды по Projectile?
    У меня есть задача - создавать этот самый объект, когда происходит выстрел из арбалета. То есть он должен лететь ровно с фейерверком(снарядом) и наносить дополнительный урон. Мне подсказали, что именно так можно добавить урон при выстреле из арбалета.

    Мне бы лишь зацепку, где такому можно научиться и мне этого будет достаточно. На ютубе видел гайды только по моддингу, это вроде как не совсем то, что нужно. А на сайт jd bukkit не заходит, не знаю уж в чем проблема и что вообще за сайт, но похоже именно там были какие-то доки или разъяснения по вопросам кода.

    Спасибо за помощь.
     
  17. Andrine

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

    Баллы:
    66
    Всем доброго времени суток! Подскажите пожалуйста, я пишу плагин для чата и мне нужно разрешить в чате только английские, русские буквы и цифры. Простым языком, я не хочу чтобы какой-то Вася писал
    GHIJ или отправлял ▄ ▅ ▆ ▇
    Я попробовал такой вариант:
    Код:
    getMessage().replaceAll("[^\\p{L}\\p{N}]+", "");
    Но он не работает.
     
  18. Slavy

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

    Баллы:
    61
    Код:
    setMessage(getMessage().replaceAll("[^A-zА-я0-9]+", ""));
    
     
  19. Andrine

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

    Баллы:
    66
    Спасибо броу, все помогло) Я и мой говнокод как всегда заложали.​
     
    Последнее редактирование: 1 мар 2022
  20. Andrine

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

    Баллы:
    66
    Ребят, помогите пожалуйста, как открыть игроку инвентарь от наковальни через команду?
    Я попробовал вариант:

    Код:
            player.openInventory(Bukkit.createInventory(p, InventoryType.ANVIL));
    , но после крафта при нажатии на вещь она распадается и возвращается на прежнюю позицию. ( Крч отменяется крафт ). В консоли так-же вылезает ошибка:

    Код:
    java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: Index: 33, Size: 0
            at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_301]
            at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_301]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:45) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_301]
    Caused by: java.lang.IndexOutOfBoundsException: Index: 33, Size: 0
            at java.util.ArrayList.rangeCheck(ArrayList.java:659) ~[?:1.8.0_301]
            at java.util.ArrayList.get(ArrayList.java:435) ~[?:1.8.0_301]
            at net.minecraft.server.v1_8_R3.Container.getSlot(Container.java:109) ~[server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1513) ~[server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:31) ~[server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(SourceFile:9) ~[server.jar:git-Spigot-db6de12-18fbb24]
            at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) ~[server.jar:git-Spigot-db6de12-18fbb24]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_301]
            at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_301]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) ~[server.jar:git-Spigot-db6de12-18fbb24]
            ... 5 more
    Версия 1.8
     

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