Фикс Ивенты для модов [Механизмы работают от имени владельца]

Привет всем, кто может подсказать в чем проблема, клиент крашиться с ошибкой при размещении любого объекта

---- Minecraft Crash Report ----
// You should try our sister game, Minceraft!

Time: 3/27/18 8:16 PM
Description: Unexpected error

java.lang.NoClassDefFoundError: com/gamerforea/eventhelper/util/EventUtils
at appeng.util.Platform.isWrench(Platform.java:871)
at appeng.parts.PartPlacement.place(PartPlacement.java:85)
at appeng.parts.PartPlacement.playerInteract(PartPlacement.java:485)
at cpw.mods.fml.common.eventhandler.ASMEventHandler_343_PartPlacement_playerInteract_PlayerInteractEvent.invoke(.dynamic)
at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:141)
at net.minecraftforge.event.ForgeEventFactory.onPlayerInteract(ForgeEventFactory.java:100)
at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1446)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1953)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:973)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898)
at net.minecraft.client.main.Main.main(SourceFile:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at launcher.lOlkEKchebureK.LoLkeKChEbUREk(SourceFile:322)
at launcher.lOlkEKchebureK.main(SourceFile:203)
Caused by: java.lang.ClassNotFoundException: com.gamerforea.eventhelper.util.EventUtils
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:197)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 24 more
Caused by: java.lang.ArrayIndexOutOfBoundsException


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
на клиенте мод должен стоять без ивентов
 
да я понимаю, что вы все такие продвинутые в этом деле, просто можете подсказать ссылку что скачать на сервер а что на клиент

спасибо за пост

http://pastebin.com/QmWncbvX
Спойлер "ВНИМАНИЕ" добавлен не просто так. Если бы вы его прочитали, то поняли бы, что на клиент нужно ставить только чистый мод (без ивентов). Не хотите искать чистый мод - в последнее время я стал прикладывать к модам с ивентами клиентские чистые моды (ищите суффикс "client").
 
Последнее редактирование:
package com.gamerforea.guioneplayer;

import java.lang.reflect.Field;
import java.util.logging.Logger;
import net.minecraft.server.v1_7_R4.TileEntity;
import org.bukkit.Server;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.v1_7_R4.CraftWorld;
import org.bukkit.event.Cancellable;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public final class GuiOnePlayerPlugin
extends JavaPlugin
implements Listener
{
private final Config config = new Config(this);

public void onEnable()
{
this.config.reload();
getServer().getPluginManager().registerEvents(this, this);
}

@EventHandler(ignoreCancelled=true)
public void onInteract(PlayerInteractEvent event)
{
Action action = event.getAction();
if ((action == Action.LEFT_CLICK_BLOCK) || (action == Action.RIGHT_CLICK_BLOCK)) {
process(event.getClickedBlock(), event);
}
}

@EventHandler(ignoreCancelled=true)
public void onBreak(BlockBreakEvent event)
{
process(event.getBlock(), event);
}

private void process(Block block, Cancellable event)
{
boolean hasField = false;
boolean isOpened = false;

TileEntity tile = getTileEntity(block);
if (tile != null) {
try
{
Field field = tile.getClass().getField("isGuiOpened");
if (field.getType() == Boolean.TYPE)
{
hasField = true;
isOpened = field.getBoolean(tile);
}
}
catch (Exception localException) {}
}
if (isOpened) {
event.setCancelled(true);
}
if (this.config.isDebug())
{
int x = block.getX();
int y = block.getY();
int z = block.getZ();
getLogger().warning(String.format("X: %d, Y: %d, Z: %d, Tile: %s, HasField: %b, IsOpened: %b", new Object[] { Integer.valueOf(x), Integer.valueOf(y), Integer.valueOf(z), getClassName(tile), Boolean.valueOf(hasField), Boolean.valueOf(isOpened) }));
}
}

private static TileEntity getTileEntity(Block block)
{
if (block != null)
{
org.bukkit.World world = block.getWorld();
if ((world instanceof CraftWorld))
{
CraftWorld craftWorld = (CraftWorld)world;
net.minecraft.server.v1_7_R4.World nmsWorld = craftWorld.getHandle();
if (nmsWorld != null) {
return nmsWorld.getTileEntity(block.getX(), block.getY(), block.getZ());
}
}
}
return null;
}

private static String getClassName(Object obj)
{
return obj == null ? null : obj.getClass().getName();
}
}
А как он будет писать игроку что там уже есть внутри игрок и нельзя ломать если в коде плагина даже нету надписей таких?
откуда взял код?
 
А как он будет писать игроку что там уже есть внутри игрок и нельзя ломать если в коде плагина даже нету надписей таких?
Никак. На момент написания плагина это не требовалось. Нужно было просто блокировать взаимодействие с открытым блоком.
 
Никак. На момент написания плагина это не требовалось. Нужно было просто блокировать взаимодействие с открытым блоком.
а можно убрать полностью "Двойное проникновение" ко всем инвентарям в моде Ае2?
 
Включил и в плагине и в конфиге eventhelper на true и все что это добавило это только это в консоль
zETVj2bKiHU.jpg

после того как был сломан автономный активатор перед данными координатами данный спам прошёл, тперь какой бы блок бы я не ставил у меня пишут координаты в консоле где он был поставлен будь это земля или что то другое
а можно более подробно про дюп с двумя инвентарями ?
 
а можно убрать полностью "Двойное проникновение" ко всем инвентарям в моде Ае2?
Ну насчёт всех не уверен (нужно проверять), но стоит поставить GuiOnePlayer, добавить его в конфиг EventHelper и включить соответствующую опцию в конфиге ивентов AE2. Раньше он работал только с полноценными блоками, но сейчас должен работать и с микроблоками. Хотя выше писали о неработоспособности, так что нужно тестирование.
 
Обратитесь в Skype sk2000sk1 в воскресенье. Потестирую у себя.
 
хм, может у тебя вг не защищает это? или флаги какие нибудь стоят?
 
Столкнулся с проблемой в чужих регионах можно воровать разлитые жидкости любым ведром как из мода так и ванильным ведром помогите пожалуйста очень не приятный баг
WG флаги проверяй и общую конфигурацию
 
в последнем билде IC не крафтится ящик инструментов , неприятно однако
 
Конечно не туда отправляю) сори оффтоп или как это там
 

Вложения

Назад
Верх