Rewrite CombatLogModule
This commit is contained in:
parent
70ed2e4fbb
commit
0c1f6cbedc
@ -312,4 +312,12 @@ public abstract class TeamGame extends Game
|
|||||||
|
|
||||||
return players;
|
return players;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void removePlayerFromRejoin(String name)
|
||||||
|
{
|
||||||
|
RejoinTimes.remove(name);
|
||||||
|
RejoinKit.remove(name);
|
||||||
|
RejoinTeam.remove(name);
|
||||||
|
RejoinHealth.remove(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,9 @@ import nautilus.game.arcade.game.modules.SafezoneModule;
|
|||||||
import nautilus.game.arcade.game.modules.TeamModule;
|
import nautilus.game.arcade.game.modules.TeamModule;
|
||||||
import nautilus.game.arcade.game.modules.combatlog.CombatLogModule;
|
import nautilus.game.arcade.game.modules.combatlog.CombatLogModule;
|
||||||
import nautilus.game.arcade.game.modules.combatlog.CombatLogNPC;
|
import nautilus.game.arcade.game.modules.combatlog.CombatLogNPC;
|
||||||
|
import nautilus.game.arcade.game.modules.combatlog.CombatLogNPCExpiredEvent;
|
||||||
|
import nautilus.game.arcade.game.modules.combatlog.CombatLogNPCKilledEvent;
|
||||||
|
import nautilus.game.arcade.game.modules.combatlog.CombatLogNPCPreSpawnEvent;
|
||||||
import nautilus.game.arcade.game.modules.compass.CompassEntry;
|
import nautilus.game.arcade.game.modules.compass.CompassEntry;
|
||||||
import nautilus.game.arcade.game.modules.compass.CompassModule;
|
import nautilus.game.arcade.game.modules.compass.CompassModule;
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
@ -50,6 +53,7 @@ import net.minecraft.server.v1_8_R3.WorldServer;
|
|||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
@ -403,6 +407,37 @@ public class UHC extends TeamGame
|
|||||||
UtilPlayer.message(caller, F.main("Debug", "Cleaned up!"));
|
UtilPlayer.message(caller, F.main("Debug", "Cleaned up!"));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
registerDebugCommand(new DebugCommand("setcombatlogtimeout", Rank.DEVELOPER)
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void Execute(Player caller, String[] args)
|
||||||
|
{
|
||||||
|
CombatLogModule module = getModule(CombatLogModule.class);
|
||||||
|
if (module == null)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(caller, F.main("Debug", "The combat log module has not been loaded yet"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 0)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(caller, F.main("Debug", "No timeout specified"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int timeout = Integer.parseInt(args[0]);
|
||||||
|
module.setCombatLogTime(timeout);
|
||||||
|
RejoinTime = timeout;
|
||||||
|
UtilPlayer.message(caller, F.main("Debug", "Set the new timeout to " + timeout));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(caller, F.main("Debug", "That's not a number!"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -726,73 +761,83 @@ public class UHC extends TeamGame
|
|||||||
getModule(CompassModule.class)
|
getModule(CompassModule.class)
|
||||||
.setGiveCompass(true);
|
.setGiveCompass(true);
|
||||||
new CombatLogModule()
|
new CombatLogModule()
|
||||||
.setSpawnForCreative(false)
|
.setCombatLogTime((int) RejoinTime)
|
||||||
.setCombatLogTime(300000)
|
|
||||||
.setOnDeathAction(npc ->
|
|
||||||
{
|
|
||||||
if (npc.getLastDamager() instanceof Player)
|
|
||||||
{
|
|
||||||
Player killer = (Player) npc.getLastDamager();
|
|
||||||
Announce(npc.getPlayerInfo().getTeamColor() + C.Bold + npc.getPlayerInfo().getName()
|
|
||||||
+ C.cGray + C.Bold + " was killed by " + getArcadeManager().GetColor(killer)
|
|
||||||
+ C.Bold + npc.getLastDamager().getName() + C.cGray + C.Bold + " while logged out.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
String cause = UtilParser.parseDamageCause(npc.getLastDamageCause());
|
|
||||||
if (npc.getLastDamager() != null)
|
|
||||||
{
|
|
||||||
cause = npc.getLastDamager().getName();
|
|
||||||
}
|
|
||||||
Announce(npc.getPlayerInfo().getTeamColor() + C.Bold + npc.getPlayerInfo().getName()
|
|
||||||
+ C.cGray + C.Bold + " was killed by " + cause + " while logged out.");
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack stack = new ItemBuilder(Material.SKULL_ITEM)
|
|
||||||
.setData((byte) 3)
|
|
||||||
.setTitle(npc.getPlayerInfo().getTeamColor() + npc.getPlayerInfo().getName() + "'s Head")
|
|
||||||
.setPlayerHead(npc.getPlayerInfo().getName())
|
|
||||||
.build();
|
|
||||||
|
|
||||||
npc.getNPC().getWorld().dropItemNaturally(npc.getNPC().getLocation(), stack);
|
|
||||||
|
|
||||||
Location location = npc.getNPC().getLocation();
|
|
||||||
|
|
||||||
for (ItemStack item : npc.getPlayerInfo().getItems())
|
|
||||||
{
|
|
||||||
location.getWorld().dropItemNaturally(location, item);
|
|
||||||
}
|
|
||||||
|
|
||||||
RejoinTimes.remove(npc.getPlayerInfo().getName());
|
|
||||||
RejoinKit.remove(npc.getPlayerInfo().getName());
|
|
||||||
RejoinTeam.remove(npc.getPlayerInfo().getName());
|
|
||||||
RejoinHealth.remove(npc.getPlayerInfo().getName());
|
|
||||||
})
|
|
||||||
.setOnExpireAction(npc ->
|
|
||||||
{
|
|
||||||
ItemStack stack = new ItemBuilder(Material.SKULL_ITEM)
|
|
||||||
.setData((byte) 3)
|
|
||||||
.setTitle(npc.getPlayerInfo().getTeamColor() + npc.getPlayerInfo().getName() + "'s Head")
|
|
||||||
.setPlayerHead(npc.getPlayerInfo().getName())
|
|
||||||
.build();
|
|
||||||
|
|
||||||
npc.getNPC().getWorld().dropItemNaturally(npc.getNPC().getLocation(), stack);
|
|
||||||
|
|
||||||
Location location = npc.getNPC().getLocation();
|
|
||||||
|
|
||||||
for (ItemStack item : npc.getPlayerInfo().getItems())
|
|
||||||
{
|
|
||||||
location.getWorld().dropItemNaturally(location, item);
|
|
||||||
}
|
|
||||||
|
|
||||||
RejoinTimes.remove(npc.getPlayerInfo().getName());
|
|
||||||
RejoinKit.remove(npc.getPlayerInfo().getName());
|
|
||||||
RejoinTeam.remove(npc.getPlayerInfo().getName());
|
|
||||||
RejoinHealth.remove(npc.getPlayerInfo().getName());
|
|
||||||
})
|
|
||||||
.register(this);
|
.register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void preSpawnCombatLogNPC(CombatLogNPCPreSpawnEvent event)
|
||||||
|
{
|
||||||
|
if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void combatLogNPCDeathEvent(CombatLogNPCKilledEvent event)
|
||||||
|
{
|
||||||
|
CombatLogNPC npc = event.getNpc();
|
||||||
|
|
||||||
|
if (npc.getLastDamager() instanceof Player)
|
||||||
|
{
|
||||||
|
Player killer = (Player) npc.getLastDamager();
|
||||||
|
Announce(npc.getPlayerInfo().getTeamColor() + C.Bold + npc.getPlayerInfo().getName()
|
||||||
|
+ C.cGray + C.Bold + " was killed by " + getArcadeManager().GetColor(killer)
|
||||||
|
+ C.Bold + npc.getLastDamager().getName() + C.cGray + C.Bold + " while logged out.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String cause = UtilParser.parseDamageCause(npc.getLastDamageCause());
|
||||||
|
if (npc.getLastDamager() != null)
|
||||||
|
{
|
||||||
|
cause = npc.getLastDamager().getName();
|
||||||
|
}
|
||||||
|
Announce(npc.getPlayerInfo().getTeamColor() + C.Bold + npc.getPlayerInfo().getName()
|
||||||
|
+ C.cGray + C.Bold + " was killed by " + cause + " while logged out.");
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack stack = new ItemBuilder(Material.SKULL_ITEM)
|
||||||
|
.setData((byte) 3)
|
||||||
|
.setTitle(npc.getPlayerInfo().getTeamColor() + npc.getPlayerInfo().getName() + "'s Head")
|
||||||
|
.setPlayerHead(npc.getPlayerInfo().getName())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
npc.getNPC().getWorld().dropItemNaturally(npc.getNPC().getLocation(), stack);
|
||||||
|
|
||||||
|
Location location = npc.getNPC().getLocation();
|
||||||
|
|
||||||
|
for (ItemStack item : npc.getPlayerInfo().getItems())
|
||||||
|
{
|
||||||
|
location.getWorld().dropItemNaturally(location, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
removePlayerFromRejoin(npc.getPlayerInfo().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void combatLogNpcExpireEvent(CombatLogNPCExpiredEvent event)
|
||||||
|
{
|
||||||
|
CombatLogNPC npc = event.getNpc();
|
||||||
|
|
||||||
|
ItemStack stack = new ItemBuilder(Material.SKULL_ITEM)
|
||||||
|
.setData((byte) 3)
|
||||||
|
.setTitle(npc.getPlayerInfo().getTeamColor() + npc.getPlayerInfo().getName() + "'s Head")
|
||||||
|
.setPlayerHead(npc.getPlayerInfo().getName())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
npc.getNPC().getWorld().dropItemNaturally(npc.getNPC().getLocation(), stack);
|
||||||
|
|
||||||
|
Location location = npc.getNPC().getLocation();
|
||||||
|
|
||||||
|
for (ItemStack item : npc.getPlayerInfo().getItems())
|
||||||
|
{
|
||||||
|
location.getWorld().dropItemNaturally(location, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
removePlayerFromRejoin(npc.getPlayerInfo().getName());
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void EarlyGameUpdate(UpdateEvent event)
|
public void EarlyGameUpdate(UpdateEvent event)
|
||||||
{
|
{
|
||||||
|
@ -1,21 +1,14 @@
|
|||||||
package nautilus.game.arcade.game.modules.combatlog;
|
package nautilus.game.arcade.game.modules.combatlog;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import java.util.Collection;
|
||||||
import mineplex.core.common.util.F;
|
import java.util.HashMap;
|
||||||
import mineplex.core.common.util.UtilEvent;
|
import java.util.Iterator;
|
||||||
import mineplex.core.common.util.UtilParser;
|
import java.util.Map;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import java.util.UUID;
|
||||||
import mineplex.core.common.util.UtilServer;
|
import java.util.stream.Collectors;
|
||||||
import mineplex.core.updater.UpdateType;
|
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
|
||||||
import nautilus.game.arcade.game.GameTeam;
|
|
||||||
import nautilus.game.arcade.game.TeamGame;
|
|
||||||
import nautilus.game.arcade.game.modules.Module;
|
|
||||||
import nautilus.game.arcade.game.modules.compass.CompassEntry;
|
|
||||||
import nautilus.game.arcade.game.modules.compass.CompassModule;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -28,43 +21,49 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
|||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.world.ChunkUnloadEvent;
|
import org.bukkit.event.world.ChunkUnloadEvent;
|
||||||
|
|
||||||
import java.util.Collection;
|
import mineplex.core.common.util.C;
|
||||||
import java.util.HashMap;
|
import mineplex.core.common.util.F;
|
||||||
import java.util.Iterator;
|
import mineplex.core.common.util.UtilEvent;
|
||||||
import java.util.Map;
|
import mineplex.core.common.util.UtilParser;
|
||||||
import java.util.Objects;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import java.util.UUID;
|
import mineplex.core.common.util.UtilServer;
|
||||||
import java.util.function.Consumer;
|
import mineplex.core.updater.UpdateType;
|
||||||
import java.util.stream.Collectors;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
|
||||||
/*
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
|
import nautilus.game.arcade.game.TeamGame;
|
||||||
|
import nautilus.game.arcade.game.modules.Module;
|
||||||
|
import nautilus.game.arcade.game.modules.compass.CompassEntry;
|
||||||
|
import nautilus.game.arcade.game.modules.compass.CompassModule;
|
||||||
|
|
||||||
|
/**
|
||||||
* This module will spawn combat log NPCs for players who disconnect
|
* This module will spawn combat log NPCs for players who disconnect
|
||||||
*/
|
*/
|
||||||
public class CombatLogModule extends Module
|
public class CombatLogModule extends Module
|
||||||
{
|
{
|
||||||
// The map of player UUIDs to their combat log NPCs
|
/**
|
||||||
|
* Map of UUIDs of players who are now offline, to their CombatLogNPCs
|
||||||
|
*/
|
||||||
private Map<UUID, CombatLogNPC> _logoutNpcs = new HashMap<>();
|
private Map<UUID, CombatLogNPC> _logoutNpcs = new HashMap<>();
|
||||||
|
|
||||||
// The map of player UUIDs and who killed their combat logged NPC
|
/**
|
||||||
|
* Map of UUIDs of players who are now offline, and who killed them
|
||||||
|
*/
|
||||||
private Map<UUID, String> _killedBy = new HashMap<>();
|
private Map<UUID, String> _killedBy = new HashMap<>();
|
||||||
|
|
||||||
// The time that combat log npcs will stay spawned for, in milliseconds
|
/**
|
||||||
|
* How long combat log NPCs will stay spawned in for, measured in milliseconds
|
||||||
|
*/
|
||||||
private int _spawnTime = 60000;
|
private int _spawnTime = 60000;
|
||||||
// Whether to notify the combat logged player on join if they have been killed
|
|
||||||
|
/**
|
||||||
|
* Whether to notify the combat logged player on join if they have been killed
|
||||||
|
*/
|
||||||
private boolean _notifyPlayer = true;
|
private boolean _notifyPlayer = true;
|
||||||
// Whether to spawn a combat log NPC for creative players
|
|
||||||
private boolean _spawnForCreative = true;
|
|
||||||
// The action to take once a combat logged NPC has died
|
|
||||||
private Consumer<CombatLogNPC> _onKill = npc ->
|
|
||||||
{
|
|
||||||
|
|
||||||
};
|
|
||||||
// The action to take once a combat logged NPC has expired
|
|
||||||
private Consumer<CombatLogNPC> _onExpire = npc ->
|
|
||||||
{
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to integrate with {@link CompassModule}
|
||||||
|
*/
|
||||||
private boolean _integrateWithCompassModule = true;
|
private boolean _integrateWithCompassModule = true;
|
||||||
|
|
||||||
private int _locationTaskId = -1;
|
private int _locationTaskId = -1;
|
||||||
@ -85,8 +84,17 @@ public class CombatLogModule extends Module
|
|||||||
if (compassModule != null)
|
if (compassModule != null)
|
||||||
{
|
{
|
||||||
compassModule.addSupplier(() ->
|
compassModule.addSupplier(() ->
|
||||||
getAllNPCs()
|
getAllNPCs()
|
||||||
.stream()
|
.stream()
|
||||||
|
.filter(ent ->
|
||||||
|
{
|
||||||
|
if (ent.getNPC() == null)
|
||||||
|
{
|
||||||
|
System.out.println("Null npc entity? " + ent.getPlayerInfo().getName() + " " + ent.getPlayerInfo().getUniqueId());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
})
|
||||||
.map(npc -> new CompassEntry(npc.getNPC(), npc.getPlayerInfo().getName(), npc.getPlayerInfo().getName() + " (Disconnected)", npc.getPlayerInfo().getTeam(), npc.getPlayerInfo().getKit()))
|
.map(npc -> new CompassEntry(npc.getNPC(), npc.getPlayerInfo().getName(), npc.getPlayerInfo().getName() + " (Disconnected)", npc.getPlayerInfo().getTeam(), npc.getPlayerInfo().getKit()))
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
);
|
);
|
||||||
@ -110,44 +118,124 @@ public class CombatLogModule extends Module
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CombatLogModule setSpawnForCreative(boolean spawnForCreative)
|
|
||||||
{
|
|
||||||
this._spawnForCreative = spawnForCreative;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CombatLogModule setOnDeathAction(Consumer<CombatLogNPC> action)
|
|
||||||
{
|
|
||||||
this._onKill = action;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CombatLogModule setOnExpireAction(Consumer<CombatLogNPC> action)
|
|
||||||
{
|
|
||||||
this._onExpire = action;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CombatLogModule setCombatLogTime(int time)
|
public CombatLogModule setCombatLogTime(int time)
|
||||||
{
|
{
|
||||||
this._spawnTime = time;
|
this._spawnTime = time;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
* Spawns a combat log NPC for the given player if that player does not already have one
|
public void on(PlayerQuitEvent event)
|
||||||
*/
|
|
||||||
public void spawnLogoutNpc(Player player)
|
|
||||||
{
|
{
|
||||||
if (hasLogoutNpc(player))
|
Player player = event.getPlayer();
|
||||||
return;
|
if (getGame().InProgress() && getGame().IsAlive(player))
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !_spawnForCreative)
|
{
|
||||||
|
if (hasLogoutNpc(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
CombatLogNPCPreSpawnEvent preSpawnEvent = new CombatLogNPCPreSpawnEvent(player);
|
||||||
|
UtilServer.CallEvent(preSpawnEvent);
|
||||||
|
if (preSpawnEvent.isCancelled())
|
||||||
|
return;
|
||||||
|
|
||||||
|
CombatLogNPC npc = new CombatLogNPC(this, player);
|
||||||
|
_logoutNpcs.put(player.getUniqueId(), npc);
|
||||||
|
System.out.println(String.format("Spawned combat log NPC for %s!", player.getName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onJoin(PlayerJoinEvent event)
|
||||||
|
{
|
||||||
|
if (hasLogoutNpc(event.getPlayer()))
|
||||||
|
{
|
||||||
|
despawnLogoutNpc(event.getPlayer());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_killedBy.containsKey(event.getPlayer().getUniqueId()))
|
||||||
|
{
|
||||||
|
String name = _killedBy.remove(event.getPlayer().getUniqueId());
|
||||||
|
if (_notifyPlayer && name != null)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(event.getPlayer(), F.main("Combat Log", "While you were gone, you were killed by " + ChatColor.GREEN + name + C.mBody + "."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onEntityDeath(EntityDeathEvent event)
|
||||||
|
{
|
||||||
|
CombatLogNPC logoutNpc = getLogoutNpc(event.getEntity());
|
||||||
|
|
||||||
|
if (logoutNpc == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CombatLogNPC npc = new CombatLogNPC(this, player, getGame().getArcadeManager());
|
CombatLogNPCKilledEvent npcKilledEvent = new CombatLogNPCKilledEvent(logoutNpc);
|
||||||
npc.spawn();
|
UtilServer.CallEvent(npcKilledEvent);
|
||||||
_logoutNpcs.put(player.getUniqueId(), npc);
|
|
||||||
System.out.println(String.format("Spawned combat log NPC for %s!", player.getName()));
|
logoutNpc.despawn();
|
||||||
|
_logoutNpcs.remove(logoutNpc.getPlayerInfo().getUniqueId());
|
||||||
|
|
||||||
|
event.getDrops().clear(); // Clear the entity's item drops. If drops are wanted they should be dropped in the event
|
||||||
|
|
||||||
|
if (logoutNpc.getLastDamager() != null)
|
||||||
|
{
|
||||||
|
_killedBy.put(logoutNpc.getPlayerInfo().getUniqueId(), logoutNpc.getLastDamager().getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_killedBy.put(logoutNpc.getPlayerInfo().getUniqueId(), UtilParser.parseDamageCause(logoutNpc.getLastDamageCause()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
|
public void onEntityDamaged(EntityDamageEvent event)
|
||||||
|
{
|
||||||
|
CombatLogNPC logoutNpc = getLogoutNpc(event.getEntity());
|
||||||
|
|
||||||
|
if (logoutNpc == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
LivingEntity damager = UtilEvent.GetDamagerEntity(event, true);
|
||||||
|
|
||||||
|
Player damagerPlayer = null;
|
||||||
|
if (damager instanceof Player)
|
||||||
|
{
|
||||||
|
damagerPlayer = (Player) damager;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getGame() instanceof TeamGame && damagerPlayer != null)
|
||||||
|
{
|
||||||
|
GameTeam damagerTeam = getGame().GetTeam(damagerPlayer);
|
||||||
|
if (damagerTeam == logoutNpc.getPlayerInfo().getTeam())
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
|
public void recordDamage(EntityDamageEvent event)
|
||||||
|
{
|
||||||
|
CombatLogNPC logoutNpc = getLogoutNpc(event.getEntity());
|
||||||
|
|
||||||
|
if (logoutNpc == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
logoutNpc.getNPC().getWorld().playSound(logoutNpc.getNPC().getLocation(), Sound.HURT_FLESH, 1, 1);
|
||||||
|
logoutNpc.recordDamage(event);
|
||||||
|
|
||||||
|
if (getGame() instanceof TeamGame)
|
||||||
|
{
|
||||||
|
getGame().getArcadeManager().runSync(() ->
|
||||||
|
{
|
||||||
|
CombatLogNPC npc = getLogoutNpc(event.getEntity());
|
||||||
|
if (npc != null)
|
||||||
|
{
|
||||||
|
((TeamGame) getGame()).RejoinHealth.put(npc.getPlayerInfo().getName(), npc.getNPC().getHealth());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasLogoutNpc(Player player)
|
public boolean hasLogoutNpc(Player player)
|
||||||
@ -172,42 +260,12 @@ public class CombatLogModule extends Module
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
|
||||||
public void on(PlayerQuitEvent event)
|
|
||||||
{
|
|
||||||
if (getGame().InProgress() && getGame().IsAlive(event.getPlayer()))
|
|
||||||
{
|
|
||||||
spawnLogoutNpc(event.getPlayer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void on(PlayerJoinEvent event)
|
|
||||||
{
|
|
||||||
if (hasLogoutNpc(event.getPlayer()))
|
|
||||||
{
|
|
||||||
despawnLogoutNpc(event.getPlayer());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_killedBy.containsKey(event.getPlayer().getUniqueId()))
|
|
||||||
{
|
|
||||||
String name = _killedBy.remove(event.getPlayer().getUniqueId());
|
|
||||||
if (_notifyPlayer && name != null)
|
|
||||||
{
|
|
||||||
UtilPlayer.message(event.getPlayer(), F.main("Combat Log", "While you were gone, you were killed by " + ChatColor.GREEN + name + C.mBody + "."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cleanup()
|
public void cleanup()
|
||||||
{
|
{
|
||||||
System.out.println("Killing combat log NPCs");
|
System.out.println("Killing combat log NPCs");
|
||||||
|
|
||||||
for (CombatLogNPC npc : _logoutNpcs.values())
|
_logoutNpcs.values().forEach(CombatLogNPC::despawn);
|
||||||
{
|
|
||||||
npc.despawn();
|
|
||||||
}
|
|
||||||
|
|
||||||
_logoutNpcs.clear();
|
_logoutNpcs.clear();
|
||||||
_killedBy.clear();
|
_killedBy.clear();
|
||||||
@ -228,67 +286,6 @@ public class CombatLogModule extends Module
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
|
||||||
public void onEntityDeath(EntityDeathEvent event)
|
|
||||||
{
|
|
||||||
CombatLogNPC logoutNpc = getLogoutNpc(event.getEntity());
|
|
||||||
|
|
||||||
if (logoutNpc == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_onKill.accept(logoutNpc);
|
|
||||||
logoutNpc.onDeath();
|
|
||||||
event.getDrops().clear(); // Clear the entity's item drops. If drops are wanted they can be added
|
|
||||||
|
|
||||||
if (logoutNpc.getLastDamager() != null)
|
|
||||||
{
|
|
||||||
_killedBy.put(logoutNpc.getPlayerInfo().getUniqueId(), logoutNpc.getLastDamager().getName());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_killedBy.put(logoutNpc.getPlayerInfo().getUniqueId(), UtilParser.parseDamageCause(logoutNpc.getLastDamageCause()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
|
||||||
public void onEntityDamaged(EntityDamageEvent event)
|
|
||||||
{
|
|
||||||
CombatLogNPC logoutNpc = getLogoutNpc(event.getEntity());
|
|
||||||
|
|
||||||
if (logoutNpc != null)
|
|
||||||
{
|
|
||||||
LivingEntity damager = UtilEvent.GetDamagerEntity(event, true);
|
|
||||||
|
|
||||||
Player damagerPlayer = null;
|
|
||||||
if (damager instanceof Player)
|
|
||||||
{
|
|
||||||
damagerPlayer = (Player) damager;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getGame() instanceof TeamGame && damagerPlayer != null)
|
|
||||||
{
|
|
||||||
GameTeam damagerTeam = getGame().GetTeam(damagerPlayer);
|
|
||||||
if (damagerTeam == logoutNpc.getPlayerInfo().getTeam())
|
|
||||||
{
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logoutNpc.getNPC().getWorld().playSound(logoutNpc.getNPC().getLocation(), Sound.HURT_FLESH, 1, 1);
|
|
||||||
|
|
||||||
if (getGame() instanceof TeamGame)
|
|
||||||
{
|
|
||||||
getGame().getArcadeManager().runSync(() ->
|
|
||||||
{
|
|
||||||
((TeamGame) getGame()).RejoinHealth.put(logoutNpc.getPlayerInfo().getName(), logoutNpc.getNPC().getHealth());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
logoutNpc.handleDamageEvent(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onUpdate(UpdateEvent event)
|
public void onUpdate(UpdateEvent event)
|
||||||
{
|
{
|
||||||
@ -305,24 +302,45 @@ public class CombatLogModule extends Module
|
|||||||
{
|
{
|
||||||
CombatLogNPC npc = iterator.next();
|
CombatLogNPC npc = iterator.next();
|
||||||
|
|
||||||
if (Bukkit.getPlayerExact(npc.getPlayerInfo().getName()) != null)
|
if (npc.getNPC() == null)
|
||||||
{
|
{
|
||||||
System.out.println("Removing NPC " + npc.getPlayerInfo().getName() + " for 1");
|
try
|
||||||
npc.despawn();
|
{
|
||||||
iterator.remove();
|
new IllegalArgumentException("Strange, the NPC with data " + npc.getPlayerInfo().getName() + " " + npc.getPlayerInfo().getUniqueId() + " was null").printStackTrace();
|
||||||
|
}
|
||||||
|
catch (Throwable t)
|
||||||
|
{
|
||||||
|
t.printStackTrace();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (!npc.isAlive())
|
else
|
||||||
{
|
{
|
||||||
System.out.println("Removing NPC " + npc.getPlayerInfo().getName() + " for 2");
|
if (Bukkit.getPlayerExact(npc.getPlayerInfo().getName()) != null)
|
||||||
npc.despawn();
|
{
|
||||||
iterator.remove();
|
// Should never happen
|
||||||
}
|
System.out.println("Removing NPC " + npc.getPlayerInfo().getName() + " for 1");
|
||||||
else if (npc.getAliveDuation() > this._spawnTime)
|
npc.despawn();
|
||||||
{
|
iterator.remove();
|
||||||
System.out.println("Removing NPC " + npc.getPlayerInfo().getName() + " for 3");
|
}
|
||||||
_onExpire.accept(npc);
|
else if (!npc.isAlive())
|
||||||
npc.despawn();
|
{
|
||||||
iterator.remove();
|
// Should never happen
|
||||||
|
System.out.println("Removing NPC " + npc.getPlayerInfo().getName() + " for 2");
|
||||||
|
npc.despawn();
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
else if (npc.getAliveDuation() > this._spawnTime)
|
||||||
|
{
|
||||||
|
System.out.println("Removing NPC " + npc.getPlayerInfo().getName() + " for 3");
|
||||||
|
CombatLogNPCExpiredEvent expiredEvent = new CombatLogNPCExpiredEvent(npc);
|
||||||
|
UtilServer.CallEvent(expiredEvent);
|
||||||
|
npc.despawn();
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
package nautilus.game.arcade.game.modules.combatlog;
|
package nautilus.game.arcade.game.modules.combatlog;
|
||||||
|
|
||||||
|
import net.minecraft.server.v1_8_R3.EntityCreeper;
|
||||||
|
import net.minecraft.server.v1_8_R3.EntitySkeleton;
|
||||||
|
|
||||||
import mineplex.core.common.util.UtilEnt;
|
import mineplex.core.common.util.UtilEnt;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.disguise.DisguiseManager;
|
import mineplex.core.disguise.DisguiseManager;
|
||||||
import mineplex.core.disguise.disguises.DisguiseBase;
|
import mineplex.core.disguise.disguises.DisguiseBase;
|
||||||
import mineplex.core.disguise.disguises.DisguisePlayer;
|
import mineplex.core.disguise.disguises.DisguisePlayer;
|
||||||
import mineplex.core.hologram.Hologram;
|
import mineplex.core.hologram.Hologram;
|
||||||
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.ArmorStand;
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.entity.Creeper;
|
import org.bukkit.entity.Creeper;
|
||||||
@ -21,8 +27,6 @@ import org.bukkit.metadata.FixedMetadataValue;
|
|||||||
|
|
||||||
public class CombatLogNPC
|
public class CombatLogNPC
|
||||||
{
|
{
|
||||||
private CombatLogModule _module;
|
|
||||||
|
|
||||||
private PlayerInfo _playerInfo;
|
private PlayerInfo _playerInfo;
|
||||||
|
|
||||||
private Hologram _hologram;
|
private Hologram _hologram;
|
||||||
@ -39,29 +43,21 @@ public class CombatLogNPC
|
|||||||
private EntityDamageEvent.DamageCause _lastDamageCause;
|
private EntityDamageEvent.DamageCause _lastDamageCause;
|
||||||
private Entity _lastDamager;
|
private Entity _lastDamager;
|
||||||
|
|
||||||
public CombatLogNPC(CombatLogModule module, Player player, ArcadeManager arcadeManager)
|
CombatLogNPC(CombatLogModule module, Player player)
|
||||||
{
|
{
|
||||||
this._module = module;
|
ArcadeManager arcadeManager = module.getGame().getArcadeManager();
|
||||||
|
|
||||||
_playerInfo = new PlayerInfo(player, arcadeManager);
|
_playerInfo = new PlayerInfo(player, arcadeManager);
|
||||||
|
|
||||||
_endingTime = System.currentTimeMillis() + this._module.getSpawnTime();
|
|
||||||
|
|
||||||
_disguiseManager = arcadeManager.GetDisguise();
|
_disguiseManager = arcadeManager.GetDisguise();
|
||||||
|
|
||||||
|
_spawnDate = System.currentTimeMillis();
|
||||||
|
_endingTime = System.currentTimeMillis() + module.getSpawnTime();
|
||||||
|
|
||||||
_hologram = new Hologram(arcadeManager.getHologramManager(), player.getEyeLocation().add(0, 1, 0), "Quitting in " + UtilTime.MakeStr(Math.max(_endingTime - System.currentTimeMillis(), 0)));
|
_hologram = new Hologram(arcadeManager.getHologramManager(), player.getEyeLocation().add(0, 1, 0), "Quitting in " + UtilTime.MakeStr(Math.max(_endingTime - System.currentTimeMillis(), 0)));
|
||||||
_spawnDate = 0;
|
|
||||||
_spawnHealth = player.getHealth();
|
_spawnHealth = player.getHealth();
|
||||||
_maxHealth = player.getMaxHealth();
|
_maxHealth = player.getMaxHealth();
|
||||||
_hologram.start();
|
_hologram.start();
|
||||||
}
|
_npc = spawnNpc(player);
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when the {@code _npc} associated with this CombatLogNPC is killed
|
|
||||||
* and thus drops all the owner's items.
|
|
||||||
*/
|
|
||||||
public void onDeath()
|
|
||||||
{
|
|
||||||
despawn();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update()
|
public void update()
|
||||||
@ -91,14 +87,6 @@ public class CombatLogNPC
|
|||||||
return System.currentTimeMillis() - _spawnDate;
|
return System.currentTimeMillis() - _spawnDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spawn()
|
|
||||||
{
|
|
||||||
if (_npc != null) despawn();
|
|
||||||
|
|
||||||
_npc = spawnNpc(getPlayer());
|
|
||||||
_spawnDate = System.currentTimeMillis();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void despawn()
|
public void despawn()
|
||||||
{
|
{
|
||||||
if (_disguise != null)
|
if (_disguise != null)
|
||||||
@ -130,15 +118,27 @@ public class CombatLogNPC
|
|||||||
return _playerInfo;
|
return _playerInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer()
|
public LivingEntity getNPC()
|
||||||
{
|
{
|
||||||
return _playerInfo.getPlayer();
|
return this._npc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityDamageEvent.DamageCause getLastDamageCause()
|
||||||
|
{
|
||||||
|
return _lastDamageCause;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Entity getLastDamager()
|
||||||
|
{
|
||||||
|
return _lastDamager;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LivingEntity spawnNpc(Player player)
|
private LivingEntity spawnNpc(Player player)
|
||||||
{
|
{
|
||||||
Location spawnLoc = player.getLocation();
|
Location spawnLoc = player.getLocation();
|
||||||
LivingEntity skel = player.getWorld().spawn(spawnLoc, Creeper.class);
|
EntityCreeper entityCreeper = new EntityCreeper(((CraftWorld) spawnLoc.getWorld()).getHandle());
|
||||||
|
LivingEntity skel = (LivingEntity) entityCreeper.getBukkitEntity();
|
||||||
|
skel.teleport(spawnLoc);
|
||||||
skel.setRemoveWhenFarAway(false);
|
skel.setRemoveWhenFarAway(false);
|
||||||
skel.setMetadata("CombatLogNPC", new FixedMetadataValue(_disguiseManager.getPlugin(), player.getUniqueId().toString()));
|
skel.setMetadata("CombatLogNPC", new FixedMetadataValue(_disguiseManager.getPlugin(), player.getUniqueId().toString()));
|
||||||
skel.teleport(spawnLoc);
|
skel.teleport(spawnLoc);
|
||||||
@ -165,17 +165,7 @@ public class CombatLogNPC
|
|||||||
return skel;
|
return skel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Entity getLastDamager()
|
void recordDamage(EntityDamageEvent event)
|
||||||
{
|
|
||||||
return _lastDamager;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LivingEntity getNPC()
|
|
||||||
{
|
|
||||||
return this._npc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void handleDamageEvent(EntityDamageEvent event)
|
|
||||||
{
|
{
|
||||||
this._lastDamageCause = event.getCause();
|
this._lastDamageCause = event.getCause();
|
||||||
if (event instanceof EntityDamageByEntityEvent)
|
if (event instanceof EntityDamageByEntityEvent)
|
||||||
@ -188,9 +178,4 @@ public class CombatLogNPC
|
|||||||
this._lastDamager = null;
|
this._lastDamager = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityDamageEvent.DamageCause getLastDamageCause()
|
|
||||||
{
|
|
||||||
return _lastDamageCause;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
package nautilus.game.arcade.game.modules.combatlog;
|
||||||
|
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class CombatLogNPCExpiredEvent extends Event
|
||||||
|
{
|
||||||
|
private static final HandlerList HANDLERS = new HandlerList();
|
||||||
|
|
||||||
|
private final CombatLogNPC _npc;
|
||||||
|
|
||||||
|
public CombatLogNPCExpiredEvent(CombatLogNPC npc)
|
||||||
|
{
|
||||||
|
_npc = npc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CombatLogNPC getNpc()
|
||||||
|
{
|
||||||
|
return _npc;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package nautilus.game.arcade.game.modules.combatlog;
|
||||||
|
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class CombatLogNPCKilledEvent extends Event
|
||||||
|
{
|
||||||
|
private static final HandlerList HANDLERS = new HandlerList();
|
||||||
|
|
||||||
|
private final CombatLogNPC _npc;
|
||||||
|
|
||||||
|
public CombatLogNPCKilledEvent(CombatLogNPC npc)
|
||||||
|
{
|
||||||
|
_npc = npc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CombatLogNPC getNpc()
|
||||||
|
{
|
||||||
|
return _npc;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package nautilus.game.arcade.game.modules.combatlog;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class CombatLogNPCPreSpawnEvent extends Event implements Cancellable
|
||||||
|
{
|
||||||
|
private static final HandlerList HANDLERS = new HandlerList();
|
||||||
|
|
||||||
|
private final Player _player;
|
||||||
|
|
||||||
|
private boolean _cancelled;
|
||||||
|
|
||||||
|
public CombatLogNPCPreSpawnEvent(Player player)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled()
|
||||||
|
{
|
||||||
|
return _cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean b)
|
||||||
|
{
|
||||||
|
_cancelled = b;
|
||||||
|
}
|
||||||
|
}
|
@ -28,7 +28,7 @@ public class PlayerInfo
|
|||||||
private GameTeam _team;
|
private GameTeam _team;
|
||||||
private Kit _kit;
|
private Kit _kit;
|
||||||
|
|
||||||
public PlayerInfo(Player player, ArcadeManager arcadeManager)
|
PlayerInfo(Player player, ArcadeManager arcadeManager)
|
||||||
{
|
{
|
||||||
_playerName = player.getName();
|
_playerName = player.getName();
|
||||||
_playerUuid = player.getUniqueId();
|
_playerUuid = player.getUniqueId();
|
||||||
@ -51,11 +51,6 @@ public class PlayerInfo
|
|||||||
return _playerUuid;
|
return _playerUuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer()
|
|
||||||
{
|
|
||||||
return Bukkit.getPlayerExact(_playerName);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ChatColor getTeamColor()
|
public ChatColor getTeamColor()
|
||||||
{
|
{
|
||||||
return _teamColor;
|
return _teamColor;
|
||||||
|
Loading…
Reference in New Issue
Block a user