[1.12.2 | Срочно нужна помощь] Фикс мода MineDonate

236
4
22
Здравствуйте всем. Недавно решил перейти на 1.12.2 и искал личный кабинет под LP sponge, но в место него нашёл очень интересный мод. По скринам он мне вполне понравился и я решил его попробовать установить, однако возникло очень много проблем:
Как только я настроил конфиг мода и настроил в Mysql пермишены - при входе на сервер и открытии магазина меня просто кикнуло + вылетела ошибка в консоль
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: java.lang.NullPointerException
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at ru.alastar.minedonate.MineDonate.getPermissionsByUser(MineDonate.java:352)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at ru.alastar.minedonate.MineDonate.getAccount0(MineDonate.java:442)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at ru.alastar.minedonate.MineDonate.getAccountWithRegister(MineDonate.java:526)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at ru.alastar.minedonate.network.handlers.CodeServerPacketHandler.onMessageProcess(CodeServerPacketHandler.java:40)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at ru.alastar.minedonate.network.handlers.CodeServerPacketHandler.onMessageProcess(CodeServerPacketHandler.java:17)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at ru.alastar.minedonate.rtnl.ModNetworkTaskProcessor$1.run(ModNetworkTaskProcessor.java:49)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.MineDonate:getAccount0:508]: at java.lang.Thread.run(Thread.java:748)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: java.lang.NullPointerException
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at ru.alastar.minedonate.network.packets.AccountInfoPacket.toBytes(AccountInfoPacket.java:45)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at net.minecraftforge.fml.common.network.simpleimpl.SimpleIndexedCodec.encodeInto(SimpleIndexedCodec.java:30)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at net.minecraftforge.fml.common.network.simpleimpl.SimpleIndexedCodec.encodeInto(SimpleIndexedCodec.java:26)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at net.minecraftforge.fml.common.network.FMLIndexedMessageToMessageCodec.encode(FMLIndexedMessageToMessageCodec.java:81)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.handler.codec.MessageToMessageCodec$1.encode(MessageToMessageCodec.java:67)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:88)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:801)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:831)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1032)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:296)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.sendTo(SimpleNetworkWrapper.java:250)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at ru.alastar.minedonate.rtnl.ModNetworkRegistry.sendTo(ModNetworkRegistry.java:249)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at ru.alastar.minedonate.network.handlers.CodeServerPacketHandler.onMessageProcess(CodeServerPacketHandler.java:46)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at ru.alastar.minedonate.network.handlers.CodeServerPacketHandler.onMessageProcess(CodeServerPacketHandler.java:17)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at ru.alastar.minedonate.rtnl.ModNetworkTaskProcessor$1.run(ModNetworkTaskProcessor.java:49)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[11:17:38] [pool-11-thread-1/INFO] [STDERR]: [ru.alastar.minedonate.network.packets.AccountInfoPacket:toBytes:75]: at java.lang.Thread.run(Thread.java:748)
[11:17:38] [Server thread/INFO] [minecraft/NetHandlerPlayServer]: Angelok lost connection: Disconnected
Я просмотрел всю тему про этот мод и заметил, что можно просто выключить в конфиге "enablePermissionsMode" и просто выдать /op для доступа ко всем возможностям мода - но не тут то было, видимо это реализовано только в 1.7.10. К тому же самого билда мода на 1.12 нет, только сами src - собирал вручную.

Позже я решил ради прикола открыть эти исходники и попробовать врезать выдачу всех прав при /opке. У меня это получилось
Код:
public static List<String> getPermissionsByUser(UUID userName) {

        List<String> l = new ArrayList<>();

        if (cfg.enablePermissionsMode) {

            // Получаем все объекты пермишенов
            for (DataOfPermissionEntry dopl : cfg.permissionsTriggerList) {

                // Проверяем пермишен через плагин
                if (((PermissionsPlugin) SpongePluginHelper.getPlugin("permissionsManager")).hasPermission(userName, dopl.permission)) {

                    // Загружаем в лист все пермишены доступных групп мода
                    l.addAll(getPermissionsByGroups(dopl.groups));

                }

            }

        }
        //Вот мой код:
        else{

      
            EntityPlayerMP player = FMLServerHandler.instance().getServer().getPlayerList().getPlayerByUUID(userName);
           

           
            if ( FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().getOppedPlayers().getEntry( player.getGameProfile() ) != null ){
           
               
            l.add("*");

           
        }else {
            l.add("freezeOwnedShop");
            l.add("unFreezeOwnedShop");
            l.add("removeOwnedShop");
            l.add("renameOwnedShop");
            l.add("editOwnedShop");
            l.add("createShop");
            l.add("canViewOtherFreezText");

           
        }
        }
         //конец моего кода
        return l;

    }
