Премиум

АИД

Знающий
Участник
Сообщения
112
Розыгрыши
0
Репутация
3
Реакции
7
Баллы
430
Хроники
  1. Prologue: Prelude of War
Исходники
Присутствуют
Сборка
моби
Всем привет, Вопрос кто подскажет почему не работает выдача ПА через альтБ?
 
АИД, хандлер или команда для према не зарегистрирована



Полагаю можно прям в этом же RequestBypassToServer реализовать проверку команды
Java:
else if (_command.startsWith("_bbspremium"))
{
    final int days = Integer.parseInt(_command.substring(_command.indexOf(';') + 1));
   
    // other code
}

Да и вообще стоит проверить для начала присутствует ли ниже приведенная строка у вас, и включена ли система премиум в конфиге
 
Последнее редактирование:
Да и вообще стоит проверить для начала присутствует ли ниже приведенная строка у вас, и включена ли система премиум в конфиге

такой строчки нету в это файле вот последние строчки
 
АИД, да не в этом файле нужно смотреть, а в том где реализована обработка той самой команды _command.startsWith("_bbspremium")

АИД, пойдем другим путем, в каком классе (файле) находится указанный код?


этот класс зарегистрирован как хандлер в MasterHandler?
 
Последнее редактирование:
этот класс зарегистрирован как хандлер в MasterHandler?
вот что там было в мастер хендлере, он меня тоже этим вопросом занимал.

Вообще у мобиуса слишком много проблем сыпется в последнее время на сборках...
 
Тогда получается не в том индекс массива был добавлен хандлер.

Что и как он там добавляет остаётся только гадать

MrKirill1232, Вот еще раз глянул код, и начинаю понимать что строка с Premium.class в MasterHandler относится к войс командам, и не коем образом не относится к альт+б. Нужный индекс для хандлеров с командами из комьюнити борда находятся на три индекса выше
Java:
        {
            // Community Board
            ClanBoard.class,
            FavoriteBoard.class,
            FriendsBoard.class,
            HomeBoard.class,
            HomepageBoard.class,
            MailBoard.class,
            MemoBoard.class,
            RegionBoard.class,
            DropSearchBoard.class,
        }

Так понимаю, что в одном из этих классов и нужно добавлять проверку/обработку команды _bbspremium, либо написать свой класс, который в свою очередь реализует интерфейс IParseBoardHandler и добавить его в выше указанный индекс
 
Вообще если по коду смотреть - то это используется именно в HomeBoard - получается - CustomCummunityBoard не включена?

Config.PREMIUM_SYSTEM_ENABLED && Config.COMMUNITY_PREMIUM_SYSTEM_ENABLED ? "_bbspremium" : null,

А по поводу
начинаю понимать что строка с Premium.class в MasterHandler относится к войс командам
извиняюсь за путаницу
 
получается - CustomCummunityBoard не включена?
сие мне не ведомо

вводной информации о проблеме в крайней степени недостаточно, что и куда добавлялось, или раньше работало а после каких-то обновлений сломалось. Опять таки скрины с непонятными кусками кода, с каких файлов, с какими путями, не понятно. В общем классика
 
Альтб было скачено здесь для хроник ХФ, так как для мобиуса альтб найти проблематично. вот почти весь переделал альт б и начал сервисы проверять и как выяснилось премиум не работает
 
проверить включены ли в /config/Custom/CommunityBoard.ini
Код:
CommunityPremiumSystem = true
и в /config/Custom/PremiumSystem.ini
Код:
EnablePremiumSystem = true
для начала
 
АИД, на 4 сообщение надо бы ответить еще

если обработка команды _bbspremium в классе HomeBoard (и он объявлен в MasterHandler), пробуем убрать проверку конфига, изменив строку
Java:
Config.PREMIUM_SYSTEM_ENABLED && Config.COMMUNITY_PREMIUM_SYSTEM_ENABLED ? "_bbspremium" : null,
вот так
Java:
/*Config.PREMIUM_SYSTEM_ENABLED && Config.COMMUNITY_PREMIUM_SYSTEM_ENABLED ?*/ "_bbspremium" /*: null*/,

Если не поможет, то проблема не в конфигах.
Тогда пробуем другой вариант, перенеся код обработки команды према в класс RequestBypassToServer.


Java:
            else if (_command.startsWith("_bbspremium"))
            {
                final String fullBypass = _command.replace("_bbspremium;", "");
                final String[] buypassOptions = fullBypass.split(",");
                final int premiumDays = Integer.parseInt(buypassOptions[0]);
                if ((premiumDays < 1) || (premiumDays > 30) || (player.getInventory().getInventoryItemCount(Config.COMMUNITY_PREMIUM_COIN_ID, -1) < (Config.COMMUNITY_PREMIUM_PRICE_PER_DAY * premiumDays)))
                {
                    player.sendMessage("Not enough currency!");
                }
                else
                {
                    player.destroyItemByItemId("CB_Premium", Config.COMMUNITY_PREMIUM_COIN_ID, Config.COMMUNITY_PREMIUM_PRICE_PER_DAY * premiumDays, player, true);
                    PremiumManager.getInstance().addPremiumTime(player.getAccountName(), premiumDays, TimeUnit.DAYS);
                    player.sendMessage("Your account will now have premium status until " + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(PremiumManager.getInstance().getPremiumExpiration(player.getAccountName())) + ".");
                    if (Config.PC_CAFE_RETAIL_LIKE)
                    {
                        PcCafePointsManager.getInstance().run(player);
                    }
                    //returnHtml = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/premium/thankyou.html");
                }
            }

пересобираем ядро и проверяем. Так должно прокатить.

п.ы. - по какой причине не подхватывает байпасы из датапака разбираться честно говоря влом, может сами накосячили где, может мобиус.
 
Реакции: kick