clan claim visualizer
This commit is contained in:
parent
584a02ae3e
commit
39daf969fd
@ -17,13 +17,15 @@ import mineplex.core.common.util.UtilServer;
|
|||||||
import mineplex.core.common.util.UtilWorld;
|
import mineplex.core.common.util.UtilWorld;
|
||||||
import mineplex.game.clans.clans.event.ClanCreatedEvent;
|
import mineplex.game.clans.clans.event.ClanCreatedEvent;
|
||||||
import mineplex.game.clans.clans.event.ClanDeleteEvent;
|
import mineplex.game.clans.clans.event.ClanDeleteEvent;
|
||||||
|
import mineplex.game.clans.clans.event.ClanJoinEvent;
|
||||||
|
import mineplex.game.clans.clans.event.ClanLeaveEvent;
|
||||||
import mineplex.game.clans.clans.event.ClanSetHomeEvent;
|
import mineplex.game.clans.clans.event.ClanSetHomeEvent;
|
||||||
import mineplex.game.clans.clans.scoreboard.ClansScoreboardManager;
|
import mineplex.game.clans.clans.scoreboard.ClansScoreboardManager;
|
||||||
import mineplex.game.clans.clans.tntGenerator.TntGenerator;
|
import mineplex.game.clans.clans.tntGenerator.TntGenerator;
|
||||||
import mineplex.game.clans.core.war.ClanWarData;
|
|
||||||
import mineplex.game.clans.core.repository.ClanRepository;
|
import mineplex.game.clans.core.repository.ClanRepository;
|
||||||
import mineplex.game.clans.core.repository.ClanTerritory;
|
import mineplex.game.clans.core.repository.ClanTerritory;
|
||||||
import mineplex.game.clans.core.repository.tokens.ClanToken;
|
import mineplex.game.clans.core.repository.tokens.ClanToken;
|
||||||
|
import mineplex.game.clans.core.war.ClanWarData;
|
||||||
|
|
||||||
public class ClansDataAccessLayer
|
public class ClansDataAccessLayer
|
||||||
{
|
{
|
||||||
@ -201,6 +203,15 @@ public class ClansDataAccessLayer
|
|||||||
|
|
||||||
public void join(final ClanInfo clan, final Player player, final ClanRole role, final Callback<Boolean> callback)
|
public void join(final ClanInfo clan, final Player player, final ClanRole role, final Callback<Boolean> callback)
|
||||||
{
|
{
|
||||||
|
ClanJoinEvent event = new ClanJoinEvent(clan, player);
|
||||||
|
|
||||||
|
UtilServer.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
if (event.isCancelled())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
runAsync(new Runnable()
|
runAsync(new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -259,6 +270,15 @@ public class ClansDataAccessLayer
|
|||||||
{
|
{
|
||||||
if (clan == null) return;
|
if (clan == null) return;
|
||||||
|
|
||||||
|
ClanLeaveEvent event = new ClanLeaveEvent(clan, clansPlayer);
|
||||||
|
|
||||||
|
UtilServer.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
if (event.isCancelled())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
runAsync(new Runnable()
|
runAsync(new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -66,6 +66,7 @@ import mineplex.core.updater.UpdateType;
|
|||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.game.clans.clans.ClanTips.TipType;
|
import mineplex.game.clans.clans.ClanTips.TipType;
|
||||||
import mineplex.game.clans.clans.ClansUtility.ClanRelation;
|
import mineplex.game.clans.clans.ClansUtility.ClanRelation;
|
||||||
|
import mineplex.game.clans.clans.claimview.ClaimVisualizer;
|
||||||
import mineplex.game.clans.clans.commands.ClanManagementCommand;
|
import mineplex.game.clans.clans.commands.ClanManagementCommand;
|
||||||
import mineplex.game.clans.clans.commands.ClansAllyChatCommand;
|
import mineplex.game.clans.clans.commands.ClansAllyChatCommand;
|
||||||
import mineplex.game.clans.clans.commands.ClansChatCommand;
|
import mineplex.game.clans.clans.commands.ClansChatCommand;
|
||||||
@ -304,6 +305,8 @@ public class ClansManager extends MiniClientPlugin<ClientClan>implements IRelati
|
|||||||
loadClan(token);
|
loadClan(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
new ClaimVisualizer(plugin, this);
|
||||||
|
|
||||||
// RedisDataRepository(ConnectionData writeConn, ConnectionData
|
// RedisDataRepository(ConnectionData writeConn, ConnectionData
|
||||||
// readConn, Region region, Class<T> elementType, String elementLabel)
|
// readConn, Region region, Class<T> elementType, String elementLabel)
|
||||||
// Initialize default region factions and territory
|
// Initialize default region factions and territory
|
||||||
@ -672,7 +675,7 @@ public class ClansManager extends MiniClientPlugin<ClientClan>implements IRelati
|
|||||||
if (clan == null)
|
if (clan == null)
|
||||||
{
|
{
|
||||||
event.setFormat(rank + C.cYellow + "%1$s " + C.cWhite + "%2$s");
|
event.setFormat(rank + C.cYellow + "%1$s " + C.cWhite + "%2$s");
|
||||||
System.out.println(_clientManager.Get(event.getPlayer()).GetRank().name() + " " + event.getPlayer().getName() + " " + (event.getPlayer().getGameMode().equals(GameMode.CREATIVE) ? C.cRed + "Creative " : " ") + event.getMessage());
|
System.out.println(_clientManager.Get(event.getPlayer()).GetRank().name() + " " + event.getPlayer().getName() + " " + event.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -692,7 +695,7 @@ public class ClansManager extends MiniClientPlugin<ClientClan>implements IRelati
|
|||||||
String message = event.getMessage();
|
String message = event.getMessage();
|
||||||
message = _chat.getFilteredMessage(event.getPlayer(), message);
|
message = _chat.getFilteredMessage(event.getPlayer(), message);
|
||||||
ClanRelation rel = _clanUtility.rel(clan, otherClan);
|
ClanRelation rel = _clanUtility.rel(clan, otherClan);
|
||||||
String formatted = rank + rel.getColor(true) + clan.getName() + " " + rel.getColor(false) + event.getPlayer().getName() + " " + (event.getPlayer().getGameMode().equals(GameMode.CREATIVE) ? C.cRed + "Creative " : " ") + C.cWhite + message;
|
String formatted = rank + rel.getColor(true) + clan.getName() + " " + rel.getColor(false) + event.getPlayer().getName() + " " + C.cWhite + message;
|
||||||
other.sendMessage(formatted);
|
other.sendMessage(formatted);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1084,7 +1084,7 @@ public class ClansUtility
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Event
|
// Event
|
||||||
PlayerUnClaimTerritoryEvent event = new PlayerUnClaimTerritoryEvent(caller, caller.getLocation().getChunk());
|
PlayerUnClaimTerritoryEvent event = new PlayerUnClaimTerritoryEvent(caller, caller.getLocation().getChunk(), ownerClan);
|
||||||
|
|
||||||
UtilServer.getServer().getPluginManager().callEvent(event);
|
UtilServer.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
@ -0,0 +1,328 @@
|
|||||||
|
package mineplex.game.clans.clans.claimview;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Chunk;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerKickEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.MiniPlugin;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.NautHashMap;
|
||||||
|
import mineplex.core.common.util.UtilBlock;
|
||||||
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilParticle;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||||
|
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.common.util.UtilWorld;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import mineplex.game.clans.clans.ClanInfo;
|
||||||
|
import mineplex.game.clans.clans.ClansManager;
|
||||||
|
import mineplex.game.clans.clans.claimview.commands.ClaimVisualizeCommand;
|
||||||
|
import mineplex.game.clans.clans.event.ClanDisbandedEvent;
|
||||||
|
import mineplex.game.clans.clans.event.ClanLeaveEvent;
|
||||||
|
import mineplex.game.clans.clans.event.PlayerClaimTerritoryEvent;
|
||||||
|
import mineplex.game.clans.clans.event.PlayerUnClaimTerritoryEvent;
|
||||||
|
import net.minecraft.server.v1_8_R3.EnumDirection;
|
||||||
|
|
||||||
|
public class ClaimVisualizer extends MiniPlugin
|
||||||
|
{
|
||||||
|
private ClansManager _clansManager;
|
||||||
|
|
||||||
|
private List<String> _visualizing;
|
||||||
|
|
||||||
|
private NautHashMap<ClanInfo, NautHashMap<String, VisualizedChunkData>> _calculated;
|
||||||
|
|
||||||
|
public ClaimVisualizer(JavaPlugin plugin, ClansManager clansManager)
|
||||||
|
{
|
||||||
|
super("Claim Visualizer", plugin);
|
||||||
|
|
||||||
|
_clansManager = clansManager;
|
||||||
|
_visualizing = new ArrayList<>();
|
||||||
|
_calculated = new NautHashMap<>();
|
||||||
|
|
||||||
|
for (ClanInfo clan : _clansManager.getClanMap().values())
|
||||||
|
{
|
||||||
|
_calculated.put(clan, new NautHashMap<String, VisualizedChunkData>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addCommands()
|
||||||
|
{
|
||||||
|
addCommand(new ClaimVisualizeCommand(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void cleanup(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.SLOWER)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void runVisualization(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.SEC)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (String name : _visualizing)
|
||||||
|
{
|
||||||
|
Player player = Bukkit.getPlayer(name);
|
||||||
|
|
||||||
|
if (player != null && _clansManager.isInClan(player))
|
||||||
|
{
|
||||||
|
visualize(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void visualize(Player player)
|
||||||
|
{
|
||||||
|
for (String serialized : _clansManager.getClan(player).getClaimSet())
|
||||||
|
{
|
||||||
|
if (!_calculated.get(_clansManager.getClan(player)).containsKey(serialized))
|
||||||
|
{
|
||||||
|
calculate(_clansManager.getClan(player), serialized);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
draw(player, _calculated.get(_clansManager.getClan(player)).values());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void draw(Player player, Collection<VisualizedChunkData> chunks)
|
||||||
|
{
|
||||||
|
for (VisualizedChunkData chunk : chunks)
|
||||||
|
{
|
||||||
|
if (!chunk.getChunk().getWorld().equals(player.getWorld()))
|
||||||
|
{
|
||||||
|
// return not break because a clan can't have claims in different worlds.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UtilMath.offset2d(chunk.getChunk().getBlock(0, 0, 0).getLocation(), player.getLocation()) > 36)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int x = 0; x < 16; x++)
|
||||||
|
{
|
||||||
|
for (int z = 0; z < 16; z++)
|
||||||
|
{
|
||||||
|
if (z == 0 || z == 15 || x == 0 || x == 15)
|
||||||
|
{
|
||||||
|
if (!chunk.shouldDisplay(x, z))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Block block = chunk.getChunk().getBlock(x, 0, z);
|
||||||
|
|
||||||
|
UtilParticle.PlayParticle(ParticleType.HAPPY_VILLAGER,
|
||||||
|
new Location(
|
||||||
|
chunk.getChunk().getWorld(),
|
||||||
|
block.getX() + .5,
|
||||||
|
Math.max(UtilBlock.getHighest(player.getWorld(), block.getX(), block.getZ()).getY(), player.getLocation().getY()) + .5,
|
||||||
|
block.getZ() + .5),
|
||||||
|
new Vector(0f, 0f, 0f), 0f, 1, ViewDist.NORMAL, player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void calculate(ClanInfo clan, String serialized)
|
||||||
|
{
|
||||||
|
Chunk chunk = UtilWorld.strToChunk(serialized);
|
||||||
|
|
||||||
|
List<EnumDirection> dirs = new ArrayList<>();
|
||||||
|
|
||||||
|
if (!clan.getClaimSet().contains(UtilWorld.chunkToStr(chunk.getWorld().getChunkAt(chunk.getX(), chunk.getZ() - 1))))
|
||||||
|
{
|
||||||
|
dirs.add(EnumDirection.NORTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!clan.getClaimSet().contains(UtilWorld.chunkToStr(chunk.getWorld().getChunkAt(chunk.getX() + 1, chunk.getZ()))))
|
||||||
|
{
|
||||||
|
dirs.add(EnumDirection.EAST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!clan.getClaimSet().contains(UtilWorld.chunkToStr(chunk.getWorld().getChunkAt(chunk.getX(), chunk.getZ() + 1))))
|
||||||
|
{
|
||||||
|
dirs.add(EnumDirection.SOUTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!clan.getClaimSet().contains(UtilWorld.chunkToStr(chunk.getWorld().getChunkAt(chunk.getX() - 1, chunk.getZ()))))
|
||||||
|
{
|
||||||
|
dirs.add(EnumDirection.WEST);
|
||||||
|
}
|
||||||
|
|
||||||
|
VisualizedChunkData cached = new VisualizedChunkData(chunk, dirs);
|
||||||
|
|
||||||
|
_calculated.get(clan).put(serialized, cached);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onQuit(PlayerQuitEvent event)
|
||||||
|
{
|
||||||
|
if (isVisualizing(event.getPlayer()))
|
||||||
|
{
|
||||||
|
disableVisualizer(event.getPlayer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onKick(PlayerKickEvent event)
|
||||||
|
{
|
||||||
|
if (isVisualizing(event.getPlayer()))
|
||||||
|
{
|
||||||
|
disableVisualizer(event.getPlayer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onLeave(ClanLeaveEvent event)
|
||||||
|
{
|
||||||
|
if (isVisualizing(event.getPlayer().getPlayerName()))
|
||||||
|
{
|
||||||
|
disableVisualizer(event.getPlayer().getPlayerName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onClanDisband(ClanDisbandedEvent event)
|
||||||
|
{
|
||||||
|
for (Player player : event.getClan().getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (isVisualizing(player))
|
||||||
|
{
|
||||||
|
disableVisualizer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onUnclaim(PlayerUnClaimTerritoryEvent event)
|
||||||
|
{
|
||||||
|
_calculated.clear();
|
||||||
|
|
||||||
|
for (String serialized : event.getClan().getClaimSet())
|
||||||
|
{
|
||||||
|
calculate(event.getClan(), serialized);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getClan().getClaimCount() == 1)
|
||||||
|
{
|
||||||
|
for (Player player : event.getClan().getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (isVisualizing(player))
|
||||||
|
{
|
||||||
|
disableVisualizer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onClaim(PlayerClaimTerritoryEvent event)
|
||||||
|
{
|
||||||
|
_calculated.clear();
|
||||||
|
|
||||||
|
for (String serialized : event.getClan().getClaimSet())
|
||||||
|
{
|
||||||
|
calculate(event.getClan(), serialized);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isVisualizing(Player player)
|
||||||
|
{
|
||||||
|
return _visualizing.contains(player.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isVisualizing(String name)
|
||||||
|
{
|
||||||
|
return _visualizing.contains(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enableVisualizer(String name)
|
||||||
|
{
|
||||||
|
enableVisualizer(UtilServer.getServer().getPlayer(name));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void disableVisualizer(String name)
|
||||||
|
{
|
||||||
|
disableVisualizer(UtilServer.getServer().getPlayer(name));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void toggleVisualizer(Player player)
|
||||||
|
{
|
||||||
|
if (_visualizing.contains(player.getName()))
|
||||||
|
{
|
||||||
|
disableVisualizer(player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
enableVisualizer(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enableVisualizer(Player player)
|
||||||
|
{
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_clansManager.isInClan(player))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(player, F.main("Clans", "You must be in a clan to visualize claims."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ClanInfo clan = _clansManager.getClan(player);
|
||||||
|
|
||||||
|
if (clan.getClaimCount() == 0)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(player, F.main("Clans", "Your Clan does not have any claims!"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_visualizing.add(player.getName());
|
||||||
|
UtilPlayer.message(player, F.main("Clans", "You are now visualizing your claims."));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void disableVisualizer(Player player)
|
||||||
|
{
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_visualizing.contains(player.getName()))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(player, F.main("Clans", "You are anot visualizing your claims."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_visualizing.remove(player.getName());
|
||||||
|
UtilPlayer.message(player, F.main("Clans", "You are no longer visualizing your claims."));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package mineplex.game.clans.clans.claimview;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Chunk;
|
||||||
|
|
||||||
|
import net.minecraft.server.v1_8_R3.EnumDirection;
|
||||||
|
|
||||||
|
public class VisualizedChunkData
|
||||||
|
{
|
||||||
|
private List<EnumDirection> _displayable;
|
||||||
|
private Chunk _chunk;
|
||||||
|
|
||||||
|
public VisualizedChunkData(Chunk chunk, List<EnumDirection> dir)
|
||||||
|
{
|
||||||
|
_chunk = chunk;
|
||||||
|
_displayable = dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldDisplay(int x, int z)
|
||||||
|
{
|
||||||
|
if (z == 15 && !_displayable.contains(EnumDirection.SOUTH))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (x == 15 && !_displayable.contains(EnumDirection.EAST))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (x == 0 && !_displayable.contains(EnumDirection.WEST))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (z == 0 && !_displayable.contains(EnumDirection.NORTH))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Chunk getChunk() {
|
||||||
|
return _chunk;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package mineplex.game.clans.clans.claimview.commands;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import mineplex.core.command.CommandBase;
|
||||||
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.game.clans.clans.claimview.ClaimVisualizer;
|
||||||
|
|
||||||
|
public class ClaimVisualizeCommand extends CommandBase<ClaimVisualizer>
|
||||||
|
{
|
||||||
|
public ClaimVisualizeCommand(ClaimVisualizer plugin)
|
||||||
|
{
|
||||||
|
super(plugin, Rank.ALL, "showclaims");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void Execute(Player caller, String[] args)
|
||||||
|
{
|
||||||
|
Plugin.toggleVisualizer(caller);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -38,7 +38,6 @@ import mineplex.game.clans.items.legendaries.WindBlade;
|
|||||||
|
|
||||||
public class ClanManagementCommand extends CommandBase<ClansManager>
|
public class ClanManagementCommand extends CommandBase<ClansManager>
|
||||||
{
|
{
|
||||||
|
|
||||||
private ClansManager _clansManager;
|
private ClansManager _clansManager;
|
||||||
|
|
||||||
public ClanManagementCommand(ClansManager plugin)
|
public ClanManagementCommand(ClansManager plugin)
|
||||||
|
@ -6,6 +6,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import mineplex.core.command.CommandBase;
|
import mineplex.core.command.CommandBase;
|
||||||
import mineplex.core.common.Rank;
|
import mineplex.core.common.Rank;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.task.TaskManager;
|
import mineplex.core.task.TaskManager;
|
||||||
import mineplex.game.clans.clans.ClansManager;
|
import mineplex.game.clans.clans.ClansManager;
|
||||||
import mineplex.game.clans.tutorials.Tutorial;
|
import mineplex.game.clans.tutorials.Tutorial;
|
||||||
@ -43,7 +44,7 @@ public class RestartTutCommand extends CommandBase<TutorialManager>
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TutorialManager.Instance.sendTutorialMsg(caller, "You must be in a safezone to restart the tutorial.");
|
TutorialManager.Instance.sendTutorialMsg(caller, F.main("Clans", "You must be in a safezone to restart the tutorial."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
package mineplex.game.clans.clans.event;
|
||||||
|
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import mineplex.game.clans.clans.ClanInfo;
|
||||||
|
import mineplex.game.clans.clans.ClansPlayer;
|
||||||
|
|
||||||
|
public class ClanLeaveEvent extends Event
|
||||||
|
{
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
|
private ClansPlayer _player;
|
||||||
|
|
||||||
|
private ClanInfo _clan;
|
||||||
|
|
||||||
|
private boolean _cancelled;
|
||||||
|
|
||||||
|
public ClanLeaveEvent(ClanInfo clan, ClansPlayer clansPlayer)
|
||||||
|
{
|
||||||
|
_player = clansPlayer;
|
||||||
|
|
||||||
|
_clan = clan;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClansPlayer getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClanInfo getClan()
|
||||||
|
{
|
||||||
|
return _clan;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCancelled(boolean cancelled)
|
||||||
|
{
|
||||||
|
_cancelled = cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancelled()
|
||||||
|
{
|
||||||
|
return _cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -5,19 +5,23 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import mineplex.game.clans.clans.ClanInfo;
|
||||||
|
|
||||||
public class PlayerUnClaimTerritoryEvent extends Event
|
public class PlayerUnClaimTerritoryEvent extends Event
|
||||||
{
|
{
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
private Player _unClaimer;
|
private Player _unClaimer;
|
||||||
private Chunk _unClaimedChunk;
|
private Chunk _unClaimedChunk;
|
||||||
|
private ClanInfo _clan;
|
||||||
|
|
||||||
private boolean _cancelled;
|
private boolean _cancelled;
|
||||||
|
|
||||||
public PlayerUnClaimTerritoryEvent(Player unClaimer, Chunk unClaimedChunk)
|
public PlayerUnClaimTerritoryEvent(Player unClaimer, Chunk unClaimedChunk, ClanInfo clan)
|
||||||
{
|
{
|
||||||
_unClaimer = unClaimer;
|
_unClaimer = unClaimer;
|
||||||
_unClaimedChunk = unClaimedChunk;
|
_unClaimedChunk = unClaimedChunk;
|
||||||
|
_clan = clan;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getUnClaimer()
|
public Player getUnClaimer()
|
||||||
@ -35,6 +39,11 @@ public class PlayerUnClaimTerritoryEvent extends Event
|
|||||||
_cancelled = cancelled;
|
_cancelled = cancelled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ClanInfo getClan()
|
||||||
|
{
|
||||||
|
return _clan;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isCancelled()
|
public boolean isCancelled()
|
||||||
{
|
{
|
||||||
return _cancelled;
|
return _cancelled;
|
||||||
|
@ -101,7 +101,8 @@ public class TutorialTask<T extends Tutorial> implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
//@EventHandler
|
||||||
|
//todo: fix the multiline subtitles
|
||||||
public void displaySubtasks(UpdateEvent event)
|
public void displaySubtasks(UpdateEvent event)
|
||||||
{
|
{
|
||||||
if (!event.getType().equals(UpdateType.SEC))
|
if (!event.getType().equals(UpdateType.SEC))
|
||||||
|
@ -61,11 +61,6 @@ public class TaskMakingMoney extends TutorialTask<TutorialGettingStarted>
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ClansManager.getInstance().isInClan(event.getPlayer()))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!event.getItem().getType().equals(Material.CARROT_ITEM))
|
if (!event.getItem().getType().equals(Material.CARROT_ITEM))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user