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

Помогите Возможен ли Override метода другого плагина?

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

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

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

    Баллы:
    123
    Имя в Minecraft:
    skynetxxx
    Здравствуйте! Собственно такой вот вопрос:
    Возможен ли Override метода другого плагина? Именно метода, переопределение команды меня не интересует.
    Как например переопределить WorldGuardEntityListener.tryCancelPVPEvent?
     
  2. Хостинг MineCraft
    <
  3. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Вообще возможен, но тебе не понравится этот способ.

    Спрашивается зачем тебе нужен оверрайд?
     
  4. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    если для себя, просто перепиши его, как тебе надо, и все.
     
  5. Автор темы
    skynetxxx

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

    Баллы:
    123
    Имя в Minecraft:
    skynetxxx
    Почему этот способ должен мне не понравиться?
    Я понимаю, что это вряд-ли выглядит красиво.

    Оверрайд нужен для того, чтобы объеденить функционал разных плагинов, не модифицируя их вручную.

    В данном случае например я собираюсь объединить функционал WorldGuard с CombatLog, убрав условие флага NoPVP для игрока который уже в PVP. Код WG уже поправил, но пересборка больших плагинов ради одного модифицированного метода - это бред, да и никуда не выложишь такой фикс.
     
  6. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Почемубы тогда тупо не отменять убирание пвп, эвент же есть,и он cancellable.

    А для перписывания метода(точнее получившегося байткода) тебе понадобится либо CGLIB, либо ObjectWeb ASM.
     
    slavik123123123 и skynetxxx нравится это.

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