Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.model.minigames.clanwars;
- import static server.model.minigames.clanwars.ClanWarConstants.CLAN1X;
- import static server.model.minigames.clanwars.ClanWarConstants.CLAN1Y;
- import static server.model.minigames.clanwars.ClanWarConstants.CLAN2X;
- import static server.model.minigames.clanwars.ClanWarConstants.CLAN2Y;
- import static server.model.minigames.clanwars.ClanWarConstants.DEATHX;
- import static server.model.minigames.clanwars.ClanWarConstants.DEATHY;
- import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE1;
- import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE2;
- import static server.model.minigames.clanwars.ClanWarConstants.MESSAGE3;
- import static server.model.minigames.clanwars.ClanWarConstants.WALL_ID;
- import static server.model.minigames.clanwars.ClanWarConstants.OWNERS_ONLY;
- import server.Server;
- import server.event.CycleEvent;
- import server.event.CycleEventContainer;
- import server.event.CycleEventHandler;
- import server.model.objects.Object;
- import server.model.players.Client;
- import server.model.players.PlayerHandler;
- import server.util.Misc;
- /**
- * @author Women/asshole_rule
- */
- public class ClanWarHandler {
- public ClanWarHandler(Client c) {}
- public static ClanWar[] clanWars = new ClanWar[100];
- public void wallTimer(final ClanWar c) {
- CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
- @Override
- public void execute(CycleEventContainer container) {
- if(c.getWallTime() >= 0) {
- c.setWallTime(c.getWallTime() - 1);
- }
- if(c.getWallTime() == 117) {
- walls(c, WALL_ID, c.getHeight());
- }
- if(c.getWallTime() == 0) {
- walls(c, -1, c.getHeight());
- this.stop();
- }
- }
- @Override
- public void stop() {
- }
- }, 2);
- }
- public void requestChallenge(Client c, int otherPlayerId) throws NullPointerException {
- Client c2 = (Client) PlayerHandler.players[otherPlayerId];
- if(OWNERS_ONLY) {
- if (!Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
- System.out.println("You are not the owner of the Clan Chat.");
- return;
- }
- if (!Server.clanChat.clans[c2.clanId].owner.equalsIgnoreCase(c.playerName)) {
- System.out.println("This player is not a high enough rank to accept matches.");
- return;
- }
- }
- if(c == null && c2 == null) {
- System.out.println("[Clan Wars] An error has occured");
- return;
- }
- if(c.clanId == c2.clanId) {
- c.sendMessage("You cannot challenge someone in your Clan Chat to a Clan War.");
- return;
- }
- if(c.clanId <= 0) {
- c.sendMessage("You must be in a Clan Chat to start a Clan War.");
- return;
- }
- if(c2.clanId <= 0) {
- c.sendMessage("This player is not in a Clan Chat.");
- return;
- }
- if(c.chalAccepted) {
- c.sendMessage("You already have a match in progress.");
- return;
- }
- if(c2.chalAccepted) {
- c.sendMessage("This player already has a match in progress.");
- return;
- }
- if(c2.chalInterface) {
- c.sendMessage("This player is currently busy.");
- return;
- }
- if(c.chalInterface) {
- return;
- }
- if(c.inClanWarsLobby() && c2.inClanWarsLobby()) {
- c2.clanWarOpponent = c.playerId;
- c.clanWarOpponent = otherPlayerId;
- c2.sendMessage(c.playerName+":clanwarreq:");
- c.sendMessage("Sending "+Misc.formatPlayerName(c2.playerName)+" challenge request.");
- }
- }
- public void handleKill(Client c, Client c2) {
- ClanWar clanWar = clanWars[c.clanWarId];
- c.sendMessage(" "+c.playerName+", "+c2.playerName+" ");
- if(clanWar == null) {
- c.sendMessage("clan war null");
- }
- if(clanWar.clan2Players.contains(c)) {
- clanWar.setClan1Kills(clanWar.getClan1Kills() + 1);
- /*if(clanWar.getClan1Kills() >= MAX_KILLS) {
- c.sendMessage("called");
- handleWin("clan1", clanWar);
- }*/
- } else if (clanWar.clan1Players.contains(c)) {
- clanWar.setClan2Kills(clanWar.getClan2Kills() + 1);
- /*if(clanWar.getClan2Kills() >= MAX_KILLS) {
- c.sendMessage("called");
- handleWin("clan2", clanWar);
- }*/
- }
- }
- public void handleWin(String clan, ClanWar c) {
- if(clan.equals("clan1")) {
- for(Client clan1 : c.clan1Players) {
- clan1.sendMessage("Congratulations, you have defeated "+c.getClan2());
- clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
- clan1.clanWarId = -1;
- clan1.getPA().walkableInterface(-1);
- }
- for(Client clan2 : c.clan2Players) {
- clan2.sendMessage("You were defeated by "+c.getClan1());
- clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
- clan2.clanWarId = -1;
- clan2.getPA().walkableInterface(-1);
- }
- } else if (clan.equals("clan2")) {
- for(Client clan2 : c.clan2Players) {
- clan2.sendMessage("Congratulations, you have defeated "+c.getClan1());
- clan2.getPA().movePlayer(DEATHX, DEATHY, 0);
- clan2.clanWarId = -1;
- clan2.getPA().walkableInterface(-1);
- }
- for(Client clan1 : c.clan1Players) {
- clan1.sendMessage("You were defeated by "+c.getClan2());
- clan1.getPA().movePlayer(DEATHX, DEATHY, 0);
- clan1.clanWarId = -1;
- clan1.getPA().walkableInterface(-1);
- }
- }
- c = null;
- }
- public void handleDeath(Client c) {
- if(c != null) {
- ClanWar clanWar = clanWars[c.clanWarId];
- if(clanWar.deadPlayers.contains(c)) {
- c.sendMessage("Tell a moderator about this.");
- return;
- }
- clanWar.deadPlayers.add(c);
- //removePlayer(c, clanWar);
- }
- }
- public void challengeClicked(Client c) {
- Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
- c.getPA().showInterface(9000);
- c.getPA().sendFrame126(Misc.formatPlayerName(c2.playerName)+" is inviting your clan to a war.", 9002);
- c2.getPA().showInterface(9000);
- c2.getPA().sendFrame126(Misc.formatPlayerName(c.playerName)+" is inviting your clan to a war.", 9002);
- c.chalInterface = c2.chalInterface = true;
- }
- public boolean handleButtons(Client c, int actionButtonId) {
- Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
- switch(actionButtonId) {
- case 35043:
- if(c2 == null) {
- return false;
- }
- if(c.chalAccepted && c2.chalAccepted) {
- startMatch(c, c2);
- }
- c.chalInterface = false;
- c2.chalInterface = false;
- c.chalAccepted = true;
- c2.chalAccepted = true;
- return false;
- case 35047:
- if(c2 == null) {
- return false;
- }
- c.getPA().closeAllWindows();
- c2.getPA().closeAllWindows();
- c.sendMessage("You have declined the clan war requestion.");
- c2.sendMessage("The other player has declined the request.");
- c.clanWarOpponent = 0;
- c2.clanWarOpponent = 0;
- resetChallengeVariables(c);
- resetChallengeVariables(c2);
- c.chalInterface = false;
- c2.chalInterface = false;
- return false;
- }
- return false;
- }
- public boolean handleObjects(Client c, int objectType) {
- if(objectType == 28213) {
- if(c.clanWarId == -1) {
- c.sendMessage("You don't have a Clan War scheduled.");
- return false;
- }
- }
- if(c.clanWarId == -1) {
- return false;
- }
- ClanWar clanWar = clanWars[c.clanWarId];
- switch(objectType) {
- case 38697:
- c.getPA().movePlayer(DEATHX + Misc.random(3), DEATHY + Misc.random(3), 0);
- if(clanWar.deadPlayers.contains(c)) {
- clanWar.deadPlayers.remove(c);
- }
- //removePlayer(c, clanWar);
- return false;
- case 28213:
- int x = 0;
- int y = 0;
- if(c.clanWarId == -1) {
- c.sendMessage("You are not in a Clan.");
- return false;
- }
- if(clanWar.deadPlayers.contains(c)) {
- clanWar.deadPlayers.remove(c);
- }
- if(Server.clanChat.clans[c.clanId].name == clanWar.getClan1()) {
- x = CLAN1X;
- y = CLAN1Y;
- if(!clanWar.clan1Players.contains(c)) {
- clanWar.clan1Players.add(c);
- }
- }
- if(Server.clanChat.clans[c.clanId].name == clanWar.getClan2()) {
- x = CLAN2X;
- y = CLAN2Y;
- if(!clanWar.clan2Players.contains(c)) {
- clanWar.clan2Players.add(c);
- }
- }
- enterMatch(c, x, y);
- return false;
- }
- return false;
- }
- public void removePlayer(Client c, ClanWar c2) {
- if(c2.clan1Players.contains(c)) {
- c2.clan1Players.remove(c);
- } else if(c2.clan2Players.contains(c)) {
- c2.clan2Players.remove(c);
- }
- if(c.inClanWars()) {
- c.getPA().movePlayer(DEATHX, DEATHY, 0);
- }
- }
- public void startMatch(Client c, Client c2) {
- int clanWarId = openSlot();
- clanWars[clanWarId] = new ClanWar(c.playerId, c2.playerId, ((c.playerId + c2.playerId) * 4), clanWarId, 120);
- for (int j = 0; j < Server.clanChat.clans[c.clanId].members.length; j++) {
- if (Server.clanChat.clans[c.clanId].members[j] <= 0)
- continue;
- if (PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]] != null) {
- Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c.clanId].members[j]];
- clan.clanWarId = clanWarId;
- clan.sendMessage(MESSAGE1);
- clan.sendMessage(MESSAGE2);
- clan.sendMessage(MESSAGE3);
- clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
- clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
- }
- }
- for (int j = 0; j < Server.clanChat.clans[c2.clanId].members.length; j++) {
- if (Server.clanChat.clans[c2.clanId].members[j] <= 0)
- continue;
- if (PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]] != null) {
- Client clan = (Client)PlayerHandler.players[Server.clanChat.clans[c2.clanId].members[j]];
- clan.clanWarId = clanWarId;
- clan.sendMessage(MESSAGE1);
- clan.sendMessage(MESSAGE2);
- clan.sendMessage(MESSAGE3);
- clan.clanWarId = c.clanWarId = c2.clanWarId = clanWarId;
- clan.sendMessage(" "+clan.playerName+":"+clan.clanWarId);
- }
- }
- if(c != null) {
- c.sendMessage("Clan Wars request accepted.");
- enterMatch(c, CLAN1X, CLAN1Y);
- clanWars[clanWarId].clan1Players.add(c);
- }
- if(c2 != null) {
- c2.sendMessage("Clan Wars request accepted.");
- enterMatch(c2, CLAN2X, CLAN2Y);
- clanWars[clanWarId].clan2Players.add(c2);
- }
- clanWars[clanWarId].setClan1(Server.clanChat.clans[c.clanId].name);
- clanWars[clanWarId].setClan2(Server.clanChat.clans[c2.clanId].name);
- clanWars[clanWarId].setWallTime(120);
- wallTimer(clanWars[clanWarId]);
- walls(clanWars[clanWarId], WALL_ID, clanWars[clanWarId].getHeight());
- c.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
- c2.sendMessage("Height level is gonna be: "+clanWars[c.clanWarId].getHeight());
- }
- public void enterMatch(Client c, int x, int y) {
- ClanWar clanWar = clanWars[c.clanWarId];
- c.getPA().movePlayer(x, y, clanWar.getHeight());
- c.getPA().closeAllWindows();
- if(!wallDown(clanWar)) {
- walls(clanWar, WALL_ID, clanWar.getHeight());
- }
- }
- public int openSlot() {
- for (int j = 0; j < clanWars.length; j++) {
- if (clanWars[j] == null || clanWars[j].getId() == -1)
- return j;
- }
- return -1;
- }
- public void walls(ClanWar c, int id, int height) {
- if(height == c.getHeight()) {
- for (int i = 2884; i < 2925; i++) {
- new Object(id, i, 5666, height, -1, 10, id, 0);
- }
- for (int i = 2935; i < 2940; i++) {
- new Object(id, i, 5666, height, -1, 10, id, 0);
- }
- }
- System.out.println("Spawning walls at height: "+c.getHeight());
- }
- public void resetChallengeVariables(Client c) {
- Client c2 = (Client) PlayerHandler.players[c.clanWarOpponent];
- if(c != null && c2 != null) {
- c2.chalAccepted = false;
- c.chalAccepted = false;
- c2.chalInterface = false;
- c.chalInterface = false;
- }
- }
- public void checkLeave(Client c, ClanWar c2) {
- if(Server.clanChat.clans[c.clanId].owner.equalsIgnoreCase(c.playerName)) {
- Server.clanChat.messageToClan("The other team's leader has forfeited.", PlayerHandler.players[c.clanWarOpponent].clanId, true);
- Server.clanChat.messageToClan("Your owner left the Clan Chat. The match was forfeited.", c.clanId, true);
- if(c2.clan1Players.contains(c))
- handleWin("clan2", c2);
- else if(c2.clan2Players.contains(c))
- handleWin("clan1", c2);
- }
- removePlayer(c, c2);
- }
- public void updateInterface(Client c, ClanWar c2) {
- try {
- Client clan1 = (Client) PlayerHandler.players[c2.getOtherId()];
- Client clan2 = (Client) PlayerHandler.players[c2.getId()];
- if (c.inClanWars()) {
- if(!wallDown(c2)) {
- //if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
- /*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
- c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
- c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3505);
- c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3506);*/
- c.getPA().sendFrame126("My Clan", 3502);
- c.getPA().sendFrame126("Opposing", 3503);
- c.getPA().sendFrame126(" ", 3505);
- c.getPA().sendFrame126(" ", 3506);
- //}
- //if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan2())) {
- /*c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
- c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
- c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(clan1.clanId), 3505);
- c.getPA().sendFrame126("Size: "+Server.clanChat.getClanSize(c.clanId), 3506);*/
- c.getPA().sendFrame126("My Clan", 3502);
- c.getPA().sendFrame126("Opposing", 3503);
- c.getPA().sendFrame126(" ", 3505);
- c.getPA().sendFrame126(" ", 3506);
- //}
- c.getPA().sendFrame126(Misc.formatTime(c2.getWallTime())+"", 3507);
- if (c2.getWallTime() <= 3) {
- c.getPA().sendFrame126("@red@GET READY!", 3507);
- }
- } else {
- //if(Server.clanChat.clans[c.clanId].name.equals(c2.getClan1())) {
- if(c2.clan1Players.contains(c)) {
- if(c.clanId > 0) {
- c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[c.clanId].name)+"", 3502);
- c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3503);
- } else {
- c.getPA().sendFrame126("My Clan", 3502);
- c.getPA().sendFrame126("Opposing", 3503);
- }
- c.getPA().sendFrame126(" Currently:", 3504);
- c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3505);
- c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3506);
- if(c2.getClan1Kills() > c2.getClan2Kills()) {
- c.getPA().sendFrame126("Winning!", 3507);
- } else if(c2.getClan1Kills() == c2.getClan2Kills()) {
- c.getPA().sendFrame126("Tied!", 3507);
- } else {
- c.getPA().sendFrame126("@red@Losing!", 3507);
- }
- }
- if(c2.clan2Players.contains(c)) {
- if(c.clanId > 0) {
- c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan1.clanId].name)+"", 3502);
- c.getPA().sendFrame126(Misc.formatPlayerName(Server.clanChat.clans[clan2.clanId].name)+"", 3503);
- } else {
- c.getPA().sendFrame126("My Clan", 3502);
- c.getPA().sendFrame126("Opposing", 3503);
- }
- c.getPA().sendFrame126(" Currently:", 3504);
- c.getPA().sendFrame126("Kills: "+c2.getClan2Kills(), 3505);
- c.getPA().sendFrame126("Kills: "+c2.getClan1Kills(), 3506);
- if(c2.getClan2Kills() > c2.getClan1Kills()) {
- c.getPA().sendFrame126("Winning!", 3507);
- } else if(c2.getClan1Kills() == c2.getClan2Kills()) {
- c.getPA().sendFrame126("Tied!", 3507);
- } else {
- c.getPA().sendFrame126("@red@Losing!", 3507);
- }
- }
- }
- }
- }catch(Exception e) {
- e.printStackTrace();
- }
- }
- public boolean wallDown(ClanWar c) {
- if(c == null) {
- return false;
- }
- return c.getWallTime() == -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement