Skip to content

Commit

Permalink
Small changes
Browse files Browse the repository at this point in the history
Hunters don't drop compass on death (fixes #31)
Don't allow speedrunners to use compass (fixes #37)
Make all compasses glow regardless of dimension (fixes #39)
  • Loading branch information
ericyoondotcom committed Dec 18, 2020
1 parent 6ed664f commit 87d2383
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.CompassMeta;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitScheduler;
Expand Down Expand Up @@ -58,30 +61,37 @@ public void UpdateCompass(){
if(!main.playerIsOnTeam(hunter)){
continue;
}
PlayerInventory inv = hunter.getInventory();

if(hunter.getWorld().getEnvironment() != target.getWorld().getEnvironment()){
Location loc = main.portals.get(target.getName());
if(loc != null){
hunter.setCompassTarget(loc);
}
for (int j = 0; j < inv.getSize(); j++) {
ItemStack stack = inv.getItem(j);
if (stack == null) continue;
if (stack.getType() != Material.COMPASS) continue;

stack.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 1); // Make all compasses glow

ItemMeta meta = stack.getItemMeta();
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
stack.setItemMeta(meta);
}
}else{
hunter.setCompassTarget(target.getLocation());

if(compassEnabledInNether) {
PlayerInventory inv = hunter.getInventory();
ItemStack compass = null;
for (int j = 0; j < inv.getSize(); j++) {
ItemStack stack = inv.getItem(j);
if (stack == null) continue;
if (stack.getType() != Material.COMPASS) continue;
compass = stack;

break;
}
if (compass != null) {
CompassMeta meta = (CompassMeta) compass.getItemMeta();
CompassMeta meta = (CompassMeta) stack.getItemMeta();
meta.setLodestone(target.getLocation());
meta.setLodestoneTracked(false);
compass.setItemMeta(meta);
stack.setItemMeta(meta);
}
}
}
Expand Down Expand Up @@ -239,7 +249,7 @@ public boolean onCommand(CommandSender commandSender, Command command, String la
commandSender.sendMessage("Game is already in progress. Use /end before starting another game.");
return true;
}
if (main.runners.size() < 1) {
if (main.runners.size() < 1 && !main.debugMode) {
commandSender.sendMessage("Not enough speedrunners to start");
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerChatTabCompleteEvent;
Expand Down Expand Up @@ -44,6 +45,10 @@ public void onClick(PlayerInteractEvent e){
}
return;
}
if(main.runners.contains(player.getName()) && !main.debugMode){
player.sendMessage("Speedrunners cannot use the compass!");
return;
}
if(main.commands.compassTask == -1){
player.sendMessage("Start the Manhunt game before using the compass!");
return;
Expand Down Expand Up @@ -114,6 +119,13 @@ public void onPlayerRespawn(PlayerRespawnEvent event){
}
}

@EventHandler
public void onPlayerDeath(PlayerDeathEvent event){
if(main.hunters.contains(event.getEntity().getName())){
event.getDrops().removeIf(i -> i.getType() == Material.COMPASS);
}
}

@EventHandler
public void onAutocomplete(TabCompleteEvent event){
String buffer = event.getBuffer();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class PluginMain extends JavaPlugin {
public DiscordManager discord;
public PluginCommands commands;
public AnalyticsManager analytics;
public boolean debugMode = false;

public boolean playerIsOnTeam(Player player){
String name = player.getName();
Expand All @@ -45,6 +46,7 @@ public void onEnable() {
logger = getLogger();
logger.info("Minecraft Manhunt plugin enabled!");
saveDefaultConfig();
debugMode = getConfig().getBoolean("debugMode", false);
getServer().getPluginManager().registerEvents(new PluginListener(this), this);

commands = new PluginCommands(this);
Expand Down

0 comments on commit 87d2383

Please sign in to comment.