Parties now persist cross-server, staff messages now display on the sending server for other staff for staff cross-messages.
This commit is contained in:
parent
3b0a131ca2
commit
d29b43d645
|
@ -310,6 +310,8 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
||||||
|
|
||||||
to.playSound(to.getLocation(), Sound.NOTE_PIANO, 2f, 2f);
|
to.playSound(to.getLocation(), Sound.NOTE_PIANO, 2f, 2f);
|
||||||
|
|
||||||
|
String senderRank = F.rank(_clientManager.Get(to).GetRank());
|
||||||
|
|
||||||
// Inform Admins
|
// Inform Admins
|
||||||
for (Player staff : UtilServer.getPlayers())
|
for (Player staff : UtilServer.getPlayers())
|
||||||
{
|
{
|
||||||
|
@ -321,7 +323,7 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
||||||
|
|
||||||
globalMessage.getRank() + " " + globalMessage.getSender() + C.cPurple + " -> "
|
globalMessage.getRank() + " " + globalMessage.getSender() + C.cPurple + " -> "
|
||||||
|
|
||||||
+ F.rank(_clientManager.Get(to).GetRank()) + " " + to.getName() + " "
|
+ senderRank + " " + to.getName() + " "
|
||||||
|
|
||||||
+ C.cPurple + globalMessage.getMessage());
|
+ C.cPurple + globalMessage.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -329,9 +331,8 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
||||||
}
|
}
|
||||||
|
|
||||||
// Message the sender
|
// Message the sender
|
||||||
RedisMessageCallback message = new RedisMessageCallback(globalMessage, C.cPurple + "-> "
|
RedisMessageCallback message = new RedisMessageCallback(globalMessage, senderRank, to.getName(), C.cPurple + "-> "
|
||||||
+ F.rank(_clientManager.Get(to).GetRank()) + " " + to.getName() + " " + C.cPurple
|
+ senderRank + " " + to.getName() + " " + C.cPurple + globalMessage.getMessage());
|
||||||
+ globalMessage.getMessage(), to.getName());
|
|
||||||
|
|
||||||
message.publish();
|
message.publish();
|
||||||
}
|
}
|
||||||
|
@ -342,7 +343,7 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
||||||
if (canMessage != null)
|
if (canMessage != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
RedisMessageCallback message = new RedisMessageCallback(globalMessage, canMessage, null);
|
RedisMessageCallback message = new RedisMessageCallback(globalMessage, null, null, canMessage);
|
||||||
|
|
||||||
message.publish();
|
message.publish();
|
||||||
|
|
||||||
|
@ -356,8 +357,8 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
||||||
to.playSound(to.getLocation(), Sound.NOTE_PIANO, 2f, 2f);
|
to.playSound(to.getLocation(), Sound.NOTE_PIANO, 2f, 2f);
|
||||||
|
|
||||||
// Message the sender
|
// Message the sender
|
||||||
RedisMessageCallback message = new RedisMessageCallback(globalMessage, C.cGold + "§l" + globalMessage.getSender()
|
RedisMessageCallback message = new RedisMessageCallback(globalMessage, null, to.getName(), C.cGold + "§l"
|
||||||
+ " > " + to.getName() + C.cYellow + " §l" + globalMessage.getMessage(), to.getName());
|
+ globalMessage.getSender() + " > " + to.getName() + C.cYellow + " §l" + globalMessage.getMessage());
|
||||||
|
|
||||||
message.publish();
|
message.publish();
|
||||||
}
|
}
|
||||||
|
@ -391,6 +392,29 @@ public class MessageManager extends MiniClientPlugin<ClientMessage>
|
||||||
Get(target).LastTo = message.getLastReplied();
|
Get(target).LastTo = message.getLastReplied();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (message.isStaffMessage() && message.getLastReplied() != null)
|
||||||
|
{
|
||||||
|
String recevierRank = F.rank(_clientManager.Get(target).GetRank());
|
||||||
|
|
||||||
|
// Inform Admins
|
||||||
|
for (Player staff : UtilServer.getPlayers())
|
||||||
|
{
|
||||||
|
if (!target.equals(staff))
|
||||||
|
{
|
||||||
|
if (_clientManager.Get(staff).GetRank().Has(Rank.HELPER))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(staff,
|
||||||
|
|
||||||
|
recevierRank + " " + message.getLastReplied() + C.cPurple + " -> "
|
||||||
|
|
||||||
|
+ message.getRank() + " " + message.getLastReplied() + " "
|
||||||
|
|
||||||
|
+ C.cPurple + message.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,16 +12,16 @@ public class RedisMessageCallback extends ServerCommand
|
||||||
private String _message;
|
private String _message;
|
||||||
private String _setLastMessage;
|
private String _setLastMessage;
|
||||||
private String _target;
|
private String _target;
|
||||||
|
private String _rank;
|
||||||
private UUID _uuid;
|
private UUID _uuid;
|
||||||
private boolean _staffMessage;
|
|
||||||
|
|
||||||
public RedisMessageCallback(RedisMessage globalMessage, String message, String setLastReplied)
|
public RedisMessageCallback(RedisMessage globalMessage, String rank, String receivedPlayer, String message)
|
||||||
{
|
{
|
||||||
_target = globalMessage.getSender();
|
_target = globalMessage.getSender();
|
||||||
_message = message;
|
_message = message;
|
||||||
_setLastMessage = setLastReplied;
|
_setLastMessage = receivedPlayer;
|
||||||
_uuid = globalMessage.getUUID();
|
_uuid = globalMessage.getUUID();
|
||||||
_staffMessage = globalMessage.isStaffMessage();
|
_rank = rank;
|
||||||
|
|
||||||
if (globalMessage.getSendingServer() != null)
|
if (globalMessage.getSendingServer() != null)
|
||||||
{
|
{
|
||||||
|
@ -29,9 +29,14 @@ public class RedisMessageCallback extends ServerCommand
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getRank()
|
||||||
|
{
|
||||||
|
return _rank;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isStaffMessage()
|
public boolean isStaffMessage()
|
||||||
{
|
{
|
||||||
return _staffMessage;
|
return getRank() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLastReplied()
|
public String getLastReplied()
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package mineplex.hub.party;
|
package mineplex.core.party;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
@ -10,6 +11,10 @@ import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.NautHashMap;
|
import mineplex.core.common.util.NautHashMap;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
|
import mineplex.core.party.redis.RedisPartyData;
|
||||||
|
import mineplex.serverdata.Region;
|
||||||
|
import mineplex.serverdata.ServerGroup;
|
||||||
|
import mineplex.serverdata.ServerManager;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
@ -21,7 +26,8 @@ import org.bukkit.scoreboard.Scoreboard;
|
||||||
|
|
||||||
public class Party
|
public class Party
|
||||||
{
|
{
|
||||||
private PartyManager Manager;
|
private PartyManager _manager;
|
||||||
|
private boolean _isHub;
|
||||||
|
|
||||||
private String _creator = null;
|
private String _creator = null;
|
||||||
|
|
||||||
|
@ -33,11 +39,31 @@ public class Party
|
||||||
private ArrayList<String> _scoreboardLast = new ArrayList<String>();
|
private ArrayList<String> _scoreboardLast = new ArrayList<String>();
|
||||||
|
|
||||||
private long _partyOfflineTimer = -1;
|
private long _partyOfflineTimer = -1;
|
||||||
|
private long _informNewLeaderTimer = -1;
|
||||||
|
|
||||||
|
public Party(PartyManager manager, RedisPartyData partyData)
|
||||||
|
{
|
||||||
|
this(manager);
|
||||||
|
|
||||||
|
_players = new ArrayList(Arrays.asList(partyData.getPlayers()));
|
||||||
|
_creator = partyData.getLeader();
|
||||||
|
}
|
||||||
|
|
||||||
public Party(PartyManager manager)
|
public Party(PartyManager manager)
|
||||||
{
|
{
|
||||||
Manager = manager;
|
_manager = manager;
|
||||||
|
Region region = manager.GetPlugin().getConfig().getBoolean("serverstatus.us") ? Region.US : Region.EU;
|
||||||
|
String groupName = manager.GetPlugin().getConfig().getString("serverstatus.group");
|
||||||
|
|
||||||
|
ServerGroup serverGroup = ServerManager.getServerRepository(region).getServerGroup(groupName);
|
||||||
|
|
||||||
|
if (serverGroup == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_isHub = !serverGroup.getArcadeGroup();
|
||||||
|
|
||||||
|
if (_isHub)
|
||||||
|
{
|
||||||
// Scoreboard
|
// Scoreboard
|
||||||
_scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
|
_scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
|
||||||
_scoreboardObj = _scoreboard.registerNewObjective("Party", "dummy");
|
_scoreboardObj = _scoreboard.registerNewObjective("Party", "dummy");
|
||||||
|
@ -59,7 +85,8 @@ public class Party
|
||||||
// Add Players
|
// Add Players
|
||||||
for (Player player : Bukkit.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
_scoreboard.getTeam(Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
_scoreboard.getTeam(_manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,8 +109,11 @@ public class Party
|
||||||
Announce(F.elem(player.getName()) + " has joined the party!");
|
Announce(F.elem(player.getName()) + " has joined the party!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_isHub)
|
||||||
|
{
|
||||||
_scoreboard.getTeam("Party").addPlayer(player);
|
_scoreboard.getTeam("Party").addPlayer(player);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void InviteParty(Player player, boolean inviteeInParty)
|
public void InviteParty(Player player, boolean inviteeInParty)
|
||||||
{
|
{
|
||||||
|
@ -105,14 +135,14 @@ public class Party
|
||||||
// Instruct
|
// Instruct
|
||||||
if (inviteeInParty)
|
if (inviteeInParty)
|
||||||
{
|
{
|
||||||
UtilPlayer.message(player, F.main("Party", "Type " + F.link("/party leave") + " then " + F.link("/party " + GetLeader()) + " to join."));
|
UtilPlayer.message(player,
|
||||||
|
F.main("Party", "Type " + F.link("/party leave") + " then " + F.link("/party " + GetLeader()) + " to join."));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UtilPlayer.message(player, F.main("Party", "Type " + F.link("/party " + GetLeader()) + " to join."));
|
UtilPlayer.message(player, F.main("Party", "Type " + F.link("/party " + GetLeader()) + " to join."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 1.5f);
|
player.playSound(player.getLocation(), Sound.NOTE_PLING, 1f, 1.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,8 +155,11 @@ public class Party
|
||||||
|
|
||||||
_players.remove(player.getName());
|
_players.remove(player.getName());
|
||||||
|
|
||||||
|
if (_isHub)
|
||||||
|
{
|
||||||
// Set Scoreboard
|
// Set Scoreboard
|
||||||
_scoreboard.getTeam(Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
_scoreboard.getTeam(_manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
||||||
|
}
|
||||||
|
|
||||||
if (leader && _players.size() > 0)
|
if (leader && _players.size() > 0)
|
||||||
{
|
{
|
||||||
|
@ -143,12 +176,15 @@ public class Party
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayerJoin(Player player)
|
public void PlayerJoin(Player player)
|
||||||
|
{
|
||||||
|
if (_isHub)
|
||||||
{
|
{
|
||||||
// Scoreboard
|
// Scoreboard
|
||||||
if (_players.contains(player.getName()))
|
if (_players.contains(player.getName()))
|
||||||
_scoreboard.getTeam("Party").addPlayer(player);
|
_scoreboard.getTeam("Party").addPlayer(player);
|
||||||
else if (Manager.GetClients().Get(player) != null)
|
else if (_manager.GetClients().Get(player) != null)
|
||||||
_scoreboard.getTeam(Manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
_scoreboard.getTeam(_manager.GetClients().Get(player).GetRank().Name).addPlayer(player);
|
||||||
|
}
|
||||||
|
|
||||||
if (_creator.equals(player.getName()))
|
if (_creator.equals(player.getName()))
|
||||||
{
|
{
|
||||||
|
@ -167,9 +203,12 @@ public class Party
|
||||||
_players.remove(player.getName());
|
_players.remove(player.getName());
|
||||||
_players.add(0, player.getName());
|
_players.add(0, player.getName());
|
||||||
|
|
||||||
|
if (_informNewLeaderTimer < System.currentTimeMillis())
|
||||||
|
{
|
||||||
Announce("Party Leadership passed on to " + F.name(GetLeader()) + ".");
|
Announce("Party Leadership passed on to " + F.name(GetLeader()) + ".");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Announce(String message)
|
public void Announce(String message)
|
||||||
{
|
{
|
||||||
|
@ -234,6 +273,8 @@ public class Party
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateScoreboard()
|
public void UpdateScoreboard()
|
||||||
|
{
|
||||||
|
if (_isHub)
|
||||||
{
|
{
|
||||||
_scoreboardObj.setDisplayName(GetLeader() + "'s Party");
|
_scoreboardObj.setDisplayName(GetLeader() + "'s Party");
|
||||||
|
|
||||||
|
@ -297,6 +338,7 @@ public class Party
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean IsDead()
|
public boolean IsDead()
|
||||||
{
|
{
|
||||||
|
@ -314,7 +356,6 @@ public class Party
|
||||||
online++;
|
online++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// One or Less Members Online - Expirey Countdown
|
// One or Less Members Online - Expirey Countdown
|
||||||
if (online <= 1)
|
if (online <= 1)
|
||||||
{
|
{
|
||||||
|
@ -324,7 +365,8 @@ public class Party
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (UtilTime.elapsed(_partyOfflineTimer, 3600000)) // 1 hour
|
if (UtilTime.elapsed(_partyOfflineTimer, online == 0 ? 15000 : 120000)) // 15 seconds for no players, 2 minutes if
|
||||||
|
// one player.
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -333,4 +375,14 @@ public class Party
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetWaitingTime()
|
||||||
|
{
|
||||||
|
_partyOfflineTimer = System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void switchedServer()
|
||||||
|
{
|
||||||
|
_informNewLeaderTimer = System.currentTimeMillis() + 5000;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,8 +1,20 @@
|
||||||
package mineplex.hub.party;
|
package mineplex.core.party;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import mineplex.core.MiniPlugin;
|
||||||
|
import mineplex.core.account.CoreClientManager;
|
||||||
|
import mineplex.core.party.commands.PartyCommand;
|
||||||
|
import mineplex.core.party.redis.RedisPartyData;
|
||||||
|
import mineplex.core.party.redis.RedisPartyHandler;
|
||||||
|
import mineplex.core.portal.Portal;
|
||||||
|
import mineplex.core.portal.ServerTransferEvent;
|
||||||
|
import mineplex.core.preferences.PreferencesManager;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import mineplex.serverdata.ServerCommandManager;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
@ -10,26 +22,24 @@ import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import mineplex.core.MiniPlugin;
|
|
||||||
import mineplex.core.account.CoreClientManager;
|
|
||||||
import mineplex.core.preferences.PreferencesManager;
|
|
||||||
import mineplex.core.updater.UpdateType;
|
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
|
||||||
import mineplex.hub.party.commands.PartyCommand;
|
|
||||||
|
|
||||||
public class PartyManager extends MiniPlugin
|
public class PartyManager extends MiniPlugin
|
||||||
{
|
{
|
||||||
private CoreClientManager _clientManager;
|
private CoreClientManager _clientManager;
|
||||||
private PreferencesManager _preferenceManager;
|
private PreferencesManager _preferenceManager;
|
||||||
|
private Portal _portal;
|
||||||
|
|
||||||
public HashSet<Party> _parties = new HashSet<Party>();
|
public HashSet<Party> _parties = new HashSet<Party>();
|
||||||
|
|
||||||
public PartyManager(JavaPlugin plugin, CoreClientManager clientManager, PreferencesManager preferenceManager)
|
public PartyManager(JavaPlugin plugin, Portal portal, CoreClientManager clientManager, PreferencesManager preferenceManager)
|
||||||
{
|
{
|
||||||
super("Party Manager", plugin);
|
super("Party Manager", plugin);
|
||||||
|
|
||||||
|
_portal = portal;
|
||||||
_clientManager = clientManager;
|
_clientManager = clientManager;
|
||||||
_preferenceManager = preferenceManager;
|
_preferenceManager = preferenceManager;
|
||||||
|
|
||||||
|
ServerCommandManager.getInstance().registerCommandType("RedisPartyData", RedisPartyData.class,
|
||||||
|
new RedisPartyHandler(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -57,6 +67,46 @@ public class PartyManager extends MiniPlugin
|
||||||
return party;
|
return party;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addParty(Party party)
|
||||||
|
{
|
||||||
|
for (Party parties : _parties)
|
||||||
|
{
|
||||||
|
if (parties.GetLeader().equalsIgnoreCase(party.GetLeader()))
|
||||||
|
{
|
||||||
|
parties.resetWaitingTime();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_parties.add(party);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void serverTransfer(ServerTransferEvent event)
|
||||||
|
{
|
||||||
|
for (Party party : _parties)
|
||||||
|
{
|
||||||
|
if (party.GetLeader().equals(event.getPlayer().getName()))
|
||||||
|
{
|
||||||
|
party.switchedServer();
|
||||||
|
|
||||||
|
RedisPartyData data = new RedisPartyData(party, event.getServer());
|
||||||
|
data.publish();
|
||||||
|
|
||||||
|
for (Player player : party.GetPlayersOnline())
|
||||||
|
{
|
||||||
|
if (player != event.getPlayer())
|
||||||
|
{
|
||||||
|
_portal.sendPlayerToServer(player, event.getServer());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void PlayerJoin(PlayerJoinEvent event)
|
public void PlayerJoin(PlayerJoinEvent event)
|
||||||
{
|
{
|
|
@ -1,15 +1,15 @@
|
||||||
package mineplex.hub.party.commands;
|
package mineplex.core.party.commands;
|
||||||
|
|
||||||
import org.bukkit.Sound;
|
|
||||||
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.common.util.F;
|
||||||
import mineplex.core.common.util.UtilEnt;
|
import mineplex.core.common.util.UtilEnt;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.hub.party.Party;
|
import mineplex.core.party.Party;
|
||||||
import mineplex.hub.party.PartyManager;
|
import mineplex.core.party.PartyManager;
|
||||||
|
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class PartyCommand extends CommandBase<PartyManager>
|
public class PartyCommand extends CommandBase<PartyManager>
|
||||||
{
|
{
|
|
@ -0,0 +1,29 @@
|
||||||
|
package mineplex.core.party.redis;
|
||||||
|
|
||||||
|
import mineplex.core.party.Party;
|
||||||
|
import mineplex.serverdata.ServerCommand;
|
||||||
|
|
||||||
|
public class RedisPartyData extends ServerCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
private String[] _players;
|
||||||
|
private String _leader;
|
||||||
|
|
||||||
|
public RedisPartyData(Party party, String newServer)
|
||||||
|
{
|
||||||
|
_players = party.GetPlayers().toArray(new String[0]);
|
||||||
|
_leader = party.GetLeader();
|
||||||
|
|
||||||
|
setTargetServers(newServer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getPlayers()
|
||||||
|
{
|
||||||
|
return _players;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLeader()
|
||||||
|
{
|
||||||
|
return _leader;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package mineplex.core.party.redis;
|
||||||
|
|
||||||
|
import mineplex.core.party.Party;
|
||||||
|
import mineplex.core.party.PartyManager;
|
||||||
|
import mineplex.serverdata.CommandCallback;
|
||||||
|
import mineplex.serverdata.ServerCommand;
|
||||||
|
|
||||||
|
public class RedisPartyHandler implements CommandCallback
|
||||||
|
{
|
||||||
|
private PartyManager _partyManager;
|
||||||
|
|
||||||
|
public RedisPartyHandler(PartyManager partyManager)
|
||||||
|
{
|
||||||
|
_partyManager = partyManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(ServerCommand command)
|
||||||
|
{
|
||||||
|
RedisPartyData data = (RedisPartyData) command;
|
||||||
|
|
||||||
|
_partyManager.addParty(new Party(_partyManager, data));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -80,6 +80,9 @@ public class Portal extends MiniPlugin
|
||||||
if (_connectingPlayers.contains(player.getName()))
|
if (_connectingPlayers.contains(player.getName()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
ServerTransferEvent event = new ServerTransferEvent(player, serverName);
|
||||||
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
|
|
||||||
final boolean override = serverName.equalsIgnoreCase("Lobby");
|
final boolean override = serverName.equalsIgnoreCase("Lobby");
|
||||||
final Rank playerRank = _clientManager.Get(player).GetRank();
|
final Rank playerRank = _clientManager.Get(player).GetRank();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package mineplex.core.portal;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
public class ServerTransferEvent extends Event
|
||||||
|
{
|
||||||
|
|
||||||
|
private static final HandlerList _handlers = new HandlerList();
|
||||||
|
private Player _player;
|
||||||
|
private String _server;
|
||||||
|
|
||||||
|
public ServerTransferEvent(Player player, String server)
|
||||||
|
{
|
||||||
|
_player = player;
|
||||||
|
_server = server;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers()
|
||||||
|
{
|
||||||
|
return _handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList()
|
||||||
|
{
|
||||||
|
return _handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer()
|
||||||
|
{
|
||||||
|
return _player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServer()
|
||||||
|
{
|
||||||
|
return _server;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -26,6 +26,7 @@ import mineplex.core.monitor.LagMeter;
|
||||||
import mineplex.core.movement.Movement;
|
import mineplex.core.movement.Movement;
|
||||||
import mineplex.core.npc.NpcManager;
|
import mineplex.core.npc.NpcManager;
|
||||||
import mineplex.core.packethandler.PacketHandler;
|
import mineplex.core.packethandler.PacketHandler;
|
||||||
|
import mineplex.core.party.PartyManager;
|
||||||
import mineplex.core.personalServer.PersonalServerManager;
|
import mineplex.core.personalServer.PersonalServerManager;
|
||||||
import mineplex.core.pet.PetManager;
|
import mineplex.core.pet.PetManager;
|
||||||
import mineplex.core.portal.Portal;
|
import mineplex.core.portal.Portal;
|
||||||
|
@ -42,7 +43,6 @@ import mineplex.core.teleport.Teleport;
|
||||||
import mineplex.core.updater.FileUpdater;
|
import mineplex.core.updater.FileUpdater;
|
||||||
import mineplex.core.updater.Updater;
|
import mineplex.core.updater.Updater;
|
||||||
import mineplex.hub.modules.StackerManager;
|
import mineplex.hub.modules.StackerManager;
|
||||||
import mineplex.hub.party.PartyManager;
|
|
||||||
import mineplex.hub.poll.PollManager;
|
import mineplex.hub.poll.PollManager;
|
||||||
import mineplex.hub.queue.QueueManager;
|
import mineplex.hub.queue.QueueManager;
|
||||||
import mineplex.hub.server.ServerManager;
|
import mineplex.hub.server.ServerManager;
|
||||||
|
@ -98,9 +98,10 @@ public class Hub extends JavaPlugin implements IRelation
|
||||||
|
|
||||||
//Main Modules
|
//Main Modules
|
||||||
ServerStatusManager serverStatusManager = new ServerStatusManager(this, clientManager, new LagMeter(this, clientManager));
|
ServerStatusManager serverStatusManager = new ServerStatusManager(this, clientManager, new LagMeter(this, clientManager));
|
||||||
PartyManager partyManager = new PartyManager(this, clientManager, preferenceManager);
|
|
||||||
|
|
||||||
Portal portal = new Portal(this, clientManager, serverStatusManager.getCurrentServerName());
|
Portal portal = new Portal(this, clientManager, serverStatusManager.getCurrentServerName());
|
||||||
|
|
||||||
|
PartyManager partyManager = new PartyManager(this, portal, clientManager, preferenceManager);
|
||||||
AntiHack.Initialize(this, punish, portal, preferenceManager, clientManager);
|
AntiHack.Initialize(this, punish, portal, preferenceManager, clientManager);
|
||||||
|
|
||||||
IgnoreManager ignoreManager = new IgnoreManager(this, clientManager, preferenceManager, portal);
|
IgnoreManager ignoreManager = new IgnoreManager(this, clientManager, preferenceManager, portal);
|
||||||
|
|
|
@ -70,6 +70,8 @@ import mineplex.core.inventory.InventoryManager;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
import mineplex.core.mount.MountManager;
|
import mineplex.core.mount.MountManager;
|
||||||
import mineplex.core.mount.event.MountActivateEvent;
|
import mineplex.core.mount.event.MountActivateEvent;
|
||||||
|
import mineplex.core.party.Party;
|
||||||
|
import mineplex.core.party.PartyManager;
|
||||||
import mineplex.core.pet.PetManager;
|
import mineplex.core.pet.PetManager;
|
||||||
import mineplex.core.portal.Portal;
|
import mineplex.core.portal.Portal;
|
||||||
import mineplex.core.preferences.PreferencesManager;
|
import mineplex.core.preferences.PreferencesManager;
|
||||||
|
@ -92,8 +94,6 @@ import mineplex.hub.modules.TextManager;
|
||||||
import mineplex.hub.modules.UHCManager;
|
import mineplex.hub.modules.UHCManager;
|
||||||
import mineplex.hub.modules.VisibilityManager;
|
import mineplex.hub.modules.VisibilityManager;
|
||||||
import mineplex.hub.modules.WorldManager;
|
import mineplex.hub.modules.WorldManager;
|
||||||
import mineplex.hub.party.Party;
|
|
||||||
import mineplex.hub.party.PartyManager;
|
|
||||||
import mineplex.hub.poll.PollManager;
|
import mineplex.hub.poll.PollManager;
|
||||||
import mineplex.hub.tutorial.TutorialManager;
|
import mineplex.hub.tutorial.TutorialManager;
|
||||||
import mineplex.minecraft.game.classcombat.Skill.event.SkillTriggerEvent;
|
import mineplex.minecraft.game.classcombat.Skill.event.SkillTriggerEvent;
|
||||||
|
|
|
@ -17,9 +17,9 @@ import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.util.NautHashMap;
|
import mineplex.core.common.util.NautHashMap;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.elo.EloManager;
|
import mineplex.core.elo.EloManager;
|
||||||
|
import mineplex.core.party.PartyManager;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.hub.party.PartyManager;
|
|
||||||
|
|
||||||
public class QueueManager extends MiniPlugin
|
public class QueueManager extends MiniPlugin
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,10 +6,10 @@ import java.util.List;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
|
import mineplex.core.party.Party;
|
||||||
import mineplex.core.shop.item.IButton;
|
import mineplex.core.shop.item.IButton;
|
||||||
import mineplex.core.shop.item.ShopItem;
|
import mineplex.core.shop.item.ShopItem;
|
||||||
import mineplex.core.shop.page.ShopPageBase;
|
import mineplex.core.shop.page.ShopPageBase;
|
||||||
import mineplex.hub.party.Party;
|
|
||||||
import mineplex.hub.queue.PlayerMatchStatus;
|
import mineplex.hub.queue.PlayerMatchStatus;
|
||||||
import mineplex.hub.queue.QueueManager;
|
import mineplex.hub.queue.QueueManager;
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,11 @@ import java.util.Iterator;
|
||||||
import mineplex.core.account.CoreClientManager;
|
import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.party.Party;
|
||||||
import mineplex.core.shop.ShopBase;
|
import mineplex.core.shop.ShopBase;
|
||||||
import mineplex.core.shop.page.ShopPageBase;
|
import mineplex.core.shop.page.ShopPageBase;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.hub.party.Party;
|
|
||||||
import mineplex.hub.queue.QueueManager;
|
import mineplex.hub.queue.QueueManager;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
|
|
@ -42,6 +42,8 @@ import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.common.util.UtilTime.TimeUnit;
|
import mineplex.core.common.util.UtilTime.TimeUnit;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import mineplex.core.party.Party;
|
||||||
|
import mineplex.core.party.PartyManager;
|
||||||
import mineplex.core.portal.Portal;
|
import mineplex.core.portal.Portal;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
import mineplex.core.shop.ShopBase;
|
import mineplex.core.shop.ShopBase;
|
||||||
|
@ -50,8 +52,6 @@ import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import mineplex.hub.HubManager;
|
import mineplex.hub.HubManager;
|
||||||
import mineplex.hub.modules.StackerManager;
|
import mineplex.hub.modules.StackerManager;
|
||||||
import mineplex.hub.party.Party;
|
|
||||||
import mineplex.hub.party.PartyManager;
|
|
||||||
import mineplex.hub.queue.QueueManager;
|
import mineplex.hub.queue.QueueManager;
|
||||||
import mineplex.hub.queue.ui.QueueShop;
|
import mineplex.hub.queue.ui.QueueShop;
|
||||||
import mineplex.hub.server.ui.LobbyShop;
|
import mineplex.hub.server.ui.LobbyShop;
|
||||||
|
@ -505,53 +505,7 @@ public class ServerManager extends MiniPlugin
|
||||||
{
|
{
|
||||||
Party party = _partyManager.GetParty(player);
|
Party party = _partyManager.GetParty(player);
|
||||||
|
|
||||||
if (party != null)
|
if (party == null || player.getName().equals(party.GetLeader()))
|
||||||
{
|
|
||||||
if (player.getName().equals(party.GetLeader()))
|
|
||||||
{
|
|
||||||
for (String name : party.GetPlayers())
|
|
||||||
{
|
|
||||||
Player partyPlayer = UtilPlayer.searchExact(name);
|
|
||||||
|
|
||||||
if (partyPlayer == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!_clientManager.Get(partyPlayer).GetRank().Has(Rank.MODERATOR) && serverInfo.CurrentPlayers >= serverInfo.MaxPlayers * 1.5)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (_clientManager.Get(partyPlayer).GetRank().Has(Rank.ULTRA) || _donationManager.Get(partyPlayer.getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (serverInfo.Name.contains("T_"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
partyPlayer.leaveVehicle();
|
|
||||||
partyPlayer.eject();
|
|
||||||
|
|
||||||
_portal.sendPlayerToServer(partyPlayer, serverInfo.Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (String name : party.GetPlayers())
|
|
||||||
{
|
|
||||||
Player partyPlayer = UtilPlayer.searchExact(name);
|
|
||||||
|
|
||||||
if (partyPlayer == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!_clientManager.Get(partyPlayer).GetRank().Has(Rank.MODERATOR) && serverInfo.CurrentPlayers >= serverInfo.MaxPlayers * 1.5)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (_clientManager.Get(partyPlayer).GetRank().Has(Rank.ULTRA) || _donationManager.Get(partyPlayer.getName()).OwnsUnknownPackage(serverInfo.ServerType + " ULTRA"))
|
|
||||||
{
|
|
||||||
partyPlayer.leaveVehicle();
|
|
||||||
partyPlayer.eject();
|
|
||||||
|
|
||||||
_portal.sendPlayerToServer(partyPlayer, serverInfo.Name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
player.leaveVehicle();
|
player.leaveVehicle();
|
||||||
player.eject();
|
player.eject();
|
||||||
|
|
|
@ -7,9 +7,9 @@ import mineplex.core.account.CoreClientManager;
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.donation.DonationManager;
|
import mineplex.core.donation.DonationManager;
|
||||||
|
import mineplex.core.party.Party;
|
||||||
import mineplex.core.shop.ShopBase;
|
import mineplex.core.shop.ShopBase;
|
||||||
import mineplex.core.shop.page.ShopPageBase;
|
import mineplex.core.shop.page.ShopPageBase;
|
||||||
import mineplex.hub.party.Party;
|
|
||||||
import mineplex.hub.server.ServerManager;
|
import mineplex.hub.server.ServerManager;
|
||||||
|
|
||||||
public class ServerNpcShop extends ShopBase<ServerManager>
|
public class ServerNpcShop extends ShopBase<ServerManager>
|
||||||
|
|
|
@ -31,6 +31,7 @@ import mineplex.core.monitor.LagMeter;
|
||||||
import mineplex.core.mount.MountManager;
|
import mineplex.core.mount.MountManager;
|
||||||
import mineplex.core.npc.NpcManager;
|
import mineplex.core.npc.NpcManager;
|
||||||
import mineplex.core.packethandler.PacketHandler;
|
import mineplex.core.packethandler.PacketHandler;
|
||||||
|
import mineplex.core.party.PartyManager;
|
||||||
import mineplex.core.pet.PetManager;
|
import mineplex.core.pet.PetManager;
|
||||||
import mineplex.core.portal.Portal;
|
import mineplex.core.portal.Portal;
|
||||||
import mineplex.core.preferences.PreferencesManager;
|
import mineplex.core.preferences.PreferencesManager;
|
||||||
|
@ -123,6 +124,8 @@ public class Arcade extends JavaPlugin
|
||||||
CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null);
|
CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null);
|
||||||
cosmeticManager.setInterfaceSlot(7);
|
cosmeticManager.setInterfaceSlot(7);
|
||||||
|
|
||||||
|
PartyManager partyManager = new PartyManager(this, portal, _clientManager, preferenceManager);
|
||||||
|
|
||||||
//Arcade Manager
|
//Arcade Manager
|
||||||
_gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, disguiseManager, creature, teleport, new Blood(this), portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, webServerAddress);
|
_gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, disguiseManager, creature, teleport, new Blood(this), portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, webServerAddress);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue