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 @@
  • - Alex + {{ entry.getUser().getName() }}
    {% if hasDeletePermission %}
    @@ -26,4 +26,4 @@
     
    {{ entry.getCreationDate() }}
    -
  • \ No newline at end of file +