Merge branch 'master' into feat/postgresql-database

This commit is contained in:
P0nk
2024-02-04 15:12:14 +01:00
9 changed files with 53 additions and 11 deletions

View File

@@ -22,6 +22,8 @@ public class ByteBufInPacket implements InPacket {
public byte readByte() {
return byteBuf.readByte();
}
@Override
public short readUnsignedByte() { return byteBuf.readUnsignedByte(); }
@Override
public short readShort() {

View File

@@ -4,6 +4,7 @@ import java.awt.*;
public interface InPacket extends Packet {
byte readByte();
short readUnsignedByte();
short readShort();
int readInt();
long readLong();

View File

@@ -59,7 +59,7 @@ public final class NPCMoreTalkHandler extends AbstractPacketHandler {
if (p.available() >= 4) {
selection = p.readInt();
} else if (p.available() > 0) {
selection = p.readByte();
selection = p.readUnsignedByte();
}
if (c.getQM() != null) {
if (c.getQM().isStart()) {

View File

@@ -232,10 +232,10 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
return;
}
short flag = eq.getFlag();
flag |= ItemConstants.LOCK;
if (eq.getExpiration() > -1) {
if (eq.getExpiration() > -1 && (eq.getFlag() & ItemConstants.LOCK) != ItemConstants.LOCK) {
return; //No perma items pls
}
flag |= ItemConstants.LOCK;
eq.setFlag(flag);
long period = 0;
@@ -250,7 +250,8 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
}
if (period > 0) {
eq.setExpiration(currentServerTime() + DAYS.toMillis(period));
long expiration = eq.getExpiration() > -1 ? eq.getExpiration() : currentServerTime();
eq.setExpiration(expiration + DAYS.toMillis(period));
}
// double-remove found thanks to BHB

View File

@@ -107,7 +107,7 @@ public class QuestScriptManager extends AbstractScriptManager {
public void end(Client c, short questid, int npc) {
Quest quest = Quest.getInstance(questid);
if (!c.getPlayer().getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) {
if (!c.getPlayer().getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED) || (!c.getPlayer().getMap().containsNPC(npc) && !quest.isAutoComplete())) {
dispose(c);
return;
}

View File

@@ -203,13 +203,13 @@ public class ItemInformationProvider {
} else if (itemId >= 1040000 && itemId < 1050000) {
theData = eqpStringData;
cat = "Eqp/Coat";
} else if (itemId >= 20000 && itemId < 22000) {
} else if (ItemConstants.isFace(itemId)) {
theData = eqpStringData;
cat = "Eqp/Face";
} else if (itemId >= 1080000 && itemId < 1090000) {
theData = eqpStringData;
cat = "Eqp/Glove";
} else if (itemId >= 30000 && itemId < 35000) {
} else if (ItemConstants.isHair(itemId)) {
theData = eqpStringData;
cat = "Eqp/Hair";
} else if (itemId >= 1050000 && itemId < 1060000) {