diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java
index cc20ec8..30d0f12 100644
--- a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java
+++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java
@@ -580,7 +580,7 @@ public class ItemDao {
try {
sqlConnection = Storage.getStorage().getConnection();
- preparedStatement = Storage.getStorage().prepare("DELETE items WHERE is_hidden = 0 AND is_trading = 0 AND room_id = 0 AND user_id = ?", sqlConnection);
+ preparedStatement = Storage.getStorage().prepare("DELETE FROM items WHERE is_hidden = 0 AND is_trading = 0 AND room_id = 0 AND user_id = ?", sqlConnection);
preparedStatement.setInt(1, userId);
preparedStatement.execute();
diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java
index ad4f45d..f91cc04 100644
--- a/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java
+++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java
@@ -538,4 +538,8 @@ public class PlayerDetails {
public String getPreviousRespectDay() {
return previousRespectDay;
}
+
+ public String getIpAddress() {
+ return PlayerDao.getLatestIp(this.getId());
+ }
}
diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java
index 8c88a1a..44b698e 100644
--- a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java
+++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java
@@ -150,8 +150,8 @@ public class RoomTradeManager {
* @param tradeBanned the person that is trade banned.
*/
public static void addTradeBan(Player tradeBanned) {
- tradeBanned.send(new ALERT("You have been trade banned for 7 days for suspicious activity. Do not give credits to other users.
Read for more info: https://classichabbo.com/articles/22-trade-banned"));
- tradeBanned.getDetails().setTradeBanExpiration(DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(7));
+ tradeBanned.send(new ALERT("You have been trade banned for 5 days for suspicious activity. Do not give credits to other users."));
+ tradeBanned.getDetails().setTradeBanExpiration(DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(5));
ItemDao.saveTradeBanExpire(tradeBanned.getDetails().getId(), tradeBanned.getDetails().getTradeBanExpiration());
}
diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java
index b8d856c..d0496cf 100644
--- a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java
+++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java
@@ -147,13 +147,14 @@ public class GRPC implements MessageEvent {
return;
}
- //if (item.getDefinition().hasBehaviour(ItemBehaviour.REDEEMABLE)) {
+ if (item.getDefinition().hasBehaviour(ItemBehaviour.REDEEMABLE)) {
if (!player.hasFuse(Fuseright.MUTE)
- && giftedUserDetails.getId() != player.getDetails().getId()) {
+ && giftedUserDetails.getId() != player.getDetails().getId()
+ && giftedUserDetails.getIpAddress().equals(player.getDetails().getIpAddress())) {
RoomTradeManager.addTradeBan(player);
return;
}
- //}
+ }
}
String presentNote = reader.readString();
diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java
index 7d8a9d3..03d34cd 100644
--- a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java
+++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java
@@ -4,8 +4,10 @@ import org.alexdev.havana.dao.mysql.ItemDao;
import org.alexdev.havana.dao.mysql.TransactionDao;
import org.alexdev.havana.game.fuserights.Fuseright;
import org.alexdev.havana.game.item.Item;
+import org.alexdev.havana.game.item.ItemManager;
import org.alexdev.havana.game.item.base.ItemBehaviour;
import org.alexdev.havana.game.player.Player;
+import org.alexdev.havana.game.player.PlayerDetails;
import org.alexdev.havana.game.player.PlayerManager;
import org.alexdev.havana.game.room.Room;
import org.alexdev.havana.game.room.managers.RoomTradeManager;
@@ -64,14 +66,17 @@ public class PLACESTUFF implements MessageEvent {
}
}
+ PlayerDetails ownerDetails = PlayerManager.getInstance().getPlayerData(room.getData().getOwnerId());
+
// Giving credits to self on same IP is suspicious behaviour
- //if (item.hasBehaviour(ItemBehaviour.REDEEMABLE) || ItemManager.getInstance().hasPresentBehaviour(item, ItemBehaviour.REDEEMABLE)) {
+ if (item.hasBehaviour(ItemBehaviour.REDEEMABLE) || ItemManager.getInstance().hasPresentBehaviour(item, ItemBehaviour.REDEEMABLE)) {
if (!player.hasFuse(Fuseright.MUTE)
- && room.getData().getOwnerId() != player.getDetails().getId()) {
+ && room.getData().getOwnerId() != player.getDetails().getId()
+ && player.getDetails().getIpAddress().equals(ownerDetails.getIpAddress())) {
RoomTradeManager.addTradeBan(player);
return;
}
- //}
+ }
var ownerData = PlayerManager.getInstance().getPlayerData(room.getData().getOwnerId());
diff --git a/tools/www-tpl/default-en/homes/widget/guestbook/add.tpl b/tools/www-tpl/default-en/homes/widget/guestbook/add.tpl
index fb7c289..94ceb35 100644
--- a/tools/www-tpl/default-en/homes/widget/guestbook/add.tpl
+++ b/tools/www-tpl/default-en/homes/widget/guestbook/add.tpl
@@ -6,7 +6,7 @@