Cleanup part 1 (#213)

* Clean up part 1

- Removed lots of dead code
- Removed unncessary files not in use
- Cleaned up small bits of code
- Removed a few warnings
- Server.java ---> GameEngine.java
- Constants.java ---> GameConstants.java

* Cape Dye

Rewrote cape dying

* Packaging

- redone ----> com.rebotted

* PacketSender/clean up

- ActionSender ---> PacketSender
- Moved many more packets to packetsender
- Cleaned up more dead code

* Merge Client/Player

- Merged Client.java with Player.java (both were doing same thing so redundant to have both)
- Removed some more dead code
- Tidy a few small things up

* Quests/more clean up

- Removed more dead code
- Made quests static in order to clean them up a bit

* More cleanup

- Removed some more of the dead quest code
- Correcting naming of some of the shop variables
This commit is contained in:
Mr Extremez
2019-11-25 11:08:56 -06:00
committed by Daniel Ginovker
parent 3d1ae1b288
commit d876a923b9
379 changed files with 80684 additions and 83170 deletions
@@ -0,0 +1,489 @@
package com.rebotted.net.packets.impl;
import java.util.function.Consumer;
import com.rebotted.GameEngine;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.content.minigames.castlewars.CastleWarObjects;
import com.rebotted.game.content.minigames.castlewars.CastleWars;
import com.rebotted.game.content.skills.core.Woodcutting;
import com.rebotted.game.content.skills.thieving.Stalls;
import com.rebotted.game.globalworldobjects.Doors;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.objects.Objects;
import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType;
import com.rebotted.world.clip.Region;
public class ClickObject implements PacketType {
public static final int FIRST_CLICK = 132, SECOND_CLICK = 252,
THIRD_CLICK = 70, FOURTH_CLICK = 234;
public void onObjectReached(Player player, Consumer<Player> consumer) {
if (System.currentTimeMillis() - player.clickDelay < 300)
return;
player.clickDelay = System.currentTimeMillis();
final int objectX = player.objectX;
final int objectY = player.objectY;
final int objectId = player.objectId;
Objects object = Region.getObject(objectId, objectX, objectY, player.heightLevel);
if (object == null) {
// Since most content is coded poorly we will have to assume the object is valid
// but we won't know the face direction, so some objects will behave incorrectly
// if the object size is not equal on both axes and the face
// is not set to zero. The proper fix would be when an object is removed or added
// they are added into the region configuration properly so we can retrieve
// the object at runtime. This will suffice for now.
object = new Objects(objectId, objectX, objectY, player.heightLevel, 0, 10, 0);
}
int[] size = object.getObjectSize();
CycleEvent objectWalkToEvent = new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (objectX != player.objectX || objectY != player.objectY || objectId != player.objectId) {
container.stop();
return;
}
int x = player.absX;
int y = player.absY;
int xMin = objectX - 1;
int xMax = xMin + size[0] + 1;
int yMin = objectY - 1;
int yMax = yMin + size[1] + 1;
if (x >= xMin && y >= yMin && x <= xMax && y <= yMax) {
consumer.accept(player);
container.stop();
}
}
@Override
public void stop() {}
};
player.startCurrentTask(1, objectWalkToEvent);
objectWalkToEvent.execute(player.getCurrentTask()); // cheap hax for instant event execution, since we don't support it
}
@Override
public void processPacket(final Player player, int packetType, int packetSize) {
player.clickObjectType = player.objectX = player.objectId = player.objectY = 0;
player.getPlayerAssistant().resetFollow();
player.getCombatAssistant().resetPlayerAttack();
player.getPlayerAssistant().requestUpdates();
player.endCurrentTask();
switch (packetType) {
case FIRST_CLICK:
player.objectX = player.getInStream().readSignedWordBigEndianA();
player.objectId = player.getInStream().readUnsignedWord();
player.objectY = player.getInStream().readUnsignedWordA();
onObjectReached(player, (p) -> completeObjectClick(p, 1));
break;
case SECOND_CLICK:
player.objectId = player.getInStream().readUnsignedWordBigEndianA();
player.objectY = player.getInStream().readSignedWordBigEndian();
player.objectX = player.getInStream().readUnsignedWordA();
onObjectReached(player, (p) -> completeObjectClick(p, 2));
break;
case THIRD_CLICK: // 'F'
player.objectX = player.getInStream().readSignedWordBigEndian();
player.objectY = player.getInStream().readUnsignedWord();
player.objectId = player.getInStream().readUnsignedWordBigEndianA();
onObjectReached(player, (p) -> completeObjectClick(p, 3));
break;
case FOURTH_CLICK:
player.objectX = player.getInStream().readSignedWordBigEndianA();
player.objectId = player.getInStream().readUnsignedWordA();
player.objectY = player.getInStream().readUnsignedWordBigEndianA();
onObjectReached(player, (p) -> completeObjectClick(p, 4));
break;
}
}
public void completeObjectClick(final Player p, int objectOption) {
p.turnPlayerTo(p.objectX, p.objectY);
switch (objectOption) {
case 1:
if (p.playerRights == 3 || p.debugMode) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 1, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY));
}
//todo: check if it's a door before fire handle
Doors.getSingleton().handleDoor(p.objectId, p.objectX, p.objectY, p.heightLevel, p);
/*if (client.performingAction) {
return;
}*/
if (Stalls.isObject(p.objectId)) {
Stalls.attemptStall(p, p.objectId, p.objectX, p.objectX);
return;
}
if (p.teleTimer > 0) {
p.getPacketSender().sendMessage(
"You cannot use objects while teleporting.");
return;
}
if (Math.abs(p.getX() - p.objectX) > 25 || Math.abs(p.getY() - p.objectY) > 25) {
p.resetWalkingQueue();
break;
}
switch (p.objectId) {
case 1276:
Woodcutting.startWoodcutting(p, 0, p.objectX, p.objectY, p.clickObjectType);
break;
case 1278:
Woodcutting.startWoodcutting(p, 1, p.objectX, p.objectY, p.clickObjectType);
break;
case 1286:
Woodcutting.startWoodcutting(p, 2, p.objectX, p.objectY, p.clickObjectType);
break;
case 1281:
Woodcutting.startWoodcutting(p, 3, p.objectX, p.objectY, p.clickObjectType);
break;
case 1308:
Woodcutting.startWoodcutting(p, 4, p.objectX, p.objectY, p.clickObjectType);
break;
case 5552:
Woodcutting.startWoodcutting(p, 5, p.objectX, p.objectY, p.clickObjectType);
break;
case 1307:
Woodcutting.startWoodcutting(p, 6, p.objectX, p.objectY, p.clickObjectType);
break;
case 1309:
Woodcutting.startWoodcutting(p, 7, p.objectX, p.objectY, p.clickObjectType);
break;
case 1306:
Woodcutting.startWoodcutting(p, 8, p.objectX, p.objectY, p.clickObjectType);
break;
case 5551:
Woodcutting.startWoodcutting(p, 9, p.objectX, p.objectY, p.clickObjectType);
break;
case 5553:
Woodcutting.startWoodcutting(p, 10, p.objectX, p.objectY, p.clickObjectType);
break;
case 3033:
Woodcutting.startWoodcutting(p, 11, p.objectX, p.objectY, p.clickObjectType);
break;
case 3037:
Woodcutting.startWoodcutting(p, 12, p.objectX, p.objectY, p.clickObjectType);
break;
case 1282:
Woodcutting.startWoodcutting(p, 13, p.objectX, p.objectY, p.clickObjectType);
break;
case 1383:
Woodcutting.startWoodcutting(p, 14, p.objectX, p.objectY, p.clickObjectType);
break;
case 2023:
Woodcutting.startWoodcutting(p, 15, p.objectX, p.objectY, p.clickObjectType);
break;
case 1319:
Woodcutting.startWoodcutting(p, 16, p.objectX, p.objectY, p.clickObjectType);
break;
case 1318:
Woodcutting.startWoodcutting(p, 17, p.objectX, p.objectY, p.clickObjectType);
break;
case 1315:
Woodcutting.startWoodcutting(p, 18, p.objectX, p.objectY, p.clickObjectType);
break;
case 1316:
Woodcutting.startWoodcutting(p, 19, p.objectX, p.objectY, p.clickObjectType);
break;
case 1332:
Woodcutting.startWoodcutting(p, 20, p.objectX, p.objectY, p.clickObjectType);
break;
case 1292:
if (p.spiritTree == false && p.clickedTree == true) {
p.getPacketSender().sendMessage("You have already spawned a tree spirit.");
return;
}
if (p.spiritTree == false && p.clickedTree == false) {
p.getPacketSender().sendMessage("You attempt to chop the tree, and a tree spirit appears.");
NpcHandler.spawnNpc(p, 655, p.getX(), p.getY(), 0, 0, 225, 20, 80, 80, true, false);
p.clickedTree = true;
} else if (p.spiritTree == true) {
Woodcutting.startWoodcutting(p, 21, p.objectX, p.objectY, p.clickObjectType);
}
break;
case 1294:
case 1293:
case 1317:
p.getPlayerAssistant().spiritTree();
break;
case 2164:
case 2165:
GameEngine.trawler.fixNet(p);
break;
case 4462:
case 4460:
case 4461:
case 4463:
case 4464:
case 4459:
if (!CastleWars.isInCw(p)) {
p.getPacketSender().sendMessage("You have to be in castle wars to use these objects.");
CastleWars.resetPlayer(p);
return;
}
CastleWarObjects.handleObject(p, p.objectId, p.objectX, p.objectY);
break;
case 2513:
p.getRangersGuild().fireAtTarget();
break;
case 8930:
p.fade(1975, 4409, 3);
break;
case 8929:
p.fade(2442, 10147, 0);
break;
case 1568:
if (p.objectX == 2399 && p.objectY == 3099) {
p.getPacketSender()
.object(9472, 2399, 3099, 0, 10);
}
if (p.objectX == 2400 && p.objectY == 3108) {
p.getPacketSender()
.object(9472, 2400, 3108, 2, 10);
}
break;
case 4437:
if (p.getItemAssistant().playerHasItem(1265, 1)) {
p.getPacketSender().sendMessage(
"You start to break up the rocks...");
p.startAnimation(625);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
container.stop();
p.startAnimation(65535);
}
@Override
public void stop() {
p.getPacketSender().object(-1,
p.objectX, p.objectY, 0, 10);
p.getPacketSender().object(4438,
p.objectX, p.objectY, 0, 10);
p.getPacketSender().sendMessage(
"You break up the rocks.");
}
}, 3);
}
break;
case 4438:
if (p.getItemAssistant().playerHasItem(1265, 1)) {
p.getPacketSender().sendMessage(
"You start to break up the rocks...");
p.startAnimation(625);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
stop();
p.startAnimation(65535);
}
@Override
public void stop() {
p.getPacketSender().object(-1,
p.objectX, p.objectY, 0, 10);
p.getPacketSender().sendMessage(
"You break up the rocks.");
}
}, 3);
}
break;
case 4448:
if (p.getItemAssistant().playerHasItem(1265, 1)) {
p.getPacketSender().sendMessage(
"You start to mine the wall...");
p.startAnimation(625);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
stop();
p.startAnimation(65535);
p.getPacketSender().sendMessage(
"You collapse the cave wall.");
}
@Override
public void stop() {
if ((p.objectX == 2390 || p.objectX == 2393)
&& (p.objectY == 9503 || p.objectY == 9500)) { // east
// cave
// side
p.getPacketSender().object(-1, 2391,
9501, 0, 10);
p.getPacketSender().object(4437, 2391,
9501, 0, 10);
CastleWars.collapseCave(1);
}
if ((p.objectX == 2399 || p.objectX == 2402)
&& (p.objectY == 9511 || p.objectY == 9514)) { // north
// cave
// side
p.getPacketSender().object(-1, 2400,
9512, 1, 10);
p.getPacketSender().object(4437, 2400,
9512, 1, 10);
CastleWars.collapseCave(0);
}
if ((p.objectX == 2408 || p.objectX == 2411)
&& (p.objectY == 9502 || p.objectY == 9505)) { // west
// cave
// side
p.getPacketSender().object(-1, 2409,
9503, 0, 10);
p.getPacketSender().object(4437, 2409,
9503, 0, 10);
CastleWars.collapseCave(3);
}
if ((p.objectX == 2400 || p.objectX == 2403)
&& (p.objectY == 9496 || p.objectY == 9493)) { // south
// cave
// side
p.getPacketSender().object(-1, 2401,
9494, 1, 10);
p.getPacketSender().object(4437, 2401,
9494, 1, 10);
CastleWars.collapseCave(2);
}
}
}, 3);
}
break;
case 1733:
if (p.objectX == 3058 && p.objectY == 3376) {
p.getPlayerAssistant().movePlayer(3058, 9776, 0);
} else if (p.objectX == 2603 && p.objectY == 3078) {
}
break;
case 55:
if (p.objectX == 3061 && p.objectY == 3374) {
p.getPlayerAssistant().movePlayer(3058, 9776, 0);
}
break;
case 9472:
if (p.objectX == 2399 && p.objectY == 3099) {
p.startAnimation(828);
p.stopMovement();
p.resetWalkingQueue();
p.getPlayerAssistant().requestUpdates();
p.getPacketSender().closeAllWindows();
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
container.stop();
p.startAnimation(65535);
p.getPlayerAssistant().movePlayer(2400, 9507,
0);
}
@Override
public void stop() {
}
}, 1);
}
if (p.objectX == 2400 && p.objectY == 3108) {
p.startAnimation(828);
p.stopMovement();
p.resetWalkingQueue();
p.getPlayerAssistant().requestUpdates();
p.getPacketSender().closeAllWindows();
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
stop();
p.startAnimation(65535);
p.getPlayerAssistant().movePlayer(2399, 9500, 0);
}
@Override
public void stop() {
}
}, 1);
}
break;
case 4387:
CastleWars.addToWaitRoom(p, 1); // saradomin
break;
case 4388:
CastleWars.addToWaitRoom(p, 2); // zamorak
break;
case 4408:
CastleWars.addToWaitRoom(p, 3); // guthix
break;
case 4389: // sara
case 4390: // zammy waiting room portal
CastleWars.leaveWaitingRoom(p);
break;
}
p.getObjects().firstClickObject(p.objectId, p.objectX, p.objectY);
break;
case 2:
if (p.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 2, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY));
}
if (Stalls.isObject(p.objectId)) {
Stalls.attemptStall(p, p.objectId, p.objectX, p.objectX);
return;
}
p.getObjects().secondClickObject(p.objectId, p.objectX, p.objectY);
break;
case 3: // 'F'
if (p.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 3, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY));
}
p.getObjects().thirdClickObject(p.objectId, p.objectX, p.objectY);
break;
case 4:
if (p.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 4, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY));
}
p.getObjects().fourthClickObject(p.objectId, p.objectX, p.objectY);
break;
}
}
}