return; // We have to be told to catch these events if (event.getWorld().isRemote && event instanceof LeftClickEmpty) { .getUseItem() == Result.DENY; boolean isRightDeny = event instanceof PlayerInteractEvent.RightClickBlock && ((PlayerInteractEvent.RightClickBlock) event) .getUseItem() == Result.DENY; if (isLeftDeny || isRightDeny || event.getEntity().world.isRemote) { return; ForgePlayer player = wrap((EntityPlayerMP) event.getEntityPlayer()); ForgeWorld world = getWorld(event.getEntityPlayer().world); Location pos = new Location(world, event.getPos().getX(), event.getPos().getY(), event.getPos().getZ()); event.setCanceled(true); event.setCanceled(true); Location pos = new Location(world, event.getPos().getX(), event.getPos().getY(), event.getPos().getZ()); event.setCanceled(true); event.setCanceled(true); event.setCanceled(true);
@Override public IMessage onMessage(LeftClickAirEventMessage message, final MessageContext ctx) { ctx.getServerHandler().player.mcServer.addScheduledTask( () -> ForgeWorldEdit.inst.onPlayerInteract(new PlayerInteractEvent.LeftClickEmpty(ctx.getServerHandler().player))); return null; }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { // 10% bonus speed event.setNewSpeed(event.getNewSpeed() * (1 + bonus)); }
@SubscribeEvent public static void onInteract(PlayerInteractEvent.RightClickBlock event) { TileRedStringInterceptor.onInteract(event.getEntityPlayer(), event.getWorld(), event.getPos(), event.getHand()); }
@SubscribeEvent public static void addTooltip(ItemTooltipEvent itemTooltipEvent) { if( itemTooltipEvent.getItemStack().getItem() == Item.getItemFromBlock(TinkerGadgets.woodenHopper)) { itemTooltipEvent.getToolTip().add(Util.translate("item.tconstruct.wooden_hopper.tooltip")); } }
@SubscribeEvent public static void onPlayerInteract(PlayerInteractEvent.RightClickBlock event) { if(currentMultiblock != null && anchor == null && event.getEntityPlayer() == Minecraft.getMinecraft().player) { anchor = event.getPos(); angle = event.getEntityPlayer().getHorizontalFacing(); event.setCanceled(true); event.setCancellationResult(EnumActionResult.SUCCESS); } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { // speedup or slowdown depending on biome temperature. hotter areas are much faster float coeff = calcAridiculousness(event.getEntityPlayer().getEntityWorld(), event.getPos()) / 10f; // /10 = 10% for a coeff of 1. But can be bigger. event.setNewSpeed(event.getNewSpeed() + event.getOriginalSpeed() * coeff); }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { Block block = event.getState().getBlock(); int hlvl = tool.getItem().getHarvestLevel(tool, block.getHarvestTool(event.getState()), event.getEntityPlayer(), event.getState()); int dif = hlvl - block.getHarvestLevel(event.getState()); // 1 speed per harvest level above if(dif > 0) { event.setNewSpeed(event.getNewSpeed() + dif); } }
@SubscribeEvent public void offhandBreakSpeed(PlayerEvent.BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); if(shouldUseOffhand(player, event.getState(), player.getHeldItemMainhand())) { ItemStack main = player.getHeldItemMainhand(); ItemStack offhand = player.getHeldItemOffhand(); // we use this instead of player.setItemStackToSlot because that one plays an equip sound ;_; player.inventory.mainInventory.set(player.inventory.currentItem, offhand); float speed = player.getDigSpeed(event.getState(), event.getPos()); player.inventory.mainInventory.set(player.inventory.currentItem, main); event.setNewSpeed(speed); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { if(event.getState().getBlock().getMaterial(event.getState()).isToolNotRequired()) { event.setNewSpeed(event.getNewSpeed() * (ToolHelper.getActualMiningSpeed(tool) * 0.5f)); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { int y = event.getPos().getY(); y = 72 - y; // actual sealevel is 64, we chose 72 because we're nice if(y > 0) { event.setNewSpeed(event.getNewSpeed() + (float) y / 30f); } } }
@SubscribeEvent public void attackEntity(AttackEntityEvent evt) { if (!evt.getEntityPlayer().world.isRemote) { trySpawnBurst(evt.getEntityPlayer()); } }
@SubscribeEvent public void onPickupXp(PlayerPickupXpEvent event) { // try mainhand first, then offhand List<ItemStack> tools = Lists.newArrayList(event.getEntityPlayer().getHeldItemMainhand(), event.getEntityPlayer().getHeldItemOffhand()); EntityXPOrb entityXPOrb = event.getOrb(); for(ItemStack itemStack : tools) { if(!itemStack.isEmpty() && isMendingMossModified(itemStack)) { int stored = storeXp(entityXPOrb.xpValue, itemStack); entityXPOrb.xpValue -= stored; } } }
@SubscribeEvent public static void onCraftingStationGuiOpened(PlayerContainerEvent.Open event) { // by default the container does not update after it has been opened. // we need it to check its recipe if(event.getContainer() instanceof ContainerCraftingStation) { ((ContainerCraftingStation) event.getContainer()).onCraftMatrixChanged(); } }
@SubscribeEvent public void leftClick(PlayerInteractEvent.LeftClickEmpty evt) { if (!evt.getItemStack().isEmpty() && evt.getItemStack().getItem() == this) { PacketHandler.sendToServer(new PacketLeftClick()); } }
public void materialTooltip(ItemTooltipEvent event) { // check if the item belongs to a material for(Material material : TinkerRegistry.getAllMaterials()) { if(material.matches(event.getItemStack()).isPresent()) { event.getToolTip().add(TextFormatting.DARK_GRAY + material.getLocalizedName()); } } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { float boost = Momentum.getLevel(event.getEntityPlayer()); boost /= 80f; // 40% boost max event.setNewSpeed(event.getNewSpeed() + event.getOriginalSpeed() * boost); }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { if(ToolHelper.isToolEffective2(tool, event.getState())) { event.setNewSpeed((float) (event.getNewSpeed() + calcBonus(tool))); } }
@SubscribeEvent(priority = EventPriority.HIGHEST) public static void onTooltipEvent(ItemTooltipEvent event) { if(event.getItemStack().hasTagCompound() && ItemNBTHelper.getBoolean(event.getItemStack(), ItemKeepIvy.TAG_KEEP, false)) event.getToolTip().add(I18n.format("botaniamisc.hasKeepIvy")); }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { float coeff = 1f; // is the player in water? if(event.getEntityPlayer().isInWater()) { coeff += 5.5f; // being in water causes speed to be 1/5th. These values work fine. } // is it raining? if(event.getEntityPlayer().getEntityWorld().isRaining()) { coeff += event.getEntityPlayer().getEntityWorld().getBiomeForCoordsBody(event.getEntityPlayer().getPosition()).getRainfall() / 1.6f; } event.setNewSpeed(event.getNewSpeed() + event.getOriginalSpeed() * coeff); } }