Initial Repository Push
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
||||
// Magicbane Emulator Project © 2013 - 2022
|
||||
// www.magicbane.com
|
||||
|
||||
package engine.gameManager;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.Enum.BuildingGroup;
|
||||
import engine.Enum.GuildHistoryType;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.guild.AcceptInviteToGuildMsg;
|
||||
import engine.net.client.msg.guild.GuildInfoMsg;
|
||||
import engine.objects.*;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
public enum GuildManager {
|
||||
|
||||
GUILDMANAGER;
|
||||
|
||||
//Guild Error Message
|
||||
public static final int FAILURE_TO_SWEAR_GUILD = 45; //45: Failure to swear guild
|
||||
public static final int MUST_LEAVE_GUILD = 75;//75: You must leave your current guild before you can repledge
|
||||
public static final int NO_CHARTER_FOUND = 148; //148: Unable to find a matching petition to complete guild creation
|
||||
public static final int PROFANE_NAME = 149; //149: Guild name fails profanity check
|
||||
public static final int PROFANE_MOTTO = 150; //150: Guild motto fails profanity check
|
||||
public static final int UNIQUE_NAME = 151;//151: Guild name is not unique
|
||||
public static final int UNIQUE_CREST = 152;//152: Guild crest is not unique
|
||||
public static final int CREST_RESERVED = 153; //153: Guild crest is reserved
|
||||
public static final int CREST_COLOR_ERROR = 154; //154: All three crest colors cannot be the same
|
||||
|
||||
public static boolean joinGuild(PlayerCharacter pc, Guild guild, GuildHistoryType historyType) {
|
||||
return joinGuild(pc, guild, 0, historyType);
|
||||
}
|
||||
|
||||
//Used when repledging
|
||||
public static boolean joinGuild(PlayerCharacter pc, Guild guild, int cityID, GuildHistoryType historyType) {
|
||||
return joinGuild(pc, guild, cityID, true,historyType);
|
||||
}
|
||||
|
||||
public static boolean joinGuild(PlayerCharacter playerCharacter, Guild guild, int cityID, boolean fromTeleportScreen, GuildHistoryType historyType) {
|
||||
|
||||
// Member variable delcaration
|
||||
|
||||
ClientConnection origin;
|
||||
AcceptInviteToGuildMsg msg;
|
||||
Dispatch dispatch;
|
||||
|
||||
if (playerCharacter == null || guild == null)
|
||||
return false;
|
||||
|
||||
// Member variable assignment
|
||||
|
||||
origin = SessionManager.getClientConnection(playerCharacter);
|
||||
|
||||
if (origin == null)
|
||||
return false;
|
||||
|
||||
if (playerCharacter.getGuild().isErrant() == false && GuildStatusController.isGuildLeader(playerCharacter.getGuildStatus()))
|
||||
return false;
|
||||
|
||||
if (playerCharacter.getGuild() != null && playerCharacter.getGuild().isGuildLeader(playerCharacter.getObjectUUID()))
|
||||
return false;
|
||||
|
||||
if (playerCharacter.getGuild() != null && !playerCharacter.getGuild().isErrant()){
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(playerCharacter.getGuildUUID(), playerCharacter, DateTime.now(), GuildHistoryType.LEAVE)){
|
||||
GuildHistory guildHistory = new GuildHistory(playerCharacter.getGuildUUID(),playerCharacter.getGuild().getName(),DateTime.now(), GuildHistoryType.LEAVE) ;
|
||||
playerCharacter.getGuildHistory().add(guildHistory);
|
||||
}
|
||||
}
|
||||
|
||||
playerCharacter.setInnerCouncil(false);
|
||||
playerCharacter.setGuildLeader(false);
|
||||
playerCharacter.setGuild(guild);
|
||||
|
||||
// Cleanup guild stuff
|
||||
playerCharacter.resetGuildStatuses();
|
||||
|
||||
// send success message to client
|
||||
if (fromTeleportScreen && guild.isNPCGuild())
|
||||
playerCharacter.setFullMember(true);
|
||||
|
||||
msg = new AcceptInviteToGuildMsg(guild.getObjectUUID(), 1, 0);
|
||||
|
||||
if (fromTeleportScreen) {
|
||||
dispatch = Dispatch.borrow(playerCharacter, msg);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||
}
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(guild.getObjectUUID(), playerCharacter, DateTime.now(), historyType)){
|
||||
GuildHistory guildHistory = new GuildHistory(guild.getObjectUUID(),guild.getName(),DateTime.now(), historyType) ;
|
||||
playerCharacter.getGuildHistory().add(guildHistory);
|
||||
}
|
||||
|
||||
DispatchMessage.sendToAllInRange(playerCharacter, new GuildInfoMsg(playerCharacter, guild, 2));
|
||||
|
||||
// Send guild join message
|
||||
ChatManager.chatGuildInfo(playerCharacter,
|
||||
playerCharacter.getFirstName() + " has joined the guild");
|
||||
|
||||
playerCharacter.incVer();
|
||||
|
||||
return true;
|
||||
// TODO update player to world
|
||||
}
|
||||
|
||||
public static void enterWorldMOTD(PlayerCharacter pc) {
|
||||
|
||||
Guild guild;
|
||||
Guild nation;
|
||||
|
||||
if (pc == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
guild = pc.getGuild();
|
||||
|
||||
if (guild == null || guild.getObjectUUID() == 0) // Don't send to errant
|
||||
return;
|
||||
|
||||
// Send Guild MOTD
|
||||
String motd = guild.getMOTD();
|
||||
if (motd.length() > 0) {
|
||||
ChatManager.chatGuildMOTD(pc, motd);
|
||||
}
|
||||
|
||||
// Send Nation MOTD
|
||||
nation = guild.getNation();
|
||||
|
||||
if (nation != null) {
|
||||
if (nation.getObjectUUID() != 0) { // Don't send to errant nation
|
||||
motd = nation.getMOTD();
|
||||
if (motd.length() > 0) {
|
||||
ChatManager.chatNationMOTD(pc, motd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Send IC MOTD if player is IC
|
||||
if (GuildStatusController.isInnerCouncil(pc.getGuildStatus())) {
|
||||
motd = guild.getICMOTD();
|
||||
if (motd.length() > 0) {
|
||||
ChatManager.chatICMOTD(pc, motd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Updates the bind point for everyone in guild
|
||||
|
||||
public static void updateAllGuildBinds(Guild guild, City city) {
|
||||
|
||||
if (guild == null)
|
||||
return;
|
||||
|
||||
int cityID = (city != null) ? city.getObjectUUID() : 0;
|
||||
|
||||
|
||||
|
||||
//update binds ingame
|
||||
|
||||
|
||||
for (PlayerCharacter playerCharacter : Guild.GuildRoster(guild)) {
|
||||
boolean updateBindBuilding = false;
|
||||
|
||||
Building oldBoundBuilding = BuildingManager.getBuildingFromCache(playerCharacter.getBindBuildingID());
|
||||
|
||||
if (oldBoundBuilding == null || oldBoundBuilding.getBlueprint() == null || oldBoundBuilding.getBlueprint().getBuildingGroup().equals(BuildingGroup.TOL))
|
||||
updateBindBuilding = true;
|
||||
|
||||
|
||||
|
||||
if (updateBindBuilding){
|
||||
Building bindBuilding = null;
|
||||
if (city != null)
|
||||
if (city.getTOL() != null)
|
||||
bindBuilding = city.getTOL();
|
||||
|
||||
if (bindBuilding == null)
|
||||
bindBuilding = PlayerCharacter.getBindBuildingForGuild(playerCharacter);
|
||||
|
||||
playerCharacter.setBindBuildingID(bindBuilding != null ? bindBuilding.getObjectUUID() : 0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//This updates tags for all online players in a guild.
|
||||
public static void updateAllGuildTags(Guild guild) {
|
||||
|
||||
if (guild == null)
|
||||
return;
|
||||
|
||||
for (PlayerCharacter player : SessionManager.getAllActivePlayerCharacters()) {
|
||||
|
||||
if (player.getGuild().equals(guild))
|
||||
DispatchMessage.sendToAllInRange(player, new GuildInfoMsg(player , guild, 2));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user