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

Помогите Можно ли переписать стандартные команды?

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

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

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

    Баллы:
    123
    Я хочу сделать команду /effect.
    Но такая команда уже есть (в сервере).
    Можно ли как-то переписать эту команду моей?
     
  2. Хостинг MineCraft
    <
  3. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Да.
    Только твоя будет доступна как по /effect, так и по /твойплагин:effect,
    а оригинальная будет доступна по /minecraft:effect.
     
  4. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Упс, я просто как-то протупил, не поставил новую версию,
    и поэтому подумал что нельзя :D
    Спасибо!
     
  5. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    И да, можно и не таким способом... Изменить дефлот класс на свой код, но не рекомендую, сам имел неосторожность в этом.
    т.е. создаем пакет org.bukkit.command.defaults
    Создаем класс, например: OpCommand, и переписываем код, можно все кроме
    Код:
    extends VanillaCommand
    Удачи.
    Вот пример:
    Код:
    package org.bukkit.command.defaults;
    
    import com.google.common.collect.ImmutableList;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import org.apache.commons.lang.Validate;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.OfflinePlayer;
    import org.bukkit.Server;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.util.StringUtil;
    
    public class OpCommand
      extends VanillaCommand
    {
      public OpCommand()
      {
        super("op");
        this.description = "Делает что - то, да вот сам не знаю что.";
        this.usageMessage = "/op <уровень Бог>";
        setPermission("права");
      }
    
      public boolean execute(CommandSender sender, String currentAlias, String[] args)
      {
        sender.sendMessage("А хер тебе!");
        return true;
      }
    
    И далее заменяем стандартный класс файл в пакете org.bukkit.command.defaults на свой.
     
    Последнее редактирование: 1 июл 2016
  6. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Если захочется извращений, именно так и сделаю :D
     
  7. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Можно, но не рекомендуется. А лучше вообще этим не заниматься.
     
  8. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Ребят, а у меня тут новый вопрос...
    А можно УДАЛИТЬ стандартную команду?[DOUBLEPOST=1467692218,1467691798][/DOUBLEPOST]Ведь если я удалю эти классы: наверняка баккит выдаст ошибку что-то типо No(Def)ClassFoundException..
    [​IMG]
     
  9. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Не лезь в ядро и не меняй в нём ничего.
    Слови PlayerCommandPreprocessEvent и отмени, если игрок пытается вызвать ванильную команду.
    Ну а так-то в идеале просто не давай на неё прав.
     
  10. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Ыыы.. Ну ладно :D
     

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