Плагин [FIX] ModFixNG [#67] - фикс разнообразных багов в модах. [1.6.4-1.8]

НУ походу мод использует какой-то баг при передаче данных чтобы сделать свою жизнь проше, либо просто ошибка в моде.
Тут ничего поделать не могу.
 
У меня пакеты 250 постоянно при входе игрока, этого мода нет.
Но и лагов от этого нет.
 
После отката на старую версию PL ничего не лагает...
Смотрите, чего я поймал!
2013-10-28 18:29:28 [SEVERE] Could not pass event PlayerJoinEvent to ProtocolLib v2.7.3
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:47)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at za.co.mcportcentral.entity.CraftFakePlayer.get(CraftFakePlayer.java:108)
at za.co.mcportcentral.entity.CraftFakePlayer.getBukkitEntity(CraftFakePlayer.java:141)
at za.co.mcportcentral.entity.CraftFakePlayer.getPossiblyRealPlayerBukkitEntity(CraftFakePlayer.java:166)
at buildcraft.core.utils.BukkitUtils.BlockBreakEvent(BukkitUtils.java:23)
at buildcraft.core.EntityRobot.build(EntityRobot.java:278)
at buildcraft.core.EntityRobot.func_70071_h_(EntityRobot.java:140)
at net.minecraft.world.World.func_72866_a(World.java:2522)
at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:941)
at net.minecraft.world.World.func_72870_g(World.java:2475)
at net.minecraft.world.World.func_72939_s(World.java:2287)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:806)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:838)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:732)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:614)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
Caused by: java.lang.IllegalAccessError: Unable to fetch server handler: was NUll.
at com.comphenix.protocol.injector.player.PlayerInjector.getProxyField(PlayerInjector.java:391)
at com.comphenix.protocol.injector.player.PlayerInjector.initializePlayer(PlayerInjector.java:194)
at com.comphenix.protocol.injector.player.PlayerInjector.initialize(PlayerInjector.java:169)
at com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler.injectPlayerInternal(ProxyPlayerInjectionHandler.java:340)
at com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler.injectPlayer(ProxyPlayerInjectionHandler.java:311)
at com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler.injectPlayer(ProxyPlayerInjectionHandler.java:278)
at com.comphenix.protocol.injector.PacketFilterManager.onPlayerJoin(PacketFilterManager.java:906)
at com.comphenix.protocol.injector.PacketFilterManager.access$500(PacketFilterManager.java:77)
at com.comphenix.protocol.injector.PacketFilterManager$3.onPrePlayerJoin(PacketFilterManager.java:872)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
... 20 more

Собственно, код, на который материмся:

if(owner != null){
if(BukkitUtils.BlockBreakEvent(worldObj, target.x, target.y, target.z, owner.username)){
worldObj.setBlock(target.x, target.y, target.z, 0, 0,3);
} else {
PacketDispatcher.sendPacketToPlayer(new Packet3Chat(String.format("[BuildCraft] Sorry, your robot can't work in claims owned by other player without permission.")), (Player) owner);
this.setDead();
return;
}
} else {
if(BukkitUtils.BlockBreakEvent(worldObj, target.x, target.y, target.z, "[BuildCraft]")){
worldObj.setBlock(target.x, target.y, target.z, 0, 0,3);
} else {
this.setDead();
return;
}
}

В методе BlockBreakEvent, если ник равен [BuildCraft], выдаётся параметр doLogin true, то бишь идёт принудительная авторизация фейка.
Это несовместимость не PL и BC3, а несовместимость PL и фейков MCPC+. Шевчик, поговори с автором PL, нужен игнор для фейков.
 
После отката на старую версию PL ничего не лагает...
Смотрите, чего я поймал!
2013-10-28 18:29:28 [SEVERE] Could not pass event PlayerJoinEvent to ProtocolLib v2.7.3
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:47)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at za.co.mcportcentral.entity.CraftFakePlayer.get(CraftFakePlayer.java:108)
at za.co.mcportcentral.entity.CraftFakePlayer.getBukkitEntity(CraftFakePlayer.java:141)
at za.co.mcportcentral.entity.CraftFakePlayer.getPossiblyRealPlayerBukkitEntity(CraftFakePlayer.java:166)
at buildcraft.core.utils.BukkitUtils.BlockBreakEvent(BukkitUtils.java:23)
at buildcraft.core.EntityRobot.build(EntityRobot.java:278)
at buildcraft.core.EntityRobot.func_70071_h_(EntityRobot.java:140)
at net.minecraft.world.World.func_72866_a(World.java:2522)
at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:941)
at net.minecraft.world.World.func_72870_g(World.java:2475)
at net.minecraft.world.World.func_72939_s(World.java:2287)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:806)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:838)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:732)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:614)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
Caused by: java.lang.IllegalAccessError: Unable to fetch server handler: was NUll.
at com.comphenix.protocol.injector.player.PlayerInjector.getProxyField(PlayerInjector.java:391)
at com.comphenix.protocol.injector.player.PlayerInjector.initializePlayer(PlayerInjector.java:194)
at com.comphenix.protocol.injector.player.PlayerInjector.initialize(PlayerInjector.java:169)
at com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler.injectPlayerInternal(ProxyPlayerInjectionHandler.java:340)
at com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler.injectPlayer(ProxyPlayerInjectionHandler.java:311)
at com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler.injectPlayer(ProxyPlayerInjectionHandler.java:278)
at com.comphenix.protocol.injector.PacketFilterManager.onPlayerJoin(PacketFilterManager.java:906)
at com.comphenix.protocol.injector.PacketFilterManager.access$500(PacketFilterManager.java:77)
at com.comphenix.protocol.injector.PacketFilterManager$3.onPrePlayerJoin(PacketFilterManager.java:872)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361)
... 20 more

Собственно, код, на который материмся:

if(owner != null){
if(BukkitUtils.BlockBreakEvent(worldObj, target.x, target.y, target.z, owner.username)){
worldObj.setBlock(target.x, target.y, target.z, 0, 0,3);
} else {
PacketDispatcher.sendPacketToPlayer(new Packet3Chat(String.format("[BuildCraft] Sorry, your robot can't work in claims owned by other player without permission.")), (Player) owner);
this.setDead();
return;
}
} else {
if(BukkitUtils.BlockBreakEvent(worldObj, target.x, target.y, target.z, "[BuildCraft]")){
worldObj.setBlock(target.x, target.y, target.z, 0, 0,3);
} else {
this.setDead();
return;
}
}

В методе BlockBreakEvent, если ник равен [BuildCraft], выдаётся параметр doLogin true, то бишь идёт принудительная авторизация фейка.
Это несовместимость не PL и BC3, а несовместимость PL и фейков MCPC+. Шевчик, поговори с автором PL, нужен игнор для фейков.

Вот aadnk специально версию склепал чтобы мы потестили.
http://assets.comphenix.net/jenkins/job/ProtocolLib/143/
 
Подскажите, что нужно сюда вписать:

FreeCamInvFix:
zeroItemsCheck:
enabled: true
forceCloseInvOnBreak:
enabled: true
BlockIDs: (что здесь указывать?)
 
Подскажите, что нужно сюда вписать:

FreeCamInvFix:
zeroItemsCheck:
enabled: true
forceCloseInvOnBreak:
enabled: true
BlockIDs: (что здесь указывать?)
Все и так расписано. Надо менять значения true и false и добавлять свои ID
 
Я как раз знаю. Напротив
FreeCamInvFix:
zeroItemsCheck:
ничего писать не надо. Лишь менять true и false и под "BlockIDs:" уже писать id
Ты наркоман? Я постом выше спросил: id каких предметов указывать!
 
PL 2.7.3 (та тестовая с фиксом MCPC+) - через 13 часов опять начался спам логами.
PL 2.7.0 - уже 3 суток полёт нормальный. Билд, вызывающий тормоза, лежит где-то между этими релизами.
 
PL 2.7.3 (та тестовая с фиксом MCPC+) - через 13 часов опять начался спам логами.
PL 2.7.0 - уже 3 суток полёт нормальный. Билд, вызывающий тормоза, лежит где-то между этими релизами.
Тогда пробуй билды с дженкинса по одному, так и узнаем.
 
Тогда пробуй билды с дженкинса по одному, так и узнаем.
@Shevchik Есть проблема, когда прописываю: frameentity: 18 (Это type id рамки) и прописал так же id сумок и когда захожу в игру ставлю рамку все равно могу в рамку вставить эту сумку. Почему так происходит?
 
@Shevchik Есть проблема, когда прописываю: frameentity: 18 (Это type id рамки) и прописал так же id сумок и когда захожу в игру ставлю рамку все равно могу в рамку вставить эту сумку. Почему так происходит?
Потому что так и должно быть.
 
А этим плагином можно пофиксить взрыв механизмов ?

PS - в IC 2
 

Здрасте, я ваш лог.
2013-10-31 13:45:20 [INFO] Geba[/62.84.250.63:51291] logged in with entity id 1633 at ([world_of_digging] -727.6963867417601, 70.0, 269.1516515192259)
2013-10-31 13:45:20 [INFO] Error Cannot handle server packet. (java.lang.IllegalArgumentException: Unable to find a field EntityPlayer with the type net.minecraft.entity.player.EntityPlayerMP in net.minecraft.network.NetLoginHandler) occured in com.comphenix.protocol.injector.player.NetworkFieldInjector@4bad4299.
2013-10-31 13:45:20 [SEVERE] [ProtocolLib] INTERNAL ERROR: Cannot handle server packet.
If this problem hasn't already been reported, please open a ticket
at http://dev.bukkit.org/server-mods/protocollib/ with the following data:
===== STACK TRACE =====
java.lang.IllegalArgumentException: Unable to find a field EntityPlayer with the type net.minecraft.entity.player.EntityPlayerMP in net.minecraft.network.NetLoginHandler
at com.comphenix.protocol.reflect.FuzzyReflection.getFieldByType(FuzzyReflection.java:287)
at com.comphenix.protocol.injector.player.PlayerInjector.getEntityPlayer(PlayerInjector.java:478)
at com.comphenix.protocol.injector.player.PlayerInjector.handlePacketSending(PlayerInjector.java:594)
at com.comphenix.protocol.injector.player.InjectedArrayList.add(InjectedArrayList.java:80)
at java.util.Collections$SynchronizedCollection.add(Collections.java:1636)
at net.minecraft.network.TcpConnection.func_74429_a(TcpConnection.java:151)
at net.minecraft.network.NetServerHandler.func_72567_b(NetServerHandler.java:1036)
at net.minecraft.server.management.ServerConfigurationManager.func_72355_a(ServerConfigurationManager.java:171)
at net.minecraft.network.NetLoginHandler.completeConnection(NetLoginHandler.java:218)
at cpw.mods.fml.common.network.FMLNetworkHandler.handleClientConnection(FMLNetworkHandler.java:171)
at cpw.mods.fml.common.network.FMLNetworkHandler.onConnectionReceivedFromClient(FMLNetworkHandler.java:124)
at net.minecraft.network.NetLoginHandler.func_72529_d(NetLoginHandler.java:194)
at net.minecraft.network.NetLoginHandler.func_72532_c(NetLoginHandler.java:81)
at net.minecraft.server.ServerListenThread.func_71766_a(ServerListenThread.java:57)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:29)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:865)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:732)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:614)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
===== DUMP =====
Parameters:
net.minecraft.network.packet.Packet1Login@5aab681b[
field_73561_a=1633
field_73559_b=net.minecraft.world.WorldType@73724cc0
field_73560_c=false
field_73557_d=SURVIVAL
field_73558_e=3
field_73555_f=2
field_73556_g=0
field_73562_h=60
vanillaCompatible=false
field_98193_m=<null>
field_73295_m=1383212720049
field_73287_r=false
packetID=1
]
manager:
com.comphenix.protocol.injector.PacketFilterManager@6cb51d0[
unhookTask=com.comphenix.protocol.injector.DelayedSingleTask@e68322c
packetListeners=[PacketAdapter[plugin=ModFixNG, sending=ListeningWhitelist{priority=HIGHEST, packets=[101], gamephase=PLAYING, options=[]}, receiving=EMPTY_WHITELIST], com.comphenix.protocol.async.NullPacketListener@7d402409, PacketAdapter[plugin=ModFixNG, sending=EMPTY_WHITELIST, receiving=ListeningWhitelist{priority=HIGHEST, packets=[101], gamephase=PLAYING, options=[]}], PacketAdapter[plugin=ChatGuard, sending=EMPTY_WHITELIST, receiving=ListeningWhitelist{priority=NORMAL, packets=[3], gamephase=PLAYING, options=[]}], PacketAdapter[plugin=ModFixNG, sending=EMPTY_WHITELIST, receiving=ListeningWhitelist{priority=HIGHEST, packets=[102], gamephase=PLAYING, options=[INTERCEPT_INPUT_BUFFER]}], PacketAdapter[plugin=ModFixNG, sending=ListeningWhitelist{priority=HIGHEST, packets=[101], gamephase=PLAYING, options=[]}, receiving=EMPTY_WHITELIST], PacketAdapter[plugin=ModFixNG, sending=EMPTY_WHITELIST, receiving=ListeningWhitelist{priority=HIGHEST, packets=[101], gamephase=PLAYING, options=[]}]]
packetInjector=com.comphenix.protocol.injector.packet.ProxyPacketInjector@7c503adb
playerInjection=com.comphenix.protocol.injector.player.ProxyPlayerInjectionHandler@77483f9f
interceptWritePacket=com.comphenix.protocol.injector.packet.InterceptWritePacket@28491ce7
inputBufferedPackets=com.comphenix.protocol.concurrency.IntegerSet@5808965a
recievedListeners=com.comphenix.protocol.injector.SortedPacketListenerList@1bc71bdd
sendingListeners=com.comphenix.protocol.injector.SortedPacketListenerList@2cf6586a
hasClosed=false
classLoader=org.bukkit.plugin.java.PluginClassLoader@65d90a9f
reporter=com.comphenix.protocol.ProtocolLibrary$1@32774b67
server=CraftServer{serverName=CraftBukkit,serverVersion=git-MCPC-Plus-jenkins-MCPC-Plus-Legacy-647,minecraftVersion=1.5.2}
asyncFilterManager=com.comphenix.protocol.async.AsyncFilterManager@1a8b0190
knowsServerPackets=true
knowsClientPackets=true
phaseLoginCount=1
phasePlayingCount=8
packetCreation=true
spigotInjector=<null>
pluginVerifier=com.comphenix.protocol.injector.PluginVerifier@25dd896b
hasRecycleDistance=true
minecraftVersion=(MC: 1.5.2)
loginPackets=com.comphenix.protocol.injector.LoginPackets@7368e338
]
Sender:
com.comphenix.protocol.injector.player.NetworkFieldInjector@4bad4299[
safeVersion=(MC: 1.4.4)
ignoredPackets=[]
overridenLists=[VolatileField [field=public java.util.List net.minecraft.network.TcpConnection.field_74487_p, container=net.minecraft.network.TcpConnection@4329c98a, previous=[], current=[Packet250CustomPayload]], VolatileField [field=public java.util.List net.minecraft.network.TcpConnection.field_74486_q, container=net.minecraft.network.TcpConnection@4329c98a, previous=[], current=[]]]
syncObject=java.lang.Object@63a4592
sendingFilters=com.comphenix.protocol.concurrency.IntegerSet@42b87c0e
player=com.comphenix.protocol.injector.server.InjectorContainer$$EnhancerByCGLIB$$e13c0ee5@d563f65
hasInitialized=true
networkManagerRef=VolatileField [field=public final net.minecraft.network.TcpConnection net.minecraft.network.NetLoginHandler.field_72538_b, container=net.minecraft.network.NetLoginHandler@68bdaa57, previous=net.minecraft.network.TcpConnection@4329c98a, current=null]
serverHandlerRef=<null>
networkManager=net.minecraft.network.TcpConnection@4329c98a
loginHandler=net.minecraft.network.NetLoginHandler@68bdaa57
serverHandler=<null>
netHandler=net.minecraft.network.NetLoginHandler@68bdaa57
socket=Socket[addr=/62.84.250.63,port=51291,localport=25566]
socketAddress=/62.84.250.63:51291
invoker=com.comphenix.protocol.injector.PacketFilterManager@6cb51d0
cachedInput=<null>
reporter=com.comphenix.protocol.ProtocolLibrary$1@32774b67
classLoader=org.bukkit.plugin.java.PluginClassLoader@65d90a9f
queuedMarkers={}
writePacketInterceptor=com.comphenix.protocol.injector.packet.InterceptWritePacket@28491ce7
clean=false
updateOnLogin=true
updatedPlayer=<null>
]
Version:
ProtocolLib v2.7.4-SNAPSHOT
Server:
git-MCPC-Plus-jenkins-MCPC-Plus-Legacy-647 (MC: 1.5.2)

2013-10-31 13:45:20 [INFO] 0

Предположительно, сраться ProtocolLib начинает когда реальный игрок выходит с сервера, а от его ника начинает работать FakePlayer. Либо когда игрок входит, а за него работал фейкплеер.
 
Назад
Верх