Random stuff 3 (#312)

* Make ::update automatically restart server as well

* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)

* Revert "Fix noclip  (#302)"

This reverts commit 521ae52e4c.

* ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon

-Removed the clip command from the client;
-Fixed a typo in a dialogue;
-Fixed mud battlestaff nto working as runes (water and earth);
-Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot;

* Snow improvement

Nothing major

* Fixed Click to teleport command

Fixed Click to teleport command;

* cleaned stuff

* Update Commands.java

* Fixed picking up items requiring 2 clicks when not standing on/near it. Fixed the sound so it doesnt repeat itself anymore if spamclicked.

Fixed picking up items requiring 2 clicks when not standing on/near it. Fixed the sound so it doesnt repeat itself anymore if spamclicked.

Co-authored-by: Daniel Ginovker <dcress01@uoguelph.ca>
This commit is contained in:
Gptaqbc
2019-12-22 00:05:59 -05:00
committed by Daniel Ginovker
parent bda71ee34a
commit 17e5e7ea5c
3 changed files with 46 additions and 29 deletions
@@ -969,6 +969,8 @@ public abstract class Player {
public int soundVolume = 10;
public boolean soundDone;
/**
* Outputs a send packet which is built from the data params provided
* towards a connected user client channel.
@@ -27,6 +27,14 @@ public class PickupItem implements PacketType {
player.pItemY = player.getInStream().readSignedWordBigEndian();
player.pItemId = player.getInStream().readUnsignedWord();
player.pItemX = player.getInStream().readSignedWordBigEndian();
if (player.getItemAssistant().freeSlots() < 1)
{
if (!(player.getItemAssistant().playerHasItem(player.pItemId) && player.getItemAssistant().isStackable(player.pItemId)))
{
player.getPacketSender().sendMessage("Not enough inventory space...");
return;
}
}
if (Math.abs(player.getX() - player.pItemX) > 25 || Math.abs(player.getY() - player.pItemY) > 25) {
player.resetWalkingQueue();
return;
@@ -64,34 +72,37 @@ public class PickupItem implements PacketType {
}
SkillHandler.resetSkills(player);
player.getCombatAssistant().resetPlayerAttack();
if (player.getX() == player.pItemX && player.getY() == player.pItemY
|| player.getX() - 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() - 1 == player.pItemY && player.getX() == player.pItemX
|| player.getX() + 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() + 1 == player.pItemY && player.getX() == player.pItemX) {
GameEngine.itemHandler.removeGroundItem(player, player.pItemId, player.pItemX,
player.pItemY, true);
player.getPacketSender().sendSound(SoundList.ITEM_PICKUP, 100, 0);
GlobalDropsHandler.pickup(player, player.pItemId, player.pItemX, player.pItemY);
} else {
player.walkingToItem = true;
//player.getPacketSender().sendMessage("walkingToItem");
player.soundDone = false;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (!player.walkingToItem) {
container.stop();
}
if (player.getX() == player.pItemX && player.getY() == player.pItemY && player.walkingToItem) {
GameEngine.itemHandler.removeGroundItem(player, player.pItemId, player.pItemX, player.pItemY, true);
if ((player.getX() == player.pItemX && player.getY() == player.pItemY
|| player.getX() - 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() - 1 == player.pItemY && player.getX() == player.pItemX
|| player.getX() + 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() + 1 == player.pItemY && player.getX() == player.pItemX
||player.getX() == player.pItemX && player.getY() == player.pItemY) && player.walkingToItem) {
container.stop();
}
}
@Override
public void stop() {
player.walkingToItem = false;
}
}, 1);
}
@Override
public void stop() {
player.walkingToItem = false;
//player.getPacketSender().sendMessage("!walkingToItem - stop");
GameEngine.itemHandler.removeGroundItem(player, player.pItemId, player.pItemX, player.pItemY, true);
GlobalDropsHandler.pickup(player, player.pItemId, player.pItemX, player.pItemY);
if (!player.soundDone)
{
player.soundDone = true;
player.getPacketSender().sendSound(SoundList.ITEM_PICKUP, 100, 0);
}
}
}, 1);
}
}
@@ -150,7 +150,7 @@ public class GlobalDropsHandler {
* @param c
* cord y
*/
public static void pickup(Player player2, int a, int b, int c) {
public static void pickup(Player player, int a, int b, int c) {
GlobalDrop drop = itemExists(a, b, c);
if (drop == null) {
return;
@@ -158,16 +158,20 @@ public class GlobalDropsHandler {
if (drop.isTaken()) {
return;
}
if (player2.getItemAssistant().freeSlots() > 0) {
player2.getItemAssistant().addItem(drop.getId(), drop.getAmount());
drop.setTakenAt(System.currentTimeMillis());
drop.setTaken(true);
for (Player player : PlayerHandler.players) {
Client cl = (Client) player;
if (cl != null) {
cl.getPacketSender().removeGroundItem(drop.getId(), drop.getX(), drop.getY(), drop.getAmount());
spawnedDrops.remove(drop);
}
if (player.getItemAssistant().freeSlots() < 1) {
if (!(player.getItemAssistant().playerHasItem(player.pItemId) && player.getItemAssistant().isStackable(player.pItemId))) {
player.getPacketSender().sendMessage("Not enough inventory space...");
return;
}
}
player.getItemAssistant().addItem(drop.getId(), drop.getAmount());
drop.setTakenAt(System.currentTimeMillis());
drop.setTaken(true);
for (Player playerLoop : PlayerHandler.players) {
Client cl = (Client) playerLoop;
if (cl != null) {
cl.getPacketSender().removeGroundItem(drop.getId(), drop.getX(), drop.getY(), drop.getAmount());
spawnedDrops.remove(drop);
}
}
}