The mousePress of EntityLivingHandler's onPLayerLiving method is not processed.
Help me!
"if (InfinitelyTrade.flag == 1)" is working.
※ This post uses Google Translate.
InfinitelyTrade.java (Main class)
package com.infinitelytrade.infinitely_trade;
import org.lwjgl.input.Keyboard;
import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.InputEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@Mod(modid = InfinitelyTrade.MODID, name = InfinitelyTrade.NAME, version = InfinitelyTrade.VERSION)
public class InfinitelyTrade
{
public static final String MODID = "infinitely_trade";
public static final String NAME = "InfinitelyTrade Mod";
public static final String VERSION = "1.12.2-1.0";
public static int flag = 0;
@SideOnly(Side.CLIENT)
public static final KeyBinding inputKey = new KeyBinding("KEY_J", Keyboard.KEY_J, "Auto Swing");
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event)
{
//MinecraftForge.EVENT_BUS.register(new EntityLivingHandler());
}
@Mod.EventHandler
public void init(FMLInitializationEvent event)
{
if(event.getSide() == Side.CLIENT) {
ClientRegistry.registerKeyBinding(inputKey);
}
FMLCommonHandler.instance().bus().register(this);
}
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void inputKetEvent(InputEvent.KeyInputEvent event) {
if(this.inputKey.isPressed()) {
if(flag == 0) {
flag = 1;
}else if(flag == 1) {
flag = 0;
}
}
}
}
EntityLivingHandler.java
package com.infinitelytrade.infinitely_trade.events;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import com.infinitelytrade.infinitely_trade.InfinitelyTrade;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.village.MerchantRecipe;
import net.minecraft.village.MerchantRecipeList;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Mod.EventBusSubscriber
public final class EntityLivingHandler {
@SubscribeEvent
public static void onEntityLiving(LivingEvent.LivingUpdateEvent event) {
if(event.getEntityLiving().getEntityWorld().isRemote) {
return;
}
if(event.getEntityLiving() instanceof EntityVillager) {
EntityVillager villager = (EntityVillager) event.getEntityLiving();
EntityPlayer player = null;
MerchantRecipeList list = villager.getRecipes(player);
if(list != null) {
for(Object obj : list) {
MerchantRecipe recipe = (MerchantRecipe) obj;
if(recipe.isRecipeDisabled())
recipe.increaseMaxTradeUses(999999);
}
}
}
}
@SubscribeEvent
public static void onPlayerLiving(LivingEvent.LivingUpdateEvent event) {
if(event.getEntityLiving().getEntityWorld().isRemote)
return;
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
if(event.getEntityLiving() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntityLiving();
float swing_speed = player.getCooledAttackStrength(0.0F);
//if(swing_speed < 1.0F && InfinitelyTrade.flag == 1) {
if(InfinitelyTrade.flag == 1) {
//player.sendMessage(new TextComponentString("この関数は動作しています"));
robot.mousePress(InputEvent.getMaskForButton(1));
robot.mouseRelease(InputEvent.getMaskForButton(1));
}
}
}
}