aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/ob
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2020-01-08 01:31:41 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2020-01-08 01:31:41 +0000
commit6bb3c6872c97b36c84f32bf730eee31206728c74 (patch)
tree8176e79d6be425dc28cc3a612416b832a5bed3c5 /src/Java/gtPlusPlus/xmod/ob
parentac483bfb390f99f9b0ebca23e8ee407737f91f54 (diff)
downloadGT5-Unofficial-6bb3c6872c97b36c84f32bf730eee31206728c74.tar.gz
GT5-Unofficial-6bb3c6872c97b36c84f32bf730eee31206728c74.tar.bz2
GT5-Unofficial-6bb3c6872c97b36c84f32bf730eee31206728c74.zip
$ Fixed Glider Blacklist handler, now correctly hooks the correct Forge event.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/ob')
-rw-r--r--src/Java/gtPlusPlus/xmod/ob/GliderHandler.java52
1 files changed, 40 insertions, 12 deletions
diff --git a/src/Java/gtPlusPlus/xmod/ob/GliderHandler.java b/src/Java/gtPlusPlus/xmod/ob/GliderHandler.java
index 47d30adeff..7a53572aae 100644
--- a/src/Java/gtPlusPlus/xmod/ob/GliderHandler.java
+++ b/src/Java/gtPlusPlus/xmod/ob/GliderHandler.java
@@ -17,32 +17,60 @@ import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
-import net.minecraftforge.event.entity.player.PlayerUseItemEvent;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
public class GliderHandler {
-
+
private static final AutoMap<Integer> mDimensionalBlacklist = new AutoMap<Integer>();
-
+
@SubscribeEvent
- public void onItemUsage(final PlayerUseItemEvent event) {
- if (event != null && event.entityPlayer != null) {
- ItemStack aItem = event.item;
+ public void onItemUsageEx(final PlayerInteractEvent event) {
+ if (event != null && event.entityPlayer != null) {
+
+ if (event.action != Action.RIGHT_CLICK_BLOCK && event.action != Action.RIGHT_CLICK_AIR) {
+ Logger.WARNING("[OpenBlocks] Wrong type of PlayerInteractEvent, skipping.");
+ }
+ if (event.entityPlayer.worldObj.isRemote) {
+ return;
+ }
+
+ ItemStack aItem = event.entityPlayer.getItemInUse();
+ if (!ItemUtils.checkForInvalidItems(aItem)) {
+ Logger.WARNING("[OpenBlocks] Item in use was invalid, trying currentlyEquipped.");
+ aItem = event.entityPlayer.getCurrentEquippedItem();
+ }
+ if (!ItemUtils.checkForInvalidItems(aItem)) {
+ Logger.WARNING("[OpenBlocks] Item in use was invalid, trying heldItem.");
+ aItem = event.entityPlayer.getHeldItem();
+ }
if (ItemUtils.checkForInvalidItems(aItem)) {
Class aItemGliderClass = ReflectionUtils.getClass("openblocks.common.item.ItemHangGlider");
if (aItemGliderClass.isInstance(aItem.getItem())) {
if (!canPlayerGlideInThisDimension(event.entityPlayer)){
event.setCanceled(true);
PlayerUtils.messagePlayer(event.entityPlayer, "Glider is blacklisted in this dimension.");
- Logger.INFO(""+event.entityPlayer.getCommandSenderName()+" tried to use glider in dimension "+event.entityPlayer.getEntityWorld().provider.dimensionId+".");
+ Logger.WARNING("[OpenBlocks] "+event.entityPlayer.getCommandSenderName()+" tried to use glider in dimension "+event.entityPlayer.getEntityWorld().provider.dimensionId+".");
}
else {
- Logger.INFO(""+event.entityPlayer.getCommandSenderName()+" used glider in dimension "+event.entityPlayer.getEntityWorld().provider.dimensionId+".");
+ Logger.WARNING("[OpenBlocks] "+event.entityPlayer.getCommandSenderName()+" used glider in dimension "+event.entityPlayer.getEntityWorld().provider.dimensionId+".");
}
}
+ else {
+ Logger.WARNING("[OpenBlocks] Item was not a glider.");
+ }
+ }
+ else {
+ Logger.WARNING("[OpenBlocks] Bad Item in player hand.");
}
+ }
+ else {
+ Logger.WARNING("[OpenBlocks] Bad event or player.");
}
+
+
}
-
+
private static final boolean canPlayerGlideInThisDimension(EntityPlayer aPlayer) {
World aWorld = aPlayer.worldObj;
if (aWorld == null) {
@@ -63,7 +91,7 @@ public class GliderHandler {
}
return true;
}
-
+
static final void populateBlacklist() {
if (!mDimensionalBlacklist.isEmpty()) {
return;
@@ -102,6 +130,6 @@ public class GliderHandler {
}
}
}
-
-
+
+
}