SySt3MGaM3RFr3aKs Posted December 30, 2009 Share Posted December 30, 2009 Hello, i noticed that in L2J, Interlude these commands ( sethero, setnoble ) doesn't exists. So i decided to Share them. Adapted on interlude L2J as i said before. Here is the diff file REALLY SIMPLE: Index: /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminHero.java =================================================================== --- /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminHero.java +++ /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminHero.java @@ -0,0 +1,155 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.sf.l2j.gameserver.handler.admincommandhandlers; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import net.sf.l2j.Config; +import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.GmListTable; +import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; + +public class AdminHero implements IAdminCommandHandler +{ + private static String[] _adminCommands = + { + "admin_sethero",}; + private final static Log _log = LogFactory.getLog(AdminHero.class.getName()); + private static final int REQUIRED_LEVEL = Config.GM_MENU; + + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + if (!Config.ALT_PRIVILEGES_ADMIN) + { + if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM())) + { + return false; + } + } + if (command.startsWith("admin_sethero")) + { + L2Object target = activeChar.getTarget(); + L2PcInstance player = null; + SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2); + if (target instanceof L2PcInstance) + { + player = (L2PcInstance)target; + } else + { + player = activeChar; + } + + if (player.isHero()) + { + player.setHero(false); + sm.addString("You are no longer a server hero."); + GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" removed hero stat of player"+ target.getName()); + Connection connection = null; + try + { + connection = L2DatabaseFactory.getInstance().getConnection(); + + PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?"); + statement.setString(1,target.getName()); + ResultSet rset = statement.executeQuery(); + int objId = 0; + if (rset.next()) + { + objId = rset.getInt(1); + } + rset.close(); + statement.close(); + + if (objId == 0) {connection.close(); return false;} + + statement = connection.prepareStatement("UPDATE characters SET hero=0 WHERE obj_id=?"); + statement.setInt(1, objId); + statement.execute(); + statement.close(); + connection.close(); + } + catch (Exception e) + { + _log.warn("could not set Hero stats of char:", e); + } + finally + { + try { connection.close(); } catch (Exception e) {} + } + } + else + { + player.setHero(true); + sm.addString("You are now a server Hero, congratulations!"); + GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" has given Hero stat for player "+target.getName()+"."); + Connection connection = null; + try + { + connection = L2DatabaseFactory.getInstance().getConnection(); + + PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?"); + statement.setString(1,target.getName()); + ResultSet rset = statement.executeQuery(); + int objId = 0; + if (rset.next()) + { + objId = rset.getInt(1); + } + rset.close(); + statement.close(); + + if (objId == 0) {connection.close(); return false;} + + statement = connection.prepareStatement("UPDATE characters SET hero=1 WHERE obj_id=?"); + statement.setInt(1, objId); + statement.execute(); + statement.close(); + connection.close(); + } + catch (Exception e) + { + _log.warn("could not set Hero stats of char:", e); + } + finally + { + try { connection.close(); } catch (Exception e) {} + } + + } + player.sendPacket(sm); + player.broadcastUserInfo(); + if(player.isHero() == true) + { + } + } + return false; + } + public String[] getAdminCommandList() { + return _adminCommands; + } + private boolean checkLevel(int level) + { + return (level >= REQUIRED_LEVEL); + } +} Index: /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminNoble.java =================================================================== --- /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminNoble.java +++ /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminNoble.java @@ -0,0 +1,156 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.sf.l2j.gameserver.handler.admincommandhandlers; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import net.sf.l2j.Config; +import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.GmListTable; +import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; + + +public class AdminNoble implements IAdminCommandHandler +{ + private static String[] _adminCommands = + { + "admin_setnoble",}; + private final static Log _log = LogFactory.getLog(AdminNoble.class.getName()); + private static final int REQUIRED_LEVEL = Config.GM_MENU; + + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + if (!Config.ALT_PRIVILEGES_ADMIN) + { + if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM())) + { + return false; + } + } + if (command.startsWith("admin_setnoble")) + { + L2Object target = activeChar.getTarget(); + L2PcInstance player = null; + SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2); + if (target instanceof L2PcInstance) + { + player = (L2PcInstance)target; + } else + { + player = activeChar; + } + + if (player.isNoble()) + { + player.setNoble(false); + sm.addString("You are no longer a server noble."); + GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" removed noble stat of player"+ target.getName()); + Connection connection = null; + try + { + connection = L2DatabaseFactory.getInstance().getConnection(); + + PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?"); + statement.setString(1,target.getName()); + ResultSet rset = statement.executeQuery(); + int objId = 0; + if (rset.next()) + { + objId = rset.getInt(1); + } + rset.close(); + statement.close(); + + if (objId == 0) {connection.close(); return false;} + + statement = connection.prepareStatement("UPDATE characters SET nobless=0 WHERE obj_id=?"); + statement.setInt(1, objId); + statement.execute(); + statement.close(); + connection.close(); + } + catch (Exception e) + { + _log.warn("could not set noble stats of char:", e); + } + finally + { + try { connection.close(); } catch (Exception e) {} + } + } + else + { + player.setNoble(true); + sm.addString("You are now a server noble, congratulations!"); + GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" has given noble stat for player "+target.getName()+"."); + Connection connection = null; + try + { + connection = L2DatabaseFactory.getInstance().getConnection(); + + PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?"); + statement.setString(1,target.getName()); + ResultSet rset = statement.executeQuery(); + int objId = 0; + if (rset.next()) + { + objId = rset.getInt(1); + } + rset.close(); + statement.close(); + + if (objId == 0) {connection.close(); return false;} + + statement = connection.prepareStatement("UPDATE characters SET nobless=1 WHERE obj_id=?"); + statement.setInt(1, objId); + statement.execute(); + statement.close(); + connection.close(); + } + catch (Exception e) + { + _log.warn("could not set noble stats of char:", e); + } + finally + { + try { connection.close(); } catch (Exception e) {} + } + + } + player.sendPacket(sm); + player.broadcastUserInfo(); + if(player.isNoble() == true) + { + } + } + return false; + } + public String[] getAdminCommandList() { + return _adminCommands; + } + private boolean checkLevel(int level) + { + return (level >= REQUIRED_LEVEL); + } +} And to register them to Gameserver here: Index: /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/GameServer.java +++ /trunk/Eclipse/src/main/java/net/sf/l2j/gameserver/GameServer.java @@ -90,4 +90,5 @@ import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHeal; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHelpPage; +import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHero; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminInvul; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminKick; @@ -100,4 +101,5 @@ import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMobGroup; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMonsterRace; +import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminNoble; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPForge; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPathNode; @@ -569,6 +571,7 @@ _adminCommandHandler.registerAdminCommandHandler(new AdminManor()); _adminCommandHandler.registerAdminCommandHandler(new AdminTvTEvent()); - //_adminCommandHandler.registerAdminCommandHandler(new AdminRadar()); - _log.config("AdminCommandHandler: Loaded " + _adminCommandHandler.size() + " handlers."); + _adminCommandHandler.registerAdminCommandHandler(new AdminHero()); + _adminCommandHandler.registerAdminCommandHandler(new AdminNoble()); + _log.config("AdminCommandHandler: Loaded " + _adminCommandHandler.size() + " handlers."); _userCommandHandler = UserCommandHandler.getInstance(); Credits: L2JForum and SySt3MFr3aKs. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now