gamemode check

This commit is contained in:
hyperdefined
2022-06-13 03:07:37 -04:00
parent 6af49d6c30
commit 010ca54144
8 changed files with 48 additions and 7 deletions

View File

@@ -47,8 +47,7 @@ public class BlocksMined implements Listener {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
// ignore creative mode if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
if (player.getGameMode() != GameMode.SURVIVAL) {
return; return;
} }
// if the player mines something with their fist // if the player mines something with their fist

View File

@@ -20,6 +20,7 @@ package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import lol.hyper.toolstats.UUIDDataType; import lol.hyper.toolstats.UUIDDataType;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -46,6 +47,9 @@ public class CraftItem implements Listener {
return; return;
} }
Player player = (Player) event.getWhoClicked(); Player player = (Player) event.getWhoClicked();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
ItemStack itemStack = event.getCurrentItem(); ItemStack itemStack = event.getCurrentItem();
if (itemStack == null || itemStack.getType() == Material.AIR) { if (itemStack == null || itemStack.getType() == Material.AIR) {
return; return;

View File

@@ -60,7 +60,7 @@ public class EntityDamage implements Listener {
// a player is killing something // a player is killing something
if (event.getDamager() instanceof Player) { if (event.getDamager() instanceof Player) {
Player player = (Player) event.getDamager(); Player player = (Player) event.getDamager();
if (player.getGameMode() != GameMode.SURVIVAL) { if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return; return;
} }
// a player killed something with their fist // a player killed something with their fist
@@ -103,6 +103,9 @@ public class EntityDamage implements Listener {
// if the shooter is a player // if the shooter is a player
if (arrow.getShooter() instanceof Player) { if (arrow.getShooter() instanceof Player) {
Player player = (Player) arrow.getShooter(); Player player = (Player) arrow.getShooter();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot()); ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot());
if (heldItem == null) { if (heldItem == null) {
return; return;
@@ -122,6 +125,9 @@ public class EntityDamage implements Listener {
// player is taken damage but not being killed // player is taken damage but not being killed
if (livingEntity instanceof Player) { if (livingEntity instanceof Player) {
Player player = (Player) livingEntity; Player player = (Player) livingEntity;
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
for (ItemStack armor : inventory.getArmorContents()) { for (ItemStack armor : inventory.getArmorContents()) {
if (armor != null) { if (armor != null) {
@@ -142,6 +148,9 @@ public class EntityDamage implements Listener {
// player is taken damage but not being killed // player is taken damage but not being killed
if (livingEntity instanceof Player) { if (livingEntity instanceof Player) {
Player player = (Player) livingEntity; Player player = (Player) livingEntity;
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
for (ItemStack armor : inventory.getArmorContents()) { for (ItemStack armor : inventory.getArmorContents()) {
if (armor != null) { if (armor != null) {
@@ -162,6 +171,9 @@ public class EntityDamage implements Listener {
// player is taken damage but not being killed // player is taken damage but not being killed
if (livingEntity instanceof Player) { if (livingEntity instanceof Player) {
Player player = (Player) livingEntity; Player player = (Player) livingEntity;
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
for (ItemStack armor : inventory.getArmorContents()) { for (ItemStack armor : inventory.getArmorContents()) {
if (armor != null) { if (armor != null) {

View File

@@ -19,6 +19,7 @@ package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import lol.hyper.toolstats.UUIDDataType; import lol.hyper.toolstats.UUIDDataType;
import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -48,6 +49,10 @@ public class PickupItem implements Listener {
} }
Entity entity = event.getEntity(); Entity entity = event.getEntity();
if (entity instanceof Player) { if (entity instanceof Player) {
Player player = (Player) entity;
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
Item item = event.getItem(); Item item = event.getItem();
if (item.getType() == EntityType.DROPPED_ITEM) { if (item.getType() == EntityType.DROPPED_ITEM) {
ItemStack itemStack = event.getItem().getItemStack(); ItemStack itemStack = event.getItem().getItemStack();

View File

@@ -19,6 +19,7 @@ package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import lol.hyper.toolstats.UUIDDataType; import lol.hyper.toolstats.UUIDDataType;
import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Item; import org.bukkit.entity.Item;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -54,6 +55,9 @@ public class PlayerFish implements Listener {
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot()); ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot());
if (heldItem == null || heldItem.getType() == Material.AIR || heldItem.getType() != Material.FISHING_ROD) { if (heldItem == null || heldItem.getType() == Material.AIR || heldItem.getType() != Material.FISHING_ROD) {
return; return;

View File

@@ -19,6 +19,7 @@ package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -49,11 +50,16 @@ public class PlayerInteract implements Listener {
if (block == null) { if (block == null) {
return; return;
} }
Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
// store when a player opens a chest // store when a player opens a chest
// this is used to detect who opens a newly spawned chest // this is used to detect who opens a newly spawned chest
// since that is not really tracked on the lootevent // since that is not really tracked on the lootevent
if (block.getType() != Material.AIR && block.getType() == Material.CHEST) { if (block.getType() != Material.AIR && block.getType() == Material.CHEST) {
openedChests.put(block, event.getPlayer()); openedChests.put(block, player);
Bukkit.getScheduler().runTaskLater(toolStats, () -> openedChests.remove(block), 20); Bukkit.getScheduler().runTaskLater(toolStats, () -> openedChests.remove(block), 20);
} }
} }

View File

@@ -18,6 +18,7 @@
package lol.hyper.toolstats.events; package lol.hyper.toolstats.events;
import lol.hyper.toolstats.ToolStats; import lol.hyper.toolstats.ToolStats;
import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -47,6 +48,9 @@ public class SheepShear implements Listener {
return; return;
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
Entity entity = event.getRightClicked(); Entity entity = event.getRightClicked();
if (!(entity instanceof Sheep)) { if (!(entity instanceof Sheep)) {
return; return;

View File

@@ -21,6 +21,7 @@ import lol.hyper.toolstats.ToolStats;
import lol.hyper.toolstats.UUIDDataType; import lol.hyper.toolstats.UUIDDataType;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@@ -52,6 +53,13 @@ public class VillagerTrade implements Listener {
return; return;
} }
Inventory inventory = event.getClickedInventory(); Inventory inventory = event.getClickedInventory();
if (!(event.getWhoClicked() instanceof Player)) {
return;
}
Player player = (Player) event.getWhoClicked();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
return;
}
// only check villager inventories // only check villager inventories
if (inventory instanceof MerchantInventory) { if (inventory instanceof MerchantInventory) {
// only check the result slot (the item you receive) // only check the result slot (the item you receive)
@@ -60,17 +68,16 @@ public class VillagerTrade implements Listener {
// only check items we want // only check items we want
for (String x : toolStats.allValidItems) { for (String x : toolStats.allValidItems) {
if (item.getType().toString().toLowerCase(Locale.ROOT).contains(x)) { if (item.getType().toString().toLowerCase(Locale.ROOT).contains(x)) {
// if the player shift clicks show the warning // if the player shift clicks, show the warning
if (event.isShiftClick()) { if (event.isShiftClick()) {
String configMessage = toolStats.config.getString("messages.shift-click-warning.trading"); String configMessage = toolStats.config.getString("messages.shift-click-warning.trading");
if (configMessage != null) { if (configMessage != null) {
event.getWhoClicked().sendMessage(ChatColor.translateAlternateColorCodes('&', configMessage)); event.getWhoClicked().sendMessage(ChatColor.translateAlternateColorCodes('&', configMessage));
} }
} }
ItemStack newItem = addLore(item, (Player) event.getWhoClicked()); ItemStack newItem = addLore(item, player);
if (newItem != null) { if (newItem != null) {
// this gets delayed since villager inventories suck for no reason // this gets delayed since villager inventories suck for no reason
// if you don't delay this it doesn't work idk
Bukkit.getScheduler().runTaskLater(toolStats, () -> event.setCurrentItem(newItem), 5); Bukkit.getScheduler().runTaskLater(toolStats, () -> event.setCurrentItem(newItem), 5);
return; return;
} }