Changeset 8630 for trunk/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminClan.java
- Timestamp:
- Jan 16, 2012 7:56:19 AM (4 months ago)
- Location:
- trunk/L2J_DataPack
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
dist/game/data/scripts/handlers/admincommandhandlers/AdminClan.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/L2J_DataPack
- Property svn:mergeinfo changed
/branches/unstable/L2J_DataPack_BETA merged: 8407-8426,8428-8480,8482-8491,8493-8588,8590-8629
- Property svn:mergeinfo changed
-
trunk/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminClan.java
r7740 r8630 15 15 package handlers.admincommandhandlers; 16 16 17 import java.util.NoSuchElementException; 17 import java.sql.Connection; 18 import java.sql.PreparedStatement; 18 19 import java.util.StringTokenizer; 19 20 21 import com.l2jserver.L2DatabaseFactory; 20 22 import com.l2jserver.gameserver.cache.HtmCache; 21 23 import com.l2jserver.gameserver.handler.IAdminCommandHandler; … … 26 28 import com.l2jserver.gameserver.model.L2Clan; 27 29 import com.l2jserver.gameserver.model.L2ClanMember; 30 import com.l2jserver.gameserver.model.L2Object; 28 31 import com.l2jserver.gameserver.model.L2World; 29 32 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; … … 33 36 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; 34 37 import com.l2jserver.gameserver.network.serverpackets.SystemMessage; 38 import com.l2jserver.gameserver.util.Util; 35 39 36 40 /** 37 * @author ThE_PuNiSHeR a.k.a UnAfraid41 * @author UnAfraid, Zoey76 38 42 */ 39 43 public class AdminClan implements IAdminCommandHandler … … 41 45 private static final String[] ADMIN_COMMANDS = 42 46 { 43 "admin_clan_info", 44 "admin_clan_changeleader" 47 "admin_clan_info", "admin_clan_changeleader" 45 48 }; 46 49 50 @Override 47 51 public boolean useAdminCommand(String command, L2PcInstance activeChar) 48 52 { 49 StringTokenizer st = new StringTokenizer(command, " ");50 String cmd = st.nextToken();53 final StringTokenizer st = new StringTokenizer(command, " "); 54 final String cmd = st.nextToken(); 51 55 if (cmd.startsWith("admin_clan_info")) 52 56 { 53 try 54 { 55 int objectId = 0; 56 try 57 { 58 objectId = Integer.parseInt(st.nextToken()); 59 } 60 catch (NoSuchElementException NSEE) 61 { 62 objectId = activeChar.getTargetId(); 63 } 64 L2PcInstance player = L2World.getInstance().getPlayer(objectId); 65 if (player != null) 66 { 67 L2Clan clan = player.getClan(); 68 if (clan != null) 69 { 70 try 71 { 72 NpcHtmlMessage msg = new NpcHtmlMessage(0); 73 String htm = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/admin/claninfo.htm"); 74 msg.setHtml(htm.toString()); 75 msg.replace("%clan_name%", clan.getName()); 76 msg.replace("%clan_leader%", clan.getLeaderName()); 77 msg.replace("%clan_level%", String.valueOf(clan.getLevel())); 78 msg.replace("%clan_has_castle%", clan.getHasCastle() > 0 ? CastleManager.getInstance().getCastleById(clan.getHasCastle()).getName() : "No"); 79 msg.replace("%clan_has_clanhall%", clan.getHasHideout() > 0 ? ClanHallManager.getInstance().getClanHallById(clan.getHasHideout()).getName() : "No"); 80 msg.replace("%clan_has_fortress%", clan.getHasFort() > 0 ? FortManager.getInstance().getFortById(clan.getHasFort()).getName() : "No"); 81 msg.replace("%clan_points%", String.valueOf(clan.getReputationScore())); 82 msg.replace("%clan_players_count%", String.valueOf(clan.getMembersCount())); 83 msg.replace("%clan_ally%", clan.getAllyId() > 0 ? clan.getAllyName() : "Not in ally"); 84 msg.replace("%current_player_objectId%", String.valueOf(objectId)); 85 msg.replace("%current_player_name%", player.getName()); 86 activeChar.sendPacket(msg); 87 88 } 89 catch (NullPointerException npe) 90 { 91 npe.printStackTrace(); 92 } 93 94 } 95 else 96 { 97 activeChar.sendMessage("Clan not found."); 98 return false; 99 } 100 } 101 else 102 { 103 activeChar.sendMessage("Player is offline!"); 57 String val; 58 L2PcInstance player = null; 59 if (st.hasMoreTokens()) 60 { 61 val = st.nextToken(); 62 // From the HTML we receive player's object Id. 63 if (Util.isDigit(val)) 64 { 65 player = L2World.getInstance().getPlayer(Integer.parseInt(val)); 66 if (player == null) 67 { 68 activeChar.sendPacket(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME); 69 return false; 70 } 71 } 72 else 73 { 74 player = L2World.getInstance().getPlayer(val); 75 if (player == null) 76 { 77 activeChar.sendPacket(SystemMessageId.INCORRECT_NAME_TRY_AGAIN); 78 return false; 79 } 80 } 81 } 82 else 83 { 84 L2Object targetObj = activeChar.getTarget(); 85 if (targetObj instanceof L2PcInstance) 86 { 87 player = targetObj.getActingPlayer(); 88 } 89 else 90 { 91 activeChar.sendPacket(SystemMessageId.INCORRECT_TARGET); 104 92 return false; 105 93 } 106 94 } 107 catch (NumberFormatException nfe) 108 { 109 activeChar.sendMessage("This shouldn't happening"); 95 96 final L2Clan clan = player.getClan(); 97 if (clan == null) 98 { 99 activeChar.sendPacket(SystemMessageId.TARGET_MUST_BE_IN_CLAN); 110 100 return false; 111 101 } 112 catch (Exception e) 113 { 114 e.printStackTrace(); 115 } 102 103 final NpcHtmlMessage html = new NpcHtmlMessage(0); 104 final String htm = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/admin/claninfo.htm"); 105 html.setHtml(htm.toString()); 106 html.replace("%clan_name%", clan.getName()); 107 html.replace("%clan_leader%", clan.getLeaderName()); 108 html.replace("%clan_level%", String.valueOf(clan.getLevel())); 109 html.replace("%clan_has_castle%", clan.getHasCastle() > 0 ? CastleManager.getInstance().getCastleById(clan.getHasCastle()).getName() : "No"); 110 html.replace("%clan_has_clanhall%", clan.getHasHideout() > 0 ? ClanHallManager.getInstance().getClanHallById(clan.getHasHideout()).getName() : "No"); 111 html.replace("%clan_has_fortress%", clan.getHasFort() > 0 ? FortManager.getInstance().getFortById(clan.getHasFort()).getName() : "No"); 112 html.replace("%clan_points%", String.valueOf(clan.getReputationScore())); 113 html.replace("%clan_players_count%", String.valueOf(clan.getMembersCount())); 114 html.replace("%clan_ally%", clan.getAllyId() > 0 ? clan.getAllyName() : "Not in ally"); 115 html.replace("%current_player_objectId%", String.valueOf(player.getObjectId())); 116 html.replace("%current_player_name%", player.getName()); 117 activeChar.sendPacket(html); 116 118 } 117 119 else if (cmd.startsWith("admin_clan_changeleader")) 118 120 { 119 try 120 { 121 int objectId = Integer.parseInt(st.nextToken()); 122 123 L2PcInstance player = L2World.getInstance().getPlayer(objectId); 124 if (player != null) 125 { 126 L2Clan clan = player.getClan(); 127 if (clan == null) 128 { 129 activeChar.sendMessage("Player don't have clan"); 130 return false; 131 } 132 for (L2ClanMember member : clan.getMembers()) 133 { 134 if (member.getObjectId() == player.getObjectId()) 121 String val; 122 L2PcInstance player = null; 123 if (st.hasMoreTokens()) 124 { 125 val = st.nextToken(); 126 // From the HTML we receive player's object Id. 127 if (Util.isDigit(val)) 128 { 129 player = L2World.getInstance().getPlayer(Integer.parseInt(val)); 130 if (player == null) 131 { 132 activeChar.sendPacket(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME); 133 return false; 134 } 135 } 136 else 137 { 138 player = L2World.getInstance().getPlayer(val); 139 if (player == null) 140 { 141 activeChar.sendPacket(SystemMessageId.INCORRECT_NAME_TRY_AGAIN); 142 return false; 143 } 144 } 145 } 146 else 147 { 148 L2Object targetObj = activeChar.getTarget(); 149 if (targetObj instanceof L2PcInstance) 150 { 151 player = targetObj.getActingPlayer(); 152 } 153 else 154 { 155 activeChar.sendPacket(SystemMessageId.INCORRECT_TARGET); 156 return false; 157 } 158 } 159 160 final L2Clan clan = player.getClan(); 161 if (clan == null) 162 { 163 activeChar.sendPacket(SystemMessageId.TARGET_MUST_BE_IN_CLAN); 164 return false; 165 } 166 167 final L2ClanMember member = clan.getClanMember(player.getObjectId()); 168 if (member != null) 169 { 170 if ((clan.getLeader() != null) && (clan.getLeader().getPlayerInstance() != null)) 171 { 172 final L2PcInstance exLeader = clan.getLeader().getPlayerInstance(); 173 SiegeManager.getInstance().removeSiegeSkills(exLeader); 174 exLeader.setClan(clan); 175 exLeader.setClanPrivileges(L2Clan.CP_NOTHING); 176 exLeader.broadcastUserInfo(); 177 exLeader.setPledgeClass(exLeader.getClan().getClanMember(exLeader.getObjectId()).calculatePledgeClass(exLeader)); 178 exLeader.broadcastUserInfo(); 179 exLeader.checkItemRestriction(); 180 } 181 else if (clan.getLeaderId() > 0) 182 { 183 Connection con = null; 184 try 185 { 186 con = L2DatabaseFactory.getInstance().getConnection(); 187 PreparedStatement statement = con.prepareStatement("UPDATE characters SET clan_privs = ? WHERE charId = ?"); 188 statement.setInt(1, L2Clan.CP_NOTHING); 189 statement.setInt(2, clan.getLeaderId()); 190 statement.execute(); 191 192 if (statement.getUpdateCount() == 0) 135 193 { 136 L2PcInstance exLeader = clan.getLeader().getPlayerInstance(); 137 if (exLeader != null) 138 { 139 SiegeManager.getInstance().removeSiegeSkills(exLeader); 140 exLeader.setClan(clan); 141 exLeader.setClanPrivileges(L2Clan.CP_NOTHING); 142 exLeader.broadcastUserInfo(); 143 exLeader.setPledgeClass(exLeader.getClan().getClanMember(exLeader.getObjectId()).calculatePledgeClass(exLeader)); 144 exLeader.broadcastUserInfo(); 145 exLeader.checkItemRestriction(); 146 } 147 else 148 { 149 // TODO: with query? 150 } 151 152 clan.setLeader(member); 153 clan.updateClanInDB(); 154 155 L2PcInstance newLeader = member.getPlayerInstance(); 156 newLeader.setClan(clan); 157 newLeader.setPledgeClass(member.calculatePledgeClass(newLeader)); 158 newLeader.setClanPrivileges(L2Clan.CP_ALL); 159 160 if (clan.getLevel() >= SiegeManager.getInstance().getSiegeClanMinLevel()) 161 SiegeManager.getInstance().addSiegeSkills(newLeader); 162 163 newLeader.broadcastUserInfo(); 164 165 clan.broadcastClanStatus(); 166 167 SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.CLAN_LEADER_PRIVILEGES_HAVE_BEEN_TRANSFERRED_TO_C1); 168 sm.addString(newLeader.getName()); 169 clan.broadcastToOnlineMembers(sm); 170 activeChar.sendMessage("Clan leader has been changed!"); 171 CommunityServerThread.getInstance().sendPacket(new WorldInfo(null, clan, WorldInfo.TYPE_UPDATE_CLAN_DATA)); 194 activeChar.sendPacket(SystemMessageId.ID_NOT_EXIST); 172 195 } 173 } 174 } 175 else 176 { 177 activeChar.sendMessage("Player is offline"); 178 } 179 } 180 catch (Exception e) 181 { 182 e.printStackTrace(); 196 statement.close(); 197 } 198 catch (Exception e) 199 { 200 activeChar.sendPacket(SystemMessageId.NOT_WORKING_PLEASE_TRY_AGAIN_LATER); 201 } 202 finally 203 { 204 L2DatabaseFactory.close(con); 205 } 206 } 207 208 clan.setLeader(member); 209 clan.updateClanInDB(); 210 211 player.setClan(clan); 212 player.setPledgeClass(member.calculatePledgeClass(player)); 213 player.setClanPrivileges(L2Clan.CP_ALL); 214 215 if (clan.getLevel() >= SiegeManager.getInstance().getSiegeClanMinLevel()) 216 { 217 SiegeManager.getInstance().addSiegeSkills(player); 218 } 219 220 player.broadcastUserInfo(); 221 clan.broadcastClanStatus(); 222 223 final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.CLAN_LEADER_PRIVILEGES_HAVE_BEEN_TRANSFERRED_TO_C1); 224 sm.addString(player.getName()); 225 clan.broadcastToOnlineMembers(sm); 226 activeChar.sendPacket(sm); 227 CommunityServerThread.getInstance().sendPacket(new WorldInfo(null, clan, WorldInfo.TYPE_UPDATE_CLAN_DATA)); 183 228 } 184 229 } 185 186 230 return true; 187 231 } 188 232 233 @Override 189 234 public String[] getAdminCommandList() 190 235 {
Note: See TracChangeset
for help on using the changeset viewer.
