- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
sτrίkε-
admin kick source code
/* * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.handler.admincommandhandlers; import java.util.StringTokenizer; import net.sf.l2j.Config; import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.L2GameClient; import net.sf.l2j.gameserver.serverpackets.LeaveWorld; public class AdminKick implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = {"admin_kick" ,"admin_kick_non_gm"}; private static final int REQUIRED_LEVEL = Config.GM_KICK; public boolean useAdminCommand(String command, L2PcInstance activeChar) { if (!Config.ALT_PRIVILEGES_ADMIN) if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM())) return false; if (command.startsWith("admin_kick")) { StringTokenizer st = new StringTokenizer(command); if (st.countTokens() > 1) { st.nextToken(); String plyr = st.nextToken(); L2PcInstance player = L2World.getInstance().getPlayer(plyr); if (player != null) { kickPlayer (player); RegionBBSManager.getInstance().changeCommunityBoard(); activeChar.sendMessage("You kicked " + player.getName() + " from the game."); } } } if (command.startsWith("admin_kick_non_gm")) { int counter = 0; for (L2PcInstance player : L2World.getInstance().getAllPlayers()) { if(!player.isGM()) { counter++; kickPlayer (player); } } activeChar.sendMessage("Kicked "+counter+" players"); } return true; } private void kickPlayer (L2PcInstance player) { try { L2GameClient.saveCharToDisk(player); player.sendPacket(new LeaveWorld()); player.deleteMe(); player.logout(); } catch (Throwable t) {} try { player.closeNetConnection(); } catch (Throwable t) {} } public String[] getAdminCommandList() { return ADMIN_COMMANDS; } private boolean checkLevel(int level) { return (level >= REQUIRED_LEVEL); } }admin ban source code
/* * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.handler.admincommandhandlers; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.NoSuchElementException; import java.util.StringTokenizer; import net.sf.l2j.Config; import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.LoginServerThread; import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2Object; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.serverpackets.SystemMessage; /** * This class handles following admin commands: * - ban account_name = changes account access level to -100 and logs him off. If no account is specified, target's account is used. * - unban account_name = changes account access level to 0. * - jail charname [penalty_time] = jails character. Time specified in minutes. For ever if no time is specified. * - unjail charname = Unjails player, teleport him to Floran. * * @version $Revision: 1.1.6.3 $ $Date: 2005/04/11 10:06:06 $ */ public class AdminBan implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = {"admin_ban", "admin_unban","admin_jail","admin_unjail"}; private static final int REQUIRED_LEVEL = Config.GM_BAN; public boolean useAdminCommand(String command, L2PcInstance activeChar) { if (!Config.ALT_PRIVILEGES_ADMIN) if (!(checkLevel(activeChar.getAccessLevel()))) return false; StringTokenizer st = new StringTokenizer(command); st.nextToken(); String account_name = ""; String player = ""; L2PcInstance plyr = null; if (command.startsWith("admin_ban")) { try { player = st.nextToken(); plyr = L2World.getInstance().getPlayer(player); } catch(Exception e) { L2Object target = activeChar.getTarget(); if (target!=null && target instanceof L2PcInstance) plyr = (L2PcInstance)target; else activeChar.sendMessage("Usage: //ban [account_name] (if none, target char's account gets banned)"); } if (plyr != null && plyr.equals(activeChar)) { plyr.sendPacket(new SystemMessage(SystemMessageId.CANNOT_USE_ON_YOURSELF)); } else if (plyr == null) { account_name=player; LoginServerThread.getInstance().sendAccessLevel(account_name, -100); activeChar.sendMessage("Ban request sent for account "+account_name+". If you need a playername based commmand, see //ban_menu"); } else { plyr.setAccountAccesslevel(-100); account_name = plyr.getAccountName(); RegionBBSManager.getInstance().changeCommunityBoard(); plyr.logout(); activeChar.sendMessage("Account "+account_name+" banned."); } } else if (command.startsWith("admin_unban")) { try { account_name = st.nextToken(); LoginServerThread.getInstance().sendAccessLevel(account_name, 0); activeChar.sendMessage("Unban request sent for account "+account_name+". If you need a playername based commmand, see //unban_menu"); } catch(Exception e) { activeChar.sendMessage("Usage: //unban <account_name>"); } } else if (command.startsWith("admin_jail")) { try { player = st.nextToken(); int delay = 0; try { delay = Integer.parseInt(st.nextToken()); } catch (NumberFormatException nfe) { activeChar.sendMessage("Usage: //jail <charname> [penalty_minutes]"); } catch (NoSuchElementException nsee) {} L2PcInstance playerObj = L2World.getInstance().getPlayer(player); if (playerObj != null) { playerObj.setInJail(true, delay); activeChar.sendMessage("Character "+player+" jailed for "+(delay>0 ? delay+" minutes." : "ever!")); } else jailOfflinePlayer(activeChar, player, delay); } catch (NoSuchElementException nsee) { activeChar.sendMessage("Usage: //jail <charname> [penalty_minutes]"); } catch(Exception e) { e.printStackTrace(); } } else if (command.startsWith("admin_unjail")) { try { player = st.nextToken(); L2PcInstance playerObj = L2World.getInstance().getPlayer(player); if (playerObj != null) { playerObj.setInJail(false, 0); activeChar.sendMessage("Character "+player+" removed from jail"); } else unjailOfflinePlayer(activeChar, player); } catch (NoSuchElementException nsee) { activeChar.sendMessage("Specify a character name."); } catch(Exception e) { e.printStackTrace(); } } return true; } private void jailOfflinePlayer(L2PcInstance activeChar, String name, int delay) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(con); PreparedStatement statement = con.prepareStatement("UPDATE characters SET x=?, y=?, z=?, in_jail=?, jail_timer=? WHERE char_name=?"); statement.setInt(1, -114356); statement.setInt(2, -249645); statement.setInt(3, -2984); statement.setInt(4, 1); statement.setLong(5, delay * 60000L); statement.setString(6, name); statement.execute(); int count = statement.getUpdateCount(); statement.close(); if (count == 0) activeChar.sendMessage("Character not found!"); else activeChar.sendMessage("Character "+name+" jailed for "+(delay>0 ? delay+" minutes." : "ever!")); } catch (SQLException se) { activeChar.sendMessage("SQLException while jailing player"); se.printStackTrace(); } finally { try { con.close(); } catch (Exception e) { e.printStackTrace(); } } } private void unjailOfflinePlayer(L2PcInstance activeChar, String name) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(con); PreparedStatement statement = con.prepareStatement("UPDATE characters SET x=?, y=?, z=?, in_jail=?, jail_timer=? WHERE char_name=?"); statement.setInt(1, 17836); statement.setInt(2, 170178); statement.setInt(3, -3507); statement.setInt(4, 0); statement.setLong(5, 0); statement.setString(6, name); statement.execute(); int count = statement.getUpdateCount(); statement.close(); if (count == 0) activeChar.sendMessage("Character not found!"); else activeChar.sendMessage("Character "+name+" removed from jail"); } catch (SQLException se) { activeChar.sendMessage("SQLException while jailing player"); se.printStackTrace(); } finally { try { con.close(); } catch (Exception e) { e.printStackTrace(); } } } public String[] getAdminCommandList() { return ADMIN_COMMANDS; } private boolean checkLevel(int level) { return (level >= REQUIRED_LEVEL); } }can some1 fix these?
L2J Free IL Version 2741
5 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now