forked from MagicBane/Server
Lore Rules
This commit is contained in:
@@ -200,5 +200,13 @@ public enum GuildManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static Boolean meetsLoreRequirements(Guild guild, PlayerCharacter player){
|
||||||
|
Enum.GuildCharterType charter = guild.getGuildType();
|
||||||
|
if(charter.requiredClasses.contains(player.absPromotionClass))
|
||||||
|
if(charter.requiredRaces.contains(player.absRace))
|
||||||
|
if(charter.sexRequired.contains(player.absGender))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,6 +170,19 @@ public enum PowersManager {
|
|||||||
public static void usePower(final PerformActionMsg msg, ClientConnection origin,
|
public static void usePower(final PerformActionMsg msg, ClientConnection origin,
|
||||||
boolean sendCastToSelf) {
|
boolean sendCastToSelf) {
|
||||||
|
|
||||||
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
PowersBase pb = PowersManager.powersBaseByToken.get(msg.getPowerUsedID());
|
||||||
|
PlayerCharacter caster = origin.getPlayerCharacter();
|
||||||
|
PlayerCharacter target = PlayerCharacter.getFromCache(msg.getTargetID());
|
||||||
|
if(pb != null && pb.isHarmful == false) {
|
||||||
|
if (caster.guild.equals(Guild.getErrantGuild()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (target != null && caster.guild.getGuildType().equals(target.guild.getGuildType()) == false)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (usePowerA(msg, origin, sendCastToSelf)) {
|
if (usePowerA(msg, origin, sendCastToSelf)) {
|
||||||
// Cast failed for some reason, reset timer
|
// Cast failed for some reason, reset timer
|
||||||
|
|
||||||
@@ -1258,7 +1271,13 @@ public enum PowersManager {
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if (pc.guild.getGuildType().equals(target.guild.getGuildType()) == false) {
|
||||||
|
ChatManager.chatInfoError(pc,
|
||||||
|
"Cannot summon player outside your charter.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
PerformActionMsg pam = new PerformActionMsg(msg.getPowerToken(), msg
|
PerformActionMsg pam = new PerformActionMsg(msg.getPowerToken(), msg
|
||||||
.getTrains(), msg.getSourceType(), msg.getSourceID(), target
|
.getTrains(), msg.getSourceType(), msg.getSourceID(), target
|
||||||
.getObjectType().ordinal(), target.getObjectUUID(), 0f, 0f, 0f, 1, 0);
|
.getObjectType().ordinal(), target.getObjectUUID(), 0f, 0f, 0f, 1, 0);
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ package engine.net.client.handlers;
|
|||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.Enum.GameObjectType;
|
import engine.Enum.GameObjectType;
|
||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
|
import engine.gameManager.ConfigManager;
|
||||||
import engine.gameManager.GroupManager;
|
import engine.gameManager.GroupManager;
|
||||||
|
import engine.gameManager.GuildManager;
|
||||||
import engine.gameManager.SessionManager;
|
import engine.gameManager.SessionManager;
|
||||||
import engine.net.Dispatch;
|
import engine.net.Dispatch;
|
||||||
import engine.net.DispatchMessage;
|
import engine.net.DispatchMessage;
|
||||||
@@ -21,6 +23,7 @@ import engine.net.client.msg.ClientNetMsg;
|
|||||||
import engine.net.client.msg.group.GroupInviteMsg;
|
import engine.net.client.msg.group.GroupInviteMsg;
|
||||||
import engine.net.client.msg.group.GroupUpdateMsg;
|
import engine.net.client.msg.group.GroupUpdateMsg;
|
||||||
import engine.objects.Group;
|
import engine.objects.Group;
|
||||||
|
import engine.objects.Guild;
|
||||||
import engine.objects.PlayerCharacter;
|
import engine.objects.PlayerCharacter;
|
||||||
|
|
||||||
public class GroupInviteHandler extends AbstractClientMsgHandler {
|
public class GroupInviteHandler extends AbstractClientMsgHandler {
|
||||||
@@ -103,7 +106,15 @@ public class GroupInviteHandler extends AbstractClientMsgHandler {
|
|||||||
if (target.isIgnoringPlayer(source))
|
if (target.isIgnoringPlayer(source))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if(source.guild.equals(Guild.getErrantGuild()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (source.guild.getGuildType() != null) {
|
||||||
|
if (source.guild.getGuildType().equals(target.guild.getGuildType()) == false)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
// dont block invites to people already in a group and
|
// dont block invites to people already in a group and
|
||||||
// dont check for pending invites, the client does it
|
// dont check for pending invites, the client does it
|
||||||
// Send invite message to target
|
// Send invite message to target
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import engine.Enum;
|
|||||||
import engine.Enum.GameObjectType;
|
import engine.Enum.GameObjectType;
|
||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
import engine.gameManager.ChatManager;
|
import engine.gameManager.ChatManager;
|
||||||
|
import engine.gameManager.ConfigManager;
|
||||||
import engine.gameManager.GuildManager;
|
import engine.gameManager.GuildManager;
|
||||||
import engine.gameManager.SessionManager;
|
import engine.gameManager.SessionManager;
|
||||||
import engine.net.Dispatch;
|
import engine.net.Dispatch;
|
||||||
@@ -124,7 +125,12 @@ public class InviteToGuildHandler extends AbstractClientMsgHandler {
|
|||||||
ErrorPopupMsg.sendErrorPopup(sourcePlayer, 135);// you do not meet the level required for this SWORN guild
|
ErrorPopupMsg.sendErrorPopup(sourcePlayer, 135);// you do not meet the level required for this SWORN guild
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if (GuildManager.meetsLoreRequirements(sourcePlayer.guild, targetPlayer) == false) {
|
||||||
|
ChatManager.chatGuildError(sourcePlayer,targetPlayer.getFirstName() + " does not meet charter requirements!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
targetPlayer.setLastGuildToInvite(sourcePlayer.getGuild().getObjectUUID());
|
targetPlayer.setLastGuildToInvite(sourcePlayer.getGuild().getObjectUUID());
|
||||||
|
|
||||||
// setup guild invite message to send to targetPlayer
|
// setup guild invite message to send to targetPlayer
|
||||||
|
|||||||
@@ -12,9 +12,7 @@ package engine.net.client.handlers;
|
|||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.Enum.GameObjectType;
|
import engine.Enum.GameObjectType;
|
||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
import engine.gameManager.ChatManager;
|
import engine.gameManager.*;
|
||||||
import engine.gameManager.DbManager;
|
|
||||||
import engine.gameManager.SessionManager;
|
|
||||||
import engine.net.Dispatch;
|
import engine.net.Dispatch;
|
||||||
import engine.net.DispatchMessage;
|
import engine.net.DispatchMessage;
|
||||||
import engine.net.client.ClientConnection;
|
import engine.net.client.ClientConnection;
|
||||||
@@ -111,7 +109,12 @@ public class InviteToSubHandler extends AbstractClientMsgHandler {
|
|||||||
sendChat(source, "This Guild can't be subbed.");
|
sendChat(source, "This Guild can't be subbed.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if (source.guild.getGuildType().equals(target.guild.getGuildType()) == false){
|
||||||
|
sendChat(source, "You Must Be The Same Charter To Form A Nation.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
//all tests passed, let's send invite.
|
//all tests passed, let's send invite.
|
||||||
|
|
||||||
if (target.getClientConnection() != null) {
|
if (target.getClientConnection() != null) {
|
||||||
|
|||||||
@@ -11,17 +11,13 @@ package engine.net.client.handlers;
|
|||||||
|
|
||||||
import engine.Enum.GuildHistoryType;
|
import engine.Enum.GuildHistoryType;
|
||||||
import engine.exception.MsgSendException;
|
import engine.exception.MsgSendException;
|
||||||
import engine.gameManager.ChatManager;
|
import engine.gameManager.*;
|
||||||
import engine.gameManager.SessionManager;
|
|
||||||
import engine.net.Dispatch;
|
import engine.net.Dispatch;
|
||||||
import engine.net.DispatchMessage;
|
import engine.net.DispatchMessage;
|
||||||
import engine.net.client.ClientConnection;
|
import engine.net.client.ClientConnection;
|
||||||
import engine.net.client.msg.ClientNetMsg;
|
import engine.net.client.msg.ClientNetMsg;
|
||||||
import engine.net.client.msg.guild.LeaveGuildMsg;
|
import engine.net.client.msg.guild.LeaveGuildMsg;
|
||||||
import engine.objects.Guild;
|
import engine.objects.*;
|
||||||
import engine.objects.GuildStatusController;
|
|
||||||
import engine.objects.Mine;
|
|
||||||
import engine.objects.PlayerCharacter;
|
|
||||||
|
|
||||||
public class LeaveGuildHandler extends AbstractClientMsgHandler {
|
public class LeaveGuildHandler extends AbstractClientMsgHandler {
|
||||||
|
|
||||||
@@ -65,7 +61,10 @@ public class LeaveGuildHandler extends AbstractClientMsgHandler {
|
|||||||
ChatManager.chatGuildInfo(oldGuild, playerCharacter.getFirstName() + " has left the guild.");
|
ChatManager.chatGuildInfo(oldGuild, playerCharacter.getFirstName() + " has left the guild.");
|
||||||
|
|
||||||
oldGuild.removePlayer(playerCharacter, GuildHistoryType.LEAVE);
|
oldGuild.removePlayer(playerCharacter, GuildHistoryType.LEAVE);
|
||||||
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if(GroupManager.getGroup(playerCharacter) != null)
|
||||||
|
GroupManager.getGroup(playerCharacter).removeGroupMember(playerCharacter);
|
||||||
|
}
|
||||||
// Send message back to client
|
// Send message back to client
|
||||||
msg.setMessage("You have left the guild.");
|
msg.setMessage("You have left the guild.");
|
||||||
dispatch = Dispatch.borrow(playerCharacter, msg);
|
dispatch = Dispatch.borrow(playerCharacter, msg);
|
||||||
|
|||||||
@@ -325,8 +325,15 @@ public class City extends AbstractWorldObject {
|
|||||||
|
|
||||||
if (city.open && city.getTOL() != null && city.getTOL().getRank() > 4) {
|
if (city.open && city.getTOL() != null && city.getTOL().getRank() > 4) {
|
||||||
|
|
||||||
if (!BuildingManager.IsPlayerHostile(city.getTOL(), pc))
|
if (!BuildingManager.IsPlayerHostile(city.getTOL(), pc)) {
|
||||||
cities.add(city); //verify nation or guild is same
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if(city.getGuild().getGuildType().equals(pc.guild.getGuildType())){
|
||||||
|
cities.add(city);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
cities.add(city); //verify nation or guild is same
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (Guild.sameNationExcludeErrant(city.getGuild(), pcG))
|
} else if (Guild.sameNationExcludeErrant(city.getGuild(), pcG))
|
||||||
cities.add(city);
|
cities.add(city);
|
||||||
|
|
||||||
@@ -345,7 +352,13 @@ public class City extends AbstractWorldObject {
|
|||||||
cities.add(city);
|
cities.add(city);
|
||||||
|
|
||||||
} else if (pc.getLevel() >= g.getTeleportMin() && pc.getLevel() <= g.getTeleportMax())
|
} else if (pc.getLevel() >= g.getTeleportMin() && pc.getLevel() <= g.getTeleportMax())
|
||||||
cities.add(city);
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if(city.getGuild().getGuildType().equals(pc.guild.getGuildType())){
|
||||||
|
cities.add(city);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
cities.add(city); //verify nation or guild is same
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -398,12 +411,24 @@ public class City extends AbstractWorldObject {
|
|||||||
if (city.isNpc == 1)
|
if (city.isNpc == 1)
|
||||||
if (city.isNoobIsle == 1) {
|
if (city.isNoobIsle == 1) {
|
||||||
if (playerCharacter.getLevel() < 21)
|
if (playerCharacter.getLevel() < 21)
|
||||||
cities.add(city);
|
cities.add(city); //verify nation or guild is same
|
||||||
} else if (playerCharacter.getLevel() > 9)
|
} else if (playerCharacter.getLevel() > 9)
|
||||||
cities.add(city);
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if(city.getGuild().getGuildType().equals(playerCharacter.guild.getGuildType())){
|
||||||
|
cities.add(city);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
cities.add(city); //verify nation or guild is same
|
||||||
|
}
|
||||||
} else if (playerCharacter.getLevel() >= guild.getRepledgeMin() && playerCharacter.getLevel() <= guild.getRepledgeMax()) {
|
} else if (playerCharacter.getLevel() >= guild.getRepledgeMin() && playerCharacter.getLevel() <= guild.getRepledgeMax()) {
|
||||||
|
|
||||||
cities.add(city);
|
if(ConfigManager.MB_RULESET.getValue() == "LORE") {
|
||||||
|
if(city.getGuild().getGuildType().equals(playerCharacter.guild.getGuildType())){
|
||||||
|
cities.add(city);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
cities.add(city); //verify nation or guild is same
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user