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

В разработке Уже давно заброшено-_-

Статус
Закрыто для дальнейших ответов.
Просто если нет ограничения на //set то если слишком много взять, через пару секунд сервер упадет(Время зависит от машины).
А 90 это мало, согласен. В конфиге сделаю.
Дружище помоги в создании плагина..
Предлагаемое название: HealthPack
Версия сервера: Надо чтобы работало под 1.8.7
Что я хочу: Мне бы хотелось чтоб плагин имел конфиг в котором я бы мог указать ид предмета который будет "Аптечкой",скорость употребления в (сек),и количество восстанавливаемых сердец.(Замечу что в моих планах создать не 1 аптечку,т.к хочу сделать их несколько с разным уровнем регенирации)
Идеи для команд: Этому плагину команды не нужны
Идеи пермишенов: healthpack.use - возможность использовать аптечки*
Когда мне это нужно? Чем быстрее тем лучше,буду благодарен за разработку данного чуда.
P:S (желательно бесплатно!)
 
Дружище помоги в создании плагина..
Предлагаемое название: HealthPack
Версия сервера: Надо чтобы работало под 1.8.7
Что я хочу: Мне бы хотелось чтоб плагин имел конфиг в котором я бы мог указать ид предмета который будет "Аптечкой",скорость употребления в (сек),и количество восстанавливаемых сердец.(Замечу что в моих планах создать не 1 аптечку,т.к хочу сделать их несколько с разным уровнем регенирации)
Идеи для команд: Этому плагину команды не нужны
Идеи пермишенов: healthpack.use - возможность использовать аптечки*
Когда мне это нужно? Чем быстрее тем лучше,буду благодарен за разработку данного чуда.
P:S (желательно бесплатно!)
тебе уже в той теме ответили, что такой плагин уже есть
 
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 для брони
Если планируете взяться за разработку, напишите, я более подробно опишу, что должно быть в плагине.
 
  • 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(баланс)
 
Мой плагин уже не нужно делать, сам разобрался что к чему и сделал, работает)
 
Можешь реализовать?

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

Когда человек заходит на сервер в первый раз то у него группа например [новичек] , а через день игры он становится пользователем точнее группой [юзер]
ReAction в помощь
 
Можешь реализовать?

Когда человек заходит на сервер в первый раз то у него группа например [новичек] , а через день игры он становится пользователем точнее группой [юзер]
TimerRank
 
Есть просьба: можешь написать плагин, позволяюший изменять скорость полёта? Да, такие есть но мне нужно вот что:
Все плагины (кроме встроенного в последнюю версию 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;
  }
}
 
Есть просьба: можешь написать плагин, позволяюший изменять скорость полёта? Да, такие есть но мне нужно вот что:
Все плагины (кроме встроенного в последнюю версию 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;
  }
}
Такие методы используются во всех плагинах такого типа, не понимаю как ess умудрился дать такой fly.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх