From 09c4bfef23706eacd6c380a928ff9f237e7ac04d Mon Sep 17 00:00:00 2001 From: Cory Redmond Date: Tue, 3 Nov 2020 14:42:10 +0000 Subject: [PATCH] Disallow spamming the bed to get mob spawns. --- .../herobrine/listeners/PlayerListener.java | 60 ++++++++----------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/src/main/java/net/theprogrammersworld/herobrine/listeners/PlayerListener.java b/src/main/java/net/theprogrammersworld/herobrine/listeners/PlayerListener.java index 34f886b..b6c765b 100644 --- a/src/main/java/net/theprogrammersworld/herobrine/listeners/PlayerListener.java +++ b/src/main/java/net/theprogrammersworld/herobrine/listeners/PlayerListener.java @@ -1,42 +1,31 @@ package net.theprogrammersworld.herobrine.listeners; +import net.minecraft.server.v1_16_R2.PacketPlayOutPlayerInfo; +import net.minecraft.server.v1_16_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction; +import net.theprogrammersworld.herobrine.AI.AICore; +import net.theprogrammersworld.herobrine.AI.Core.CoreType; +import net.theprogrammersworld.herobrine.Herobrine; +import net.theprogrammersworld.herobrine.Utils; +import net.theprogrammersworld.herobrine.misc.ItemName; +import org.bukkit.*; +import org.bukkit.block.Jukebox; +import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.*; +import org.bukkit.inventory.ItemStack; + import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Jukebox; -import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.Action; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.inventory.ItemStack; - -import net.minecraft.server.v1_16_R2.PacketPlayOutPlayerInfo; -import net.minecraft.server.v1_16_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction; -import net.theprogrammersworld.herobrine.Herobrine; -import net.theprogrammersworld.herobrine.Utils; -import net.theprogrammersworld.herobrine.AI.AICore; -import net.theprogrammersworld.herobrine.AI.Core.CoreType; -import net.theprogrammersworld.herobrine.misc.ItemName; - public class PlayerListener implements Listener { private ArrayList equalsLoreS = new ArrayList(); @@ -209,18 +198,21 @@ public class PlayerListener implements Listener { } - @EventHandler + @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH) public void onPlayerEnterBed(PlayerBedEnterEvent event) { + PlayerBedEnterEvent.BedEnterResult result = event.getBedEnterResult(); + if (!result.equals(PlayerBedEnterEvent.BedEnterResult.OK)) { + return; + } + if (Utils.getRandomGen().nextInt(100) > 75) { Player player = event.getPlayer(); event.setCancelled(true); PluginCore.getAICore().playerBedEnter(player); } - event.useBed(); } @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerQuit(PlayerQuitEvent event) { if (event.getPlayer().getEntityId() != PluginCore.HerobrineEntityID) {