после этого мне стал доступен весь функционал мода. Тогда я попробовал добавить продажу предметов... Как только я нажал "Добавить предмет" тут же в консоле понёсся массовый спам ошибками и клиент просто крашнулся (ниже логи сервера & клиента).
Почему я пишу именно сюда? Потому что, к сожалению, авторы забросили свой мод (src здесь) и последний раз были на форуме в 2к19 году, а мод довольно полезный. Так же немного не понятно как правильно настроить подключение мода к плагину LuckPerms от sponge.
Примерно так я настроил свой конфиг
Код:
{
  "enable": true,
  "dataBases": {
    "main": {
      "host": "localhost",
      "name": "root",
      "user": "root",
      "password": "[B]*[/B]",
      "port": 3306,
      "useUTF8": true,
      "hasCustomLink": false,
      "customLink": "jdbc:mysql:\/\/%host%:%port%\/%name%",
      "preLoadClassName": "com.mysql.jdbc.Driver"
    }
  },
  "dbUsers": "md_accounts",
  "dbUsersIdColumn": "UUID",
  "dbUsersNameColumn": "name",
  "dbUsersLinkName": "main",
  "sellItems": true,
  "dbItems": "md_items",
  "itemsMoneyType": "rub",
  "sellPrivelegies": true,
  "dbPrivelegies": "md_privelegies",
  "privelegiesMoneyType": "rub",
  "sellRegions": false,
  "dbRegions": "md_regions",
  "regionMoneyType": "rub",
  "sellEntities": false,
  "dbEntities": "md_entities",
  "entitiesMoneyType": "coin",
  "userShops": true,
  "dbUserItems": "md_userItems",
  "dbShops": "md_shops",
  "defaultUserShopMoneyType": "rub",
  "maxUsersShopsCount": 3,
  "defaultUserAllowShopCreate": true,
  "moneyProcessors": [
    {
      "load": true,
      "moneyType": "rub",
      "className": "ru.alastar.minedonate.mproc.StandartMoneyProcessor",
      "dbTable": "md_accounts",
      "dbIdColumn": "UUID",
      "dbNameColumn": "name",
      "dbMoneyColumn": "money",
      "dbLinkName": "main",
      "isTwoSideProcessor": false,
      "regMoney": 0
    },
    {
      "load": false,
      "moneyType": "coin",
      "className": "ru.alastar.minedonate.mproc.StandartMoneyProcessor",
      "dbTable": "md_accounts",
      "dbIdColumn": "UUID",
      "dbNameColumn": "name",
      "dbMoneyColumn": "coins",
      "dbLinkName": "main",
      "isTwoSideProcessor": true,
      "regMoney": 1000
    },
    {
      "load": false,
      "moneyType": "vault",
      "className": "ru.alastar.minedonate.mproc.MoneyAccessorPluginMoneyProcessor",
      "isTwoSideProcessor": true,
      "regMoney": 1000,
      "xProperties": {
        "modPluginName": "money.vault"
      }
    }
  ],
  "enablePermissionsMode": false,
  "dbModPermissionsTable": "md_perms",
  "permissionsTriggerList": [
    {
      "permission": "minedonate.default",
      "groups": [
        "default"
      ]
    },
    {
      "permission": "minedonate.moderation",
      "groups": [
        "default",
        "moder"
      ]
    },
    {
      "permission": "minedonate.admin",
      "groups": [
        "default",
        "moder",
        "admin"
      ]
    }
  ],
  "accessPlugins": [
    {
      "modPluginName": "permissionsManager",
      "load": true,
      "serverPluginName": "LuckPerms",
      "cleanInterfaceClassName": "ru.alastar.minedonate.plugin.permissions.PermissionsPlugin",
      "serverInterfaceClassName": "ru.alastar.minedonate.plugin.sponge.permissions.LuckPermsPlugin",
      "reflectionInterfaceClassName": "ru.alastar.minedonate.plugin.sponge.permissions.LuckPermsPluginReflection"
    },
    {
      "modPluginName": "worldProtectionManager",
      "load": false,
      "serverPluginName": "WorldGuard",
      "cleanInterfaceClassName": "ru.alastar.minedonate.plugin.worldProtection.WorldProtectionPlugin",
      "serverInterfaceClassName": "ru.alastar.minedonate.plugin.worldProtection.WorldGuardBukkitPlugin",
      "reflectionInterfaceClassName": "ru.alastar.minedonate.plugin.worldProtection.WorldGuardPluginReflection"
    },
    {
      "modPluginName": "money.vault",
      "load": false,
      "serverPluginName": "Vault",
      "cleanInterfaceClassName": "ru.alastar.minedonate.plugin.money.MoneyPlugin",
      "serverInterfaceClassName": "ru.alastar.minedonate.plugin.money.VaultBukkitPlugin",
      "reflectionInterfaceClassName": "ru.alastar.minedonate.plugin.money.VaultPluginReflection"
    }
  ],
  "packetsMaxLimit": 3,
  "sendShopLogToDB": true,
  "dbShopLog": "md_logs",
  "dbShopLogLinkName": "main",
  "displayInfoLog": true
}
Возможно кто-то из здешних обитателей-кодеров смогут починить данный мод.
На заметку "админам" форума: если вы тупые и не в силах помочь-ответить -нехер удалять темы!
 

Вложения

  • Server_LOG.txt
    1.8 MB · Просмотры: 3
  • crash-2020-06-05_12.14.56-client.txt
    5.5 KB · Просмотры: 2
Последнее редактирование:

necauqua

когда-то был anti344
Администратор
1,216
27
172
Ну тип, если что, если что, то довольно очевидно что никто нигде ничего просто так делать не будет.

Заинтересуй их.

Ну, единственный стандартный способ so far это деньгами.

Но вообще не думаю что сюда просто так кто-то ответил бы
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Собственно, почти такая же тема
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Вообще весь твой пост выглядит, как будто ты ожидаешь что вот тебе всё сделают, будто так и должно быть, весь такой "возможно кто-то сможет починить, и собственно вот вам крашлог и конфиг, чините" - думаю тем кодерам, которые таки его прочитают, будет заранее не очень приятно, я уж молчу про то с чего у них должна появиться мотивация что-то для тебя делать
 
Сверху