All pastes #11399 Raw Edit

Doorl2j

public java v1 · immutable
#11399 ·published 2005-05-10 09:34 UTC
rendered paste body
Index: net/sf/l2j/gameserver/GameServer.java===================================================================RCS file: /cvsroot/l2j/L2_Gameserver/java/net/sf/l2j/gameserver/GameServer.java,vretrieving revision 1.29.2.15.2.6.2.13diff -u -r1.29.2.15.2.6.2.13 GameServer.java--- GameServer.java	12 Apr 2005 15:25:23 -0000	1.29.2.15.2.6.2.13+++ GameServer.java	21 Apr 2005 20:08:09 -0000@@ -260,6 +260,7 @@ import net.sf.l2j.gameserver.handler.ItemHandler; import net.sf.l2j.gameserver.handler.SkillHandler; import net.sf.l2j.gameserver.handler.UserCommandHandler;+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAddDoor; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAdmin; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAnnouncements; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBan;@@ -609,6 +610,7 @@         _adminCommandHandler.registerAdminCommandHandler(new AdminKick());         _adminCommandHandler.registerAdminCommandHandler(new AdminMonsterRace());         _adminCommandHandler.registerAdminCommandHandler(new AdminEditNpc());+        _adminCommandHandler.registerAdminCommandHandler(new AdminAddDoor());                  _userCommandHandler = UserCommandHandler.getInstance();         _userCommandHandler.registerUserCommandHandler(new Loc());Index: net/sf/l2j/gameserver/model/L2DoorInstance.java===================================================================RCS file: /cvsroot/l2j/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2DoorInstance.java,vretrieving revision 1.3.2.2.2.2diff -u -r1.3.2.2.2.2 L2DoorInstance.java--- L2DoorInstance.java	4 Feb 2005 13:05:27 -0000	1.3.2.2.2.2+++ L2DoorInstance.java	21 Apr 2005 20:09:05 -0000@@ -46,99 +46,156 @@ package net.sf.l2j.gameserver.model;  import java.util.logging.Logger;+import net.sf.l2j.gameserver.serverpackets.*;+import net.sf.l2j.gameserver.templates.L2Weapon;+import net.sf.l2j.gameserver.ClientThread; -import net.sf.l2j.Config;+public class L2DoorInstance extends L2Character {+	private static Logger _log = Logger.getLogger(L2DoorInstance.class+			.getName());++	private int _damage; -/**- * This class ...- * - * @version $Revision: 1.3.2.2.2.2 $ $Date: 2005/02/04 13:05:27 $- */-public class L2DoorInstance extends L2Object-{-	private static Logger _log = Logger.getLogger(L2DoorInstance.class.getName());-	-	private	int _damage; 	private int _open;+ 	private int _enemy;-    private int _doorId;-	-    /**-     * @return Returns the doorId.-     */-    public int getDoorId()-    {-        return _doorId;-    }-    /**-     * @param doorId The doorId to set.-     */-    public void setDoorId(int doorId)-    {-        _doorId = doorId;-    }-	/**-	 */-	public L2DoorInstance()-	{++	private int _doorId;++	private boolean isAttackable;++	private String _name;++	public int getDoorId() {+		return _doorId;+	}++	public void setDoorId(int doorId) {+		_doorId = doorId;+	}++	public L2DoorInstance() { 		super();+		setName("Door"); 	}-	-	/**-	 * this is called when a player interacts with this NPC-	 * @param player-	 */-	public void onAction(L2PcInstance player)-	{-		if (Config.DEBUG) _log.fine("Door activated");-	}-	/**-	 * @return Returns the damage.-	 */-	public int getDamage()-	{++	public void onAction(L2PcInstance player) {+		if (this != player.getTarget()) {+			if (player.getCurrentState() == L2Character.STATE_CASTING) {+				player.cancelCastMagic();+			}+			player.setCurrentState(L2Character.STATE_IDLE);+			_log.fine("new target selected:" + getObjectId());+			player.setTarget(this);+			MyTargetSelected my = new MyTargetSelected(getObjectId(), player+					.getLevel());+			player.sendPacket(my);++			if (isAttackable()) {+				DoorStatusUpdate su = new DoorStatusUpdate(this);+				player.sendPacket(su);+			}+		} else {+			if (isAttackable() && (!player.isInCombat())) {+				if (Math.abs(player.getZ() - getZ()) < 400) {+					player.startAttack(this);+				} else {+					player.sendPacket(new ActionFailed());+				}+			}+			if (!isAttackable()) {++			}+		}+	}++	public void onActionShift(ClientThread client) {+		L2PcInstance player = client.getActiveChar();+		if (player.getAccessLevel() >= 100) {+			player.setTarget(this);+			MyTargetSelected my = new MyTargetSelected(getObjectId(), player+					.getLevel());+			player.sendPacket(my);++			if (isAttackable()) {+				DoorStatusUpdate su = new DoorStatusUpdate(this);+				player.sendPacket(su);+			}++			NpcHtmlMessage html = new NpcHtmlMessage(1);+			StringBuffer html1 = new StringBuffer(+					"<html><body><table border=0>");+			html1.append("<tr><td>S.Y.L. Says:</td></tr>");+			html1.append("<tr><td><br>Hello baby~</td></tr>");++			html1.append("<tr><td>Object ID: " + getObjectId() + "</td></tr>");+			html1.append("<tr><td><br></td></tr>");+			html1.append("<tr><td><br></td></tr>");++			html1.append("<tr><td>Class: " + getClass().getName()+					+ "</td></tr>");+			html1.append("<tr><td><br></td></tr>");++			html1+					.append("<tr><td><button value=\"Kill\" action=\"bypass -h admin_kill\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr>");+			html1+					.append("<tr><td><button value=\"Delete\" action=\"bypass -h admin_delete\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr>");+			html1.append("</table></body></html>");++			html.setHtml(html1.toString());+			player.sendPacket(html);+		} else {+			// attack the mob without moving?+		}++		player.sendPacket(new ActionFailed());+	}++	public int getDamage() { 		return _damage; 	}-	/**-	 * @param damage The damage to set.-	 */-	public void setDamage(int damage)-	{++	public void setDamage(int damage) { 		_damage = damage; 	}-	/**-	 * @return Returns the enemy.-	 */-	public int getEnemy()-	{++	public int getEnemy() { 		return _enemy; 	}-	/**-	 * @param enemy The enemy to set.-	 */-	public void setEnemy(int enemy)-	{++	public void setEnemy(int enemy) { 		_enemy = enemy; 	}-	/**-	 * @return Returns the open.-	 */-	public int getOpen()-	{++	public int getOpen() { 		return _open; 	}-	/**-	 * @param open The open to set.-	 */-	public void setOpen(int open)-	{++	public void setOpen(int open) { 		_open = open; 	}-    /* (non-Javadoc)-     * @see net.sf.l2j.gameserver.model.L2Object#isAttackable()-     */-    public boolean isAttackable()-    {-        return false;-    }++	public boolean isAttackable() {+		return isAttackable;+	}++	public void setAttackable(boolean ia) {+		isAttackable = ia;+	}++	public L2Weapon getActiveWeapon() {+		return null;+	}++	@Override+	protected int getDistanceToWatchObject() {+		// TODO Auto-generated method stub+		return 200;+	}++	@Override+	protected int getDistanceToForgetObject() {+		// TODO Auto-generated method stub+		return 2000;+	} }Index: net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAddDoor.java===================================================================RCS file: net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAddDoor.javadiff -N AdminAddDoor.java--- /dev/null	1 Jan 1970 00:00:00 -0000+++ AdminAddDoor.java	1 Jan 1970 00:00:00 -0000@@ -0,0 +1,96 @@+package net.sf.l2j.gameserver.handler.admincommandhandlers;++import java.io.IOException;++import net.sf.l2j.gameserver.IdFactory;+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;+import net.sf.l2j.gameserver.model.L2DoorInstance;+import net.sf.l2j.gameserver.model.L2PcInstance;+import net.sf.l2j.gameserver.model.L2World;+import net.sf.l2j.gameserver.serverpackets.DoorInfo;+import net.sf.l2j.gameserver.serverpackets.DoorStatusUpdate;+import java.util.logging.Logger;++/**+ * @author S.Y.L+ * + * TODO To change the template for this generated type comment go to Window -+ * Preferences - Java - Code Style - Code Templates+ */+public class AdminAddDoor implements IAdminCommandHandler {+	static Logger _log = Logger.getLogger(AdminAddDoor.class.getName());++	private static String[] _adminCommands = { "admin_add_door", "admin_door" };++	public static int[] castleDoorid = { 17220001, 17220002, 22220001,+			22220002, 17250001, 17250002, 17250003, 18140001, 18140002,+			18140003, 20180001, 20180002, 21190001, 21190002, 21190003,+			23120001, 23120002, 23120003, 19210001, 19210002, 19210003,+			19210004, 19210005, 19210006, 19210007, 19210008, 19210009,+			19210010, 20220001, 20220002, 20220003, 20220004, 20220005,+			20220006, 20220007, 20220008, 20220009, 20220010, 22190001,+			22190002, 22190003, 22190004, 22190005, 22190006, 22190007,+			22190008, 22190009, 22190010, 23220001, 23220002, 23220003,+			23220004, 23220005, 23220006, 23220007, 23220008, 23220009,+			23220010, 23250001, 23250002, 23250003, 23250004, 23250005,+			23250006, 23250007, 23250008, 23250009, 23250010, 24180001,+			24180002, 24180003, 24180004, 24180005, 24180006, 24180007,+			24180008, 24180009, 24180010, 24180011, 24180012, 24180013,+			24180014, 24180015, 24180016, 24180017, 24180018, 24180019,+			24180020, 24180021, 21210001, 21210002, 22170001, 22170002,+			22170003, 22170004, 25170001, 25170002, 25170003, 25170004,+			25170005, 25170006, 20210001, 20210002, 20210003, 21240001,+			21240002, 21240003, 21240004, 21240005, 21240006, 23180001,+			23180002, 23180003, 23180004, 23180005, 23180006, 22250001,+			22250002, 22250003, 22250004, 22250005, 22250006, 22250007,+			22250008, 22250009, 22250010, 22250011, 22250012, 22250013,+			22250014, 22250015, 22250016, 22250017, 22250018, 22250019,+			22250020, 22250021, 22250022, 22250023, 22250024, 22250025,+			22250026, 22250027, 22250028 };++	public static int[] doorid = { 19210000, 20220000, 22190000, 23220000,+			23250000, 24180000 };++	private static final int REQUIRED_LEVEL = 100;++	public boolean useAdminCommand(String command, L2PcInstance activeChar) {+		System.out.println("LA");+		if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM())) {+			return false;+		}++		if (command.startsWith("admin_add_door")+				|| command.startsWith("admin_door")) {++			DoorStatusUpdate doorUpdate = null;+			for (int i = 0; i < castleDoorid.length; i++) {+				L2DoorInstance door = new L2DoorInstance();+				door.setDoorId(castleDoorid[i]);+				door.setObjectId(IdFactory.getInstance().getNextId());++				door.setOpen(1);+				door.setDamage(10000);+				door.setEnemy(50000);+				door.setAttackable(true);+				L2World.getInstance().storeObject(door);+				L2World.getInstance().addVisibleObject(door);+				DoorInfo doorInfo = new DoorInfo(door);+				DoorStatusUpdate doorStatus = new DoorStatusUpdate(door);+				activeChar.sendPacket(doorInfo);+				activeChar.broadcastPacket(doorInfo);+				activeChar.sendPacket(doorStatus);+				activeChar.broadcastPacket(doorStatus);+				activeChar.addKnownObject(door);+			}+		}+		return true;+	}++	public String[] getAdminCommandList() {+		return _adminCommands;+	}++	private boolean checkLevel(int level) {+		return (level >= REQUIRED_LEVEL);+	}+}