@Hook(at = @At(point = InjectionPoint.RETURN))
public static void getCollidingBoundingBoxes(World world, Entity entity, AxisAlignedBB box){
if(entity instanceof EntityPlayer){
List<AxisAlignedBB> collisions = world.collidingBoundingBoxes;
AxisAlignedBB mapArea = GAME.getCurrentMap().getArea().expand(10, 20, 10);
if(box.intersectsWith(mapArea)){
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.minZ, mapArea.maxX, mapArea.maxY, mapArea.minZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.maxZ, mapArea.maxX, mapArea.maxY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.minZ, mapArea.minX, mapArea.maxY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.maxX, mapArea.minY, mapArea.minZ, mapArea.maxX, mapArea.maxY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.minZ, mapArea.maxX, mapArea.minY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.maxY, mapArea.minZ, mapArea.maxX, mapArea.maxY, mapArea.maxZ));
}
}
}
@Hook(returnCondition = ReturnCondition.ON_TRUE)
public static boolean moveEntity(Entity entity, double x, double y, double z){
if(entity instanceof EntityPlayer && entity.noClip){
AxisAlignedBB mapArea = GAME.getCurrentMap().getArea().expand(10, 20, 10);
if(entity.boundingBox.addCoord(x, y, z).intersectsWith(mapArea)){
List<AxisAlignedBB> collisions = Lists.newArrayListWithCapacity(6);
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.minZ, mapArea.maxX, mapArea.maxY, mapArea.minZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.maxZ, mapArea.maxX, mapArea.maxY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.minZ, mapArea.minX, mapArea.maxY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.maxX, mapArea.minY, mapArea.minZ, mapArea.maxX, mapArea.maxY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.minY, mapArea.minZ, mapArea.maxX, mapArea.minY, mapArea.maxZ));
collisions.add(AxisAlignedBB.getBoundingBox(mapArea.minX, mapArea.maxY, mapArea.minZ, mapArea.maxX, mapArea.maxY, mapArea.maxZ));
for(int i = 0; i < collisions.size(); i++){
y = collisions.get(i).calculateYOffset(entity.boundingBox, y);
}
entity.boundingBox.offset(0.0D, y, 0.0D);
for(int i = 0; i < collisions.size(); i++){
x = collisions.get(i).calculateXOffset(entity.boundingBox, x);
}
entity.boundingBox.offset(x, 0.0D, 0.0D);
for(int i = 0; i < collisions.size(); i++){
z = collisions.get(i).calculateZOffset(entity.boundingBox, z);
}
entity.boundingBox.offset(0.0D, 0.0D, z);
entity.posX = (entity.boundingBox.minX + entity.boundingBox.maxX) / 2.0D;
entity.posY = entity.boundingBox.minY + entity.yOffset - entity.ySize;
entity.posZ = (entity.boundingBox.minZ + entity.boundingBox.maxZ) / 2.0D;
entity.onGround = false;
return true;
}
}
return false;
}
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/entity/EntityClientPlayerMP for invalid side SERVER
at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50) ~[forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_192]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_192]
at net.minecraft.entity.Entity.moveEntity(Entity.java) ~[Entity.class:?]
at net.minecraft.entity.EntityLivingBase.moveEntityWithHeading(EntityLivingBase.java:1680) ~[EntityLivingBase.class:?]
at net.minecraft.entity.EntityLivingBase.onLivingUpdate(EntityLivingBase.java:2023) ~[EntityLivingBase.class:?]
at net.minecraft.entity.EntityLiving.onLivingUpdate(EntityLiving.java:431) ~[EntityLiving.class:?]
at net.minecraft.entity.EntityAgeable.onLivingUpdate(EntityAgeable.java:138) ~[EntityAgeable.class:?]
at net.minecraft.entity.passive.EntityAnimal.onLivingUpdate(EntityAnimal.java:56) ~[EntityAnimal.class:?]
at net.minecraft.entity.passive.EntitySheep.onLivingUpdate(EntitySheep.java:98) ~[EntitySheep.class:?]
at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:1816) ~[EntityLivingBase.class:?]
at net.minecraft.entity.EntityLiving.onUpdate(EntityLiving.java:250) ~[EntityLiving.class:?]
at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2298) ~[World.class:?]
at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:684) ~[WorldServer.class:?]
at net.minecraft.world.World.updateEntity(World.java:2258) ~[World.class:?]
at net.minecraft.world.World.updateEntities(World.java:2108) ~[World.class:?]
at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:515) ~[WorldServer.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:703) ~[MinecraftServer.class:?]
... 4 more
Да, именно. Меня это смутило... Я ведь напрямую не обращаюсь ни к каким клиентским классам.Если убрать их - все нормально?
@Hook(returnCondition = ReturnCondition.ON_TRUE)
public static boolean moveEntityWithHeading(EntityPlayer player, float strafe, float forward){
if(!player.capabilities.isCreativeMode && !СustomPlayer.forPlayer(player).isNoClip()){
boolean isFreezeTime = GAME.getFreezeTimer() > 0;
if(isFreezeTime){
if(player.isSprinting()){
player.setSprinting(false);
}
return true;
}
}
return false;
}
Не обязательно качать весь MCP, есть сайтик с маппингами - MCPBot - Exports.Скачай mcp
[17:40:16] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[17:40:16] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLCorePlugin (net.minecraftforge.fml.relauncher.FMLCorePlugin), we are in deobf and it's a forge core plugin
[17:40:16] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLForgePlugin (net.minecraftforge.classloading.FMLForgePlugin), we are in deobf and it's a forge core plugin
[17:40:16] [main/INFO] [FML]: Found a command line coremod : ru.liahim.mist.hooks.MistHookLoader
[17:40:16] [main/INFO] [FML]: [HOOKLIB] Obfuscated: false
[17:40:16] [main/WARN] [FML]: The coremod ru.liahim.mist.hooks.MistHookLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft
[17:40:16] [main/INFO] [FML]: Ignoring missing certificate for coremod MistHookLoader (ru.liahim.mist.hooks.MistHookLoader), as this is probably a dev workspace
[17:40:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[17:40:16] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[17:40:16] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[17:40:16] [main/INFO] [GradleStart]: Injecting location in coremod ru.liahim.mist.hooks.MistHookLoader
[17:40:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[17:40:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[17:40:16] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[17:40:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[17:40:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[17:40:16] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[17:40:18] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[17:40:18] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[17:40:18] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
Пользовтелю либы никак не нужноВозможно, это как раз с порядком загрузки связано, но как его указать?
public class AnnotationHooks {
@Hook(returnCondition = ReturnCondition.ON_TRUE)
public static boolean addRainParticles(EntityRenderer er) {
if (Minecraft.getMinecraft().world.provider.getDimension() == Mist.dimensionID) {
ClientProxy.RainParticleRenderer.render(0, Minecraft.getMinecraft().world, Minecraft.getMinecraft());
return true;
}
return false;
}
}
иногда почему-то перестаёт грузить все текстуры/модели и т.д.
[17:40:16] [main/WARN] [FML]: The coremod ru.liahim.mist.hooks.MistHookLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft
[17:40:18] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
Нет пометки о совместимости хука с версией майна, не обращай вниманияThe coremod ru.liahim.mist.hooks.MistHookLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft