Skip to content

Commit 010ca54

Browse files
committed
gamemode check
1 parent 6af49d6 commit 010ca54

File tree

8 files changed

+48
-7
lines changed

8 files changed

+48
-7
lines changed

src/main/java/lol/hyper/toolstats/events/BlocksMined.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ public void onBreak(BlockBreakEvent event) {
4747
return;
4848
}
4949
Player player = event.getPlayer();
50-
// ignore creative mode
51-
if (player.getGameMode() != GameMode.SURVIVAL) {
50+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
5251
return;
5352
}
5453
// if the player mines something with their fist

src/main/java/lol/hyper/toolstats/events/CraftItem.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import lol.hyper.toolstats.ToolStats;
2121
import lol.hyper.toolstats.UUIDDataType;
2222
import org.bukkit.ChatColor;
23+
import org.bukkit.GameMode;
2324
import org.bukkit.Material;
2425
import org.bukkit.entity.Player;
2526
import org.bukkit.event.EventHandler;
@@ -46,6 +47,9 @@ public void onCraft(CraftItemEvent event) {
4647
return;
4748
}
4849
Player player = (Player) event.getWhoClicked();
50+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
51+
return;
52+
}
4953
ItemStack itemStack = event.getCurrentItem();
5054
if (itemStack == null || itemStack.getType() == Material.AIR) {
5155
return;

src/main/java/lol/hyper/toolstats/events/EntityDamage.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void onDamage(EntityDamageByEntityEvent event) {
6060
// a player is killing something
6161
if (event.getDamager() instanceof Player) {
6262
Player player = (Player) event.getDamager();
63-
if (player.getGameMode() != GameMode.SURVIVAL) {
63+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
6464
return;
6565
}
6666
// a player killed something with their fist
@@ -103,6 +103,9 @@ public void onDamage(EntityDamageByEntityEvent event) {
103103
// if the shooter is a player
104104
if (arrow.getShooter() instanceof Player) {
105105
Player player = (Player) arrow.getShooter();
106+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
107+
return;
108+
}
106109
ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot());
107110
if (heldItem == null) {
108111
return;
@@ -122,6 +125,9 @@ public void onDamage(EntityDamageByEntityEvent event) {
122125
// player is taken damage but not being killed
123126
if (livingEntity instanceof Player) {
124127
Player player = (Player) livingEntity;
128+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
129+
return;
130+
}
125131
PlayerInventory inventory = player.getInventory();
126132
for (ItemStack armor : inventory.getArmorContents()) {
127133
if (armor != null) {
@@ -142,6 +148,9 @@ public void onDamage(EntityDamageEvent event) {
142148
// player is taken damage but not being killed
143149
if (livingEntity instanceof Player) {
144150
Player player = (Player) livingEntity;
151+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
152+
return;
153+
}
145154
PlayerInventory inventory = player.getInventory();
146155
for (ItemStack armor : inventory.getArmorContents()) {
147156
if (armor != null) {
@@ -162,6 +171,9 @@ public void onDamage(EntityDamageByBlockEvent event) {
162171
// player is taken damage but not being killed
163172
if (livingEntity instanceof Player) {
164173
Player player = (Player) livingEntity;
174+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
175+
return;
176+
}
165177
PlayerInventory inventory = player.getInventory();
166178
for (ItemStack armor : inventory.getArmorContents()) {
167179
if (armor != null) {

src/main/java/lol/hyper/toolstats/events/PickupItem.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import lol.hyper.toolstats.ToolStats;
2121
import lol.hyper.toolstats.UUIDDataType;
22+
import org.bukkit.GameMode;
2223
import org.bukkit.Material;
2324
import org.bukkit.entity.*;
2425
import org.bukkit.event.EventHandler;
@@ -48,6 +49,10 @@ public void onPickup(EntityPickupItemEvent event) {
4849
}
4950
Entity entity = event.getEntity();
5051
if (entity instanceof Player) {
52+
Player player = (Player) entity;
53+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
54+
return;
55+
}
5156
Item item = event.getItem();
5257
if (item.getType() == EntityType.DROPPED_ITEM) {
5358
ItemStack itemStack = event.getItem().getItemStack();

src/main/java/lol/hyper/toolstats/events/PlayerFish.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import lol.hyper.toolstats.ToolStats;
2121
import lol.hyper.toolstats.UUIDDataType;
22+
import org.bukkit.GameMode;
2223
import org.bukkit.Material;
2324
import org.bukkit.entity.Item;
2425
import org.bukkit.entity.Player;
@@ -54,6 +55,9 @@ public void onFish(PlayerFishEvent event) {
5455
}
5556

5657
Player player = event.getPlayer();
58+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
59+
return;
60+
}
5761
ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot());
5862
if (heldItem == null || heldItem.getType() == Material.AIR || heldItem.getType() != Material.FISHING_ROD) {
5963
return;

src/main/java/lol/hyper/toolstats/events/PlayerInteract.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import lol.hyper.toolstats.ToolStats;
2121
import org.bukkit.Bukkit;
22+
import org.bukkit.GameMode;
2223
import org.bukkit.Material;
2324
import org.bukkit.block.Block;
2425
import org.bukkit.entity.Player;
@@ -49,11 +50,16 @@ public void onInteract(PlayerInteractEvent event) {
4950
if (block == null) {
5051
return;
5152
}
53+
54+
Player player = event.getPlayer();
55+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
56+
return;
57+
}
5258
// store when a player opens a chest
5359
// this is used to detect who opens a newly spawned chest
5460
// since that is not really tracked on the lootevent
5561
if (block.getType() != Material.AIR && block.getType() == Material.CHEST) {
56-
openedChests.put(block, event.getPlayer());
62+
openedChests.put(block, player);
5763
Bukkit.getScheduler().runTaskLater(toolStats, () -> openedChests.remove(block), 20);
5864
}
5965
}

src/main/java/lol/hyper/toolstats/events/SheepShear.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package lol.hyper.toolstats.events;
1919

2020
import lol.hyper.toolstats.ToolStats;
21+
import org.bukkit.GameMode;
2122
import org.bukkit.Material;
2223
import org.bukkit.entity.Entity;
2324
import org.bukkit.entity.Player;
@@ -47,6 +48,9 @@ public void onShear(PlayerInteractEntityEvent event) {
4748
return;
4849
}
4950
Player player = event.getPlayer();
51+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
52+
return;
53+
}
5054
Entity entity = event.getRightClicked();
5155
if (!(entity instanceof Sheep)) {
5256
return;

src/main/java/lol/hyper/toolstats/events/VillagerTrade.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import lol.hyper.toolstats.UUIDDataType;
2222
import org.bukkit.Bukkit;
2323
import org.bukkit.ChatColor;
24+
import org.bukkit.GameMode;
2425
import org.bukkit.entity.Player;
2526
import org.bukkit.event.EventHandler;
2627
import org.bukkit.event.Listener;
@@ -52,6 +53,13 @@ public void onTrade(InventoryClickEvent event) {
5253
return;
5354
}
5455
Inventory inventory = event.getClickedInventory();
56+
if (!(event.getWhoClicked() instanceof Player)) {
57+
return;
58+
}
59+
Player player = (Player) event.getWhoClicked();
60+
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
61+
return;
62+
}
5563
// only check villager inventories
5664
if (inventory instanceof MerchantInventory) {
5765
// only check the result slot (the item you receive)
@@ -60,17 +68,16 @@ public void onTrade(InventoryClickEvent event) {
6068
// only check items we want
6169
for (String x : toolStats.allValidItems) {
6270
if (item.getType().toString().toLowerCase(Locale.ROOT).contains(x)) {
63-
// if the player shift clicks show the warning
71+
// if the player shift clicks, show the warning
6472
if (event.isShiftClick()) {
6573
String configMessage = toolStats.config.getString("messages.shift-click-warning.trading");
6674
if (configMessage != null) {
6775
event.getWhoClicked().sendMessage(ChatColor.translateAlternateColorCodes('&', configMessage));
6876
}
6977
}
70-
ItemStack newItem = addLore(item, (Player) event.getWhoClicked());
78+
ItemStack newItem = addLore(item, player);
7179
if (newItem != null) {
7280
// this gets delayed since villager inventories suck for no reason
73-
// if you don't delay this it doesn't work idk
7481
Bukkit.getScheduler().runTaskLater(toolStats, () -> event.setCurrentItem(newItem), 5);
7582
return;
7683
}

0 commit comments

Comments
 (0)