forked from MagicBane/Server
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.4 KiB
90 lines
2.4 KiB
package engine.net.client.handlers; |
|
|
|
import engine.Enum.AllianceType; |
|
import engine.exception.MsgSendException; |
|
import engine.gameManager.ChatManager; |
|
import engine.gameManager.SessionManager; |
|
import engine.net.Dispatch; |
|
import engine.net.client.ClientConnection; |
|
import engine.net.client.msg.AllianceChangeMsg; |
|
import engine.net.client.msg.ClientNetMsg; |
|
import engine.net.client.msg.RecommendNationMsg; |
|
import engine.objects.Guild; |
|
import engine.objects.PlayerCharacter; |
|
|
|
/* |
|
* @Author: |
|
* @Summary: Processes application protocol message which handles |
|
* protecting and unprotecting city assets |
|
*/ |
|
public class RecommendNationMsgHandler extends AbstractClientMsgHandler { |
|
|
|
public RecommendNationMsgHandler() { |
|
super(RecommendNationMsg.class); |
|
} |
|
|
|
@Override |
|
protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException { |
|
|
|
// Member variable declaration |
|
|
|
PlayerCharacter player; |
|
RecommendNationMsg msg; |
|
|
|
|
|
// Member variable assignment |
|
|
|
msg = (RecommendNationMsg) baseMsg; |
|
|
|
player = SessionManager.getPlayerCharacter(origin); |
|
|
|
if (player == null) |
|
return true; |
|
|
|
|
|
RecommendNationMsgHandler.RecommendNation(player.getGuild(), Guild.getGuild(msg.getGuildID()), msg, origin); |
|
|
|
|
|
|
|
|
|
// dispatch = Dispatch.borrow(player, baseMsg); |
|
// DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); |
|
|
|
return true; |
|
|
|
} |
|
|
|
private static void RecommendNation(Guild fromGuild, Guild toGuild, RecommendNationMsg msg, ClientConnection origin) { |
|
|
|
// Member variable declaration |
|
Dispatch dispatch; |
|
|
|
// Member variable assignment |
|
|
|
if (fromGuild == null) |
|
return; |
|
|
|
if (toGuild == null) |
|
return; |
|
|
|
AllianceType allianceType; |
|
if (msg.getAlly() == 1) |
|
allianceType = AllianceType.RecommendedAlly; |
|
else |
|
allianceType = AllianceType.RecommendedEnemy; |
|
|
|
if (!fromGuild.addGuildToAlliance(new AllianceChangeMsg(origin.getPlayerCharacter(),fromGuild.getObjectUUID(), toGuild.getObjectUUID(), (byte)0, 0), allianceType, toGuild, origin.getPlayerCharacter())) |
|
return; |
|
String alliance = msg.getAlly() == 1? "ally" : "enemy"; |
|
|
|
ChatManager.chatGuildInfo(fromGuild, origin.getPlayerCharacter().getFirstName() + " has recommended " + toGuild.getName() + " as an " + alliance ); |
|
|
|
// dispatch = Dispatch.borrow(origin.getPlayerCharacter(), msg); |
|
// DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
}
|
|
|