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

В разработке Ваши идеи мои плагины

Тема в разделе "Разработка плагинов для новичков", создана пользователем Rider3217, 13 июн 2015.

  1. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Я вот тут лазил по gitgub'у и гуглу, и в LoginGUI (spigot) увидел дополнение inputGUI, может его использовать для ком. блока?
     
  2. Хостинг MineCraft
    <
  3. FanniKot

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

    Баллы:
    78
    Имя в Minecraft:
    VLADON13
    Дружище помоги в создании плагина..
    Предлагаемое название: HealthPack
    Версия сервера: Надо чтобы работало под 1.8.7
    Что я хочу: Мне бы хотелось чтоб плагин имел конфиг в котором я бы мог указать ид предмета который будет "Аптечкой",скорость употребления в (сек),и количество восстанавливаемых сердец.(Замечу что в моих планах создать не 1 аптечку,т.к хочу сделать их несколько с разным уровнем регенирации)
    Идеи для команд: Этому плагину команды не нужны
    Идеи пермишенов: healthpack.use - возможность использовать аптечки*
    Когда мне это нужно? Чем быстрее тем лучше,буду благодарен за разработку данного чуда.
    P:S (желательно бесплатно!)
     
  4. Tiberiumk

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

    Баллы:
    76
    Skype:
    tiberium_11111
    Имя в Minecraft:
    Tiberium
    тебе уже в той теме ответили, что такой плагин уже есть
     
  5. FanniKot

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

    Баллы:
    78
    Имя в Minecraft:
    VLADON13
    мне нужен именно такой там левого много!!!,нагружать будет!!!
     
  6. Tiberiumk

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

    Баллы:
    76
    Skype:
    tiberium_11111
    Имя в Minecraft:
    Tiberium
    ты уверен? ты даже не проверил
     
  7. FanniKot

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

    Баллы:
    78
    Имя в Minecraft:
    VLADON13
    я бы не писал...
     
  8. craftist

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

    Баллы:
    76
    Имя в Minecraft:
    SavaSivkov
    Лул, можно вырезать ненужный функционал.
     
  9. FanniKot

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

    Баллы:
    78
    Имя в Minecraft:
    VLADON13
    умел бы я это делать....
     
  10. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Ну так иди и учись.
     
  11. SuperCraft

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

    Баллы:
    88
    1. [1.5.2] [MCPC+] RPG gameplay
    2. Изменять максимальное здоровье в зависимости от уровня и одетых вещей, урон должен уменьшаться на величину брони, базовый урон должен зависеть от уровня, более подробно:
    http://rubukkit.org/threads/1-5-2-mcpc-izmenenie-gejmpleja-poluchenie-urona-maksimalnoe-xp.109195/
    3. Плагин для MCPC+, должен поддерживать любые ID для брони
    Если планируете взяться за разработку, напишите, я более подробно опишу, что должно быть в плагине.
     
  12. joker22534

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

    Баллы:
    31
    Имя в Minecraft:
    MeNdozA
    • 1.DirectChat
    • 2. Добавление таких команд как:
      /pm [кому] [текст] - отправка личного сообщения игроку за цену которую может поменять.
    • Формат /pm чтобы можно было изменять.
      == для админов:
      /pmprice [число] - установка цену за ПМ (не для OP а через пермишн разрешать команду)
    • /pmon - показывать переписки игроков
    • /pmoff - выключить просмотр переписок.
    • /togpm - заблокировать входящие сообщения(+ пермишн) (Если человеку напишут с выключеным ПМ то вывести сообщение "Игрок заблокировал персональные сообщения")
    • /ad [текст] - отправляет рекламу в чат за деньги(цену можно изменять) (цена устанавливается за 1 символ)
    • /adprice [число] - тоже что и /pmprice
    • /cc - Очистить чат для всех игроков кроме OP.
    • /noooc - выключить|включить общий чат (!) из ChatManager(+ пермишн) для определённых групп.
    • /a [текст] - чат который видят администраторы(+ изменение формата (стандарт формат: %prefix %name %text))
    • /z [текст] тоже самое что и (!) у ChatManager только для админов с форматом(%prefix %name %text)

    • 3.Api которые он должен использовать: PermissionsEx, ChatManager, Essentials(баланс)
     
  13. SuperCraft

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

    Баллы:
    88
    Мой плагин уже не нужно делать, сам разобрался что к чему и сделал, работает)
     
  14. Автор темы
    Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Все пишите мне в скайп, вероятно я буду в бане.[DOUBLEPOST=1440273232,1440273114][/DOUBLEPOST]
    Поздравляю вас.:good:
     
  15. jwplaster

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

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
  16. Автор темы
    Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
  17. Link0

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

    Баллы:
    66
    Skype:
    avanguard31
    Имя в Minecraft:
    Avanguard
    Можешь реализовать?

    Когда человек заходит на сервер в первый раз то у него группа например [новичек] , а через день игры он становится пользователем точнее группой [юзер]
     
  18. jwplaster

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

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
    ReAction в помощь
     
  19. Автор темы
    Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    TimerRank
     
  20. jwplaster

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

    Баллы:
    173
    Skype:
    jwplaster.smartworld
    Имя в Minecraft:
    QviNSteN
    Есть просьба: можешь написать плагин, позволяюший изменять скорость полёта? Да, такие есть но мне нужно вот что:
    Все плагины (кроме встроенного в последнюю версию Essentials) изменяют скорость лишь при полёте прямо, но вверх и вниз отказываются изменять скорость... можешь написать вот такой маленький плагин, тем более код ведь есть...

    Код:
    package com.earth2me.essentials.commands;
    
    import com.earth2me.essentials.CommandSource;
    import com.earth2me.essentials.I18n;
    import com.earth2me.essentials.ISettings;
    import com.earth2me.essentials.User;
    import java.util.List;
    import net.ess3.api.IEssentials;
    import org.bukkit.Server;
    import org.bukkit.entity.Player;
    
    public class Commandspeed
      extends EssentialsCommand
    {
      public Commandspeed()
      {
        super("speed");
      }
     
      protected void run(Server server, CommandSource sender, String commandLabel, String[] args)
        throws Exception
      {
        if (args.length < 2) {
          throw new NotEnoughArgumentsException();
        }
        boolean isFly = isFlyMode(args[0]);
        float speed = getMoveSpeed(args[1]);
        speedOtherPlayers(server, sender, isFly, true, speed, args[2]);
      }
     
      protected void run(Server server, User user, String commandLabel, String[] args)
        throws Exception
      {
        if (args.length < 1) {
          throw new NotEnoughArgumentsException();
        }
        boolean isBypass = user.isAuthorized("essentials.speed.bypass");
        float speed;
        boolean isFly;
        float speed;
        if (args.length == 1)
        {
          boolean isFly = flyPermCheck(user, user.isFlying()).booleanValue();
          speed = getMoveSpeed(args[0]);
        }
        else
        {
          isFly = flyPermCheck(user, isFlyMode(args[0])).booleanValue();
          speed = getMoveSpeed(args[1]);
          if ((args.length > 2) && (user.isAuthorized("essentials.speed.others")))
          {
            if (args[2].trim().length() < 2) {
              throw new PlayerNotFoundException();
            }
            speedOtherPlayers(server, user.getSource(), isFly, isBypass, speed, args[2]);
            return;
          }
        }
        if (isFly)
        {
          user.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
          user.sendMessage(I18n._("moveSpeed", new Object[] { I18n._("flying", new Object[0]), Float.valueOf(speed), user.getDisplayName() }));
        }
        else
        {
          user.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
          user.sendMessage(I18n._("moveSpeed", new Object[] { I18n._("walking", new Object[0]), Float.valueOf(speed), user.getDisplayName() }));
        }
      }
     
      private void speedOtherPlayers(Server server, CommandSource sender, boolean isFly, boolean isBypass, float speed, String name)
        throws PlayerNotFoundException
      {
        boolean skipHidden = (sender.isPlayer()) && (!this.ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact"));
        boolean foundUser = false;
        List<Player> matchedPlayers = server.matchPlayer(name);
        for (Player matchPlayer : matchedPlayers)
        {
          User player = this.ess.getUser(matchPlayer);
          if ((!skipHidden) || (!player.isHidden()))
          {
            foundUser = true;
            if (isFly)
            {
              matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
              sender.sendMessage(I18n._("moveSpeed", new Object[] { I18n._("flying", new Object[0]), Float.valueOf(speed), matchPlayer.getDisplayName() }));
            }
            else
            {
              matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
              sender.sendMessage(I18n._("moveSpeed", new Object[] { I18n._("walking", new Object[0]), Float.valueOf(speed), matchPlayer.getDisplayName() }));
            }
          }
        }
        if (!foundUser) {
          throw new PlayerNotFoundException();
        }
      }
     
      private Boolean flyPermCheck(User user, boolean input)
        throws Exception
      {
        boolean canFly = user.isAuthorized("essentials.speed.fly");
        boolean canWalk = user.isAuthorized("essentials.speed.walk");
        if (((input) && (canFly)) || ((!input) && (canWalk)) || ((!canFly) && (!canWalk))) {
          return Boolean.valueOf(input);
        }
        if (canWalk) {
          return Boolean.valueOf(false);
        }
        return Boolean.valueOf(true);
      }
     
      private boolean isFlyMode(String modeString)
        throws NotEnoughArgumentsException
      {
        boolean isFlyMode;
        if ((modeString.contains("fly")) || (modeString.equalsIgnoreCase("f")))
        {
          isFlyMode = true;
        }
        else
        {
          boolean isFlyMode;
          if ((modeString.contains("walk")) || (modeString.contains("run")) || (modeString.equalsIgnoreCase("w")) || (modeString.equalsIgnoreCase("r"))) {
            isFlyMode = false;
          } else {
            throw new NotEnoughArgumentsException();
          }
        }
        boolean isFlyMode;
        return isFlyMode;
      }
     
      private float getMoveSpeed(String moveSpeed)
        throws NotEnoughArgumentsException
      {
        float userSpeed;
        try
        {
          userSpeed = Float.parseFloat(moveSpeed);
          if (userSpeed > 10.0F) {
            userSpeed = 10.0F;
          } else if (userSpeed < 1.0E-4F) {
            userSpeed = 1.0E-4F;
          }
        }
        catch (NumberFormatException e)
        {
          throw new NotEnoughArgumentsException();
        }
        return userSpeed;
      }
     
      private float getRealMoveSpeed(float userSpeed, boolean isFly, boolean isBypass)
      {
        float defaultSpeed = isFly ? 0.1F : 0.2F;
        float maxSpeed = 1.0F;
        if (!isBypass) {
          maxSpeed = (float)(isFly ? this.ess.getSettings().getMaxFlySpeed() : this.ess.getSettings().getMaxWalkSpeed());
        }
        if (userSpeed < 1.0F) {
          return defaultSpeed * userSpeed;
        }
        float ratio = (userSpeed - 1.0F) / 9.0F * (maxSpeed - defaultSpeed);
        return ratio + defaultSpeed;
      }
    }
    
     
  21. Автор темы
    Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Такие методы используются во всех плагинах такого типа, не понимаю как ess умудрился дать такой fly.
     

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