diff --git a/pom.xml b/pom.xml
index 4f2ad716..ef4c1a5a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,6 +104,25 @@
2.8.9
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.15.2
+
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.15.2
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.15.2
+
+
mysql
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java
index f216e3c8..1a926b1e 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/InteractionWired.java
@@ -7,7 +7,6 @@ import com.eu.habbo.habbohotel.items.interactions.wired.WiredSettings;
import com.eu.habbo.habbohotel.items.interactions.wired.interfaces.IWiredInteraction;
import com.eu.habbo.habbohotel.rooms.Room;
import com.eu.habbo.habbohotel.rooms.RoomUnit;
-import com.eu.habbo.habbohotel.wired.WiredExclusionStrategy;
import com.eu.habbo.habbohotel.wired.WiredHandler;
import com.eu.habbo.messages.ClientMessage;
import com.eu.habbo.messages.outgoing.MessageComposer;
@@ -15,6 +14,7 @@ import com.eu.habbo.messages.outgoing.rooms.items.OneWayDoorStatusMessageCompose
import com.eu.habbo.messages.outgoing.wired.WiredConditionDataComposer;
import com.eu.habbo.messages.outgoing.wired.WiredEffectDataComposer;
import com.eu.habbo.messages.outgoing.wired.WiredTriggerDataComposer;
+import com.fasterxml.jackson.core.JsonProcessingException;
import gnu.trove.map.hash.TLongLongHashMap;
import lombok.Getter;
import lombok.Setter;
@@ -32,7 +32,6 @@ public abstract class InteractionWired extends InteractionDefault implements IWi
@Getter
@Setter
private WiredSettings wiredSettings;
-
private long cooldown;
private final TLongLongHashMap userExecutionCache = new TLongLongHashMap(3);
@@ -64,13 +63,11 @@ public abstract class InteractionWired extends InteractionDefault implements IWi
if(wiredData.startsWith("{")) {
this.wiredSettings = WiredHandler.getGsonBuilder().create().fromJson(wiredData, WiredSettings.class);
}
-
- this.loadDefaultParams();
}
/**
*
- * When double clicking into the wired, verify items first and load its default parameters
+ * When double-clicking into the wired, verify items first and load its default parameters
* then create a composer based on it's Wired Settings
*
* @param client
@@ -82,9 +79,6 @@ public abstract class InteractionWired extends InteractionDefault implements IWi
public void onClick(GameClient client, Room room, Object[] objects) throws Exception {
this.wiredSettings.getItems(room);
- //TODO Im not sure about this, the function is optional on its children maybe later just make it abstract
- this.loadDefaultParams();
-
if (client != null) {
if (room.hasRights(client.getHabbo())) {
MessageComposer composer = null;
@@ -148,10 +142,15 @@ public abstract class InteractionWired extends InteractionDefault implements IWi
if (this.needsUpdate()) {
//TODO HERE IS WERE WIRED_SAVE_EXCEPTION WILL BE THROWN
//EXAMPLE: if StringParam should be number, throw error here, maybe activating a flag in wiredSettings that string params are numbers
+ this.loadDefaultParams();
- WiredExclusionStrategy exclusionStrategy = new WiredExclusionStrategy(this.wiredSettings);
+ String wiredData = "";
- String wiredData = WiredHandler.getGsonBuilder().setExclusionStrategies(exclusionStrategy).create().toJson(this.wiredSettings);
+ try {
+ wiredData = WiredHandler.getObjectMapper().writeValueAsString(this.wiredSettings);
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
if(wiredData.equalsIgnoreCase("{}")) {
wiredData = "";
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/WiredSettings.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/WiredSettings.java
index 8fdba9dc..7264bca5 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/WiredSettings.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/WiredSettings.java
@@ -2,9 +2,9 @@ package com.eu.habbo.habbohotel.items.interactions.wired;
import com.eu.habbo.habbohotel.items.interactions.wired.interfaces.IWiredSettings;
import com.eu.habbo.habbohotel.rooms.Room;
-import com.eu.habbo.habbohotel.users.Habbo;
import com.eu.habbo.habbohotel.users.HabboItem;
-import gnu.trove.map.hash.THashMap;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
import gnu.trove.set.hash.THashSet;
import lombok.Getter;
import lombok.Setter;
@@ -15,22 +15,27 @@ import java.util.List;
public class WiredSettings implements IWiredSettings {
@Getter
@Setter
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
private List integerParams;
@Getter
@Setter
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
private String stringParam;
@Getter
@Setter
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
private List itemIds;
@Getter
@Setter
+ @JsonInclude(JsonInclude.Include.NON_DEFAULT)
private int delay;
@Getter
@Setter
- private transient int selectionType;
+ @JsonIgnore
+ private int selectionType;
public WiredSettings() {
this.itemIds = new ArrayList<>();
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionDateRangeActive.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionDateRangeActive.java
index 5a6ef2ee..a7f6ed4a 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionDateRangeActive.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionDateRangeActive.java
@@ -59,6 +59,14 @@ public class WiredConditionDateRangeActive extends InteractionWiredCondition {
return startDate < time && endDate >= time;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
/**
* Returns the {@link WiredConditionType} of this object.
* @return the type of this wired condition
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java
index 61297586..70a575ed 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionFurniHaveFurni.java
@@ -51,6 +51,13 @@ public class WiredConditionFurniHaveFurni extends InteractionWiredCondition {
}
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.FURNI_HAS_FURNI;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboCount.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboCount.java
index 3ab4ca4a..2c048889 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboCount.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboCount.java
@@ -33,6 +33,14 @@ public class WiredConditionHabboCount extends InteractionWiredCondition {
return userCount >= lowerLimit && userCount <= upperLimit;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.USER_COUNT;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasEffect.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasEffect.java
index 84047e17..57174423 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasEffect.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasEffect.java
@@ -34,6 +34,13 @@ public class WiredConditionHabboHasEffect extends InteractionWiredCondition {
return roomUnit.getEffectId() == effectId;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.ACTOR_WEARS_EFFECT;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasHandItem.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasHandItem.java
index 3270ce20..416e9f06 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasHandItem.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionHabboHasHandItem.java
@@ -33,6 +33,13 @@ public class WiredConditionHabboHasHandItem extends InteractionWiredCondition {
return roomUnit.getHandItem() == handItemId;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.ACTOR_HAS_HANDITEM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionLessTimeElapsed.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionLessTimeElapsed.java
index e5c71a6c..7d562667 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionLessTimeElapsed.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionLessTimeElapsed.java
@@ -30,6 +30,13 @@ public class WiredConditionLessTimeElapsed extends InteractionWiredCondition {
return (Emulator.getIntUnixTimestamp() - room.getLastTimerReset()) / 0.5 < cycles;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.TIME_LESS_THAN;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java
index 3592eceb..cea8ed52 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMatchStatePosition.java
@@ -32,11 +32,6 @@ public class WiredConditionMatchStatePosition extends InteractionWiredCondition
super(id, userId, item, extradata, limitedStack, limitedSells);
}
- @Override
- public WiredConditionType getType() {
- return WiredConditionType.MATCH_SSHOT;
- }
-
@Override
public boolean execute(RoomUnit roomUnit, Room room, Object[] stuff) {
if(this.getWiredSettings().getItemIds().isEmpty()) {
@@ -74,6 +69,15 @@ public class WiredConditionMatchStatePosition extends InteractionWiredCondition
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public boolean shouldMatchState() {
return this.getWiredSettings().getIntegerParams().get(PARAM_STATE) == 1;
@@ -88,4 +92,9 @@ public class WiredConditionMatchStatePosition extends InteractionWiredCondition
public boolean shouldMatchPosition() {
return this.getWiredSettings().getIntegerParams().get(PARAM_POSITION) == 1;
}
+
+ @Override
+ public WiredConditionType getType() {
+ return WiredConditionType.MATCH_SSHOT;
+ }
}
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMoreTimeElapsed.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMoreTimeElapsed.java
index 289c8faf..feb39c35 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMoreTimeElapsed.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionMoreTimeElapsed.java
@@ -13,7 +13,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
public class WiredConditionMoreTimeElapsed extends InteractionWiredCondition {
- private static final int PARAM_CYCLE = 0;
+ public final int PARAM_CYCLE = 0;
public WiredConditionMoreTimeElapsed(ResultSet set, Item baseItem) throws SQLException {
super(set, baseItem);
@@ -28,6 +28,14 @@ public class WiredConditionMoreTimeElapsed extends InteractionWiredCondition {
int cycles = this.getWiredSettings().getIntegerParams().get(PARAM_CYCLE);
return (Emulator.getIntUnixTimestamp() - room.getLastTimerReset()) / 0.5 > cycles;
}
+
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.TIME_MORE_THAN;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java
index 6f5481e7..88dae5fd 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotFurniHaveFurni.java
@@ -52,6 +52,13 @@ public class WiredConditionNotFurniHaveFurni extends InteractionWiredCondition {
}
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.NOT_FURNI_HAVE_FURNI;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotInTeam.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotInTeam.java
index e5b7130c..375329a1 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotInTeam.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionNotInTeam.java
@@ -16,6 +16,7 @@ import java.sql.SQLException;
public class WiredConditionNotInTeam extends InteractionWiredCondition {
public final int PARAM_TEAM = 0;
+ private final GameTeamColors DEFAULT_TEAM = GameTeamColors.RED;
public WiredConditionNotInTeam(ResultSet set, Item baseItem) throws SQLException {
super(set, baseItem);
@@ -44,6 +45,15 @@ public class WiredConditionNotInTeam extends InteractionWiredCondition {
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(DEFAULT_TEAM.type);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.NOT_ACTOR_IN_TEAM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTeamMember.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTeamMember.java
index db2c0aab..cb178496 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTeamMember.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/conditions/WiredConditionTeamMember.java
@@ -16,6 +16,7 @@ import java.sql.SQLException;
public class WiredConditionTeamMember extends InteractionWiredCondition {
public final int PARAM_TEAM = 0;
+ private final GameTeamColors DEFAULT_TEAM = GameTeamColors.RED;
public WiredConditionTeamMember(ResultSet set, Item baseItem) throws SQLException {
super(set, baseItem);
@@ -46,6 +47,15 @@ public class WiredConditionTeamMember extends InteractionWiredCondition {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(DEFAULT_TEAM.type);
+ }
+ }
+
@Override
public WiredConditionType getType() {
return WiredConditionType.ACTOR_IN_TEAM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotFollowHabbo.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotFollowHabbo.java
index 906ace42..c4f81483 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotFollowHabbo.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotFollowHabbo.java
@@ -50,6 +50,13 @@ public class WiredEffectBotFollowHabbo extends InteractionWiredEffect {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.BOT_FOLLOW_AVATAR;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotGiveHandItem.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotGiveHandItem.java
index aaff903f..73b3afa5 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotGiveHandItem.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotGiveHandItem.java
@@ -66,6 +66,13 @@ public class WiredEffectBotGiveHandItem extends InteractionWiredEffect {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.BOT_GIVE_HANDITEM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalk.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalk.java
index 9dff1030..45f1786f 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalk.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalk.java
@@ -69,6 +69,13 @@ public class WiredEffectBotTalk extends InteractionWiredEffect {
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().size() == 0) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.BOT_TALK;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalkToHabbo.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalkToHabbo.java
index a772444a..32f90687 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalkToHabbo.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectBotTalkToHabbo.java
@@ -74,6 +74,13 @@ public class WiredEffectBotTalkToHabbo extends InteractionWiredEffect {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().size() == 0) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.BOT_TALK_TO_AVATAR;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java
index baa91bfa..42e591b7 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectChangeFurniDirection.java
@@ -108,6 +108,14 @@ public class WiredEffectChangeFurniDirection extends InteractionWiredEffect {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
private RoomUserRotation nextRotation(RoomUserRotation currentRotation) {
return switch (this.getWiredSettings().getIntegerParams().get(PARAM_BLOCKED_ACTION)) {
case ACTION_TURN_BACK -> RoomUserRotation.fromValue(currentRotation.getValue()).getOpposite();
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScore.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScore.java
index 647e4440..68b8c78e 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScore.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScore.java
@@ -97,6 +97,14 @@ public class WiredEffectGiveScore extends InteractionWiredEffect {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(1);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.GIVE_SCORE;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScoreToTeam.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScoreToTeam.java
index c0153cb8..03d60277 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScoreToTeam.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectGiveScoreToTeam.java
@@ -23,6 +23,8 @@ public class WiredEffectGiveScoreToTeam extends InteractionWiredEffect {
public final int PARAM_TEAM = 2;
private final TIntIntHashMap startTimes = new TIntIntHashMap();
+ private final GameTeamColors DEFAULT_TEAM = GameTeamColors.RED;
+
public WiredEffectGiveScoreToTeam(int id, int userId, Item item, String extradata, int limitedStack, int limitedSells) {
super(id, userId, item, extradata, limitedStack, limitedSells);
}
@@ -69,6 +71,15 @@ public class WiredEffectGiveScoreToTeam extends InteractionWiredEffect {
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(1);
+ this.getWiredSettings().getIntegerParams().add(DEFAULT_TEAM.type);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.GIVE_SCORE_TEAM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectJoinTeam.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectJoinTeam.java
index 01a05aea..04a16702 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectJoinTeam.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectJoinTeam.java
@@ -23,6 +23,7 @@ import java.util.List;
public class WiredEffectJoinTeam extends InteractionWiredEffect {
public final int PARAM_TEAM = 0;
+ private GameTeamColors DEFAULT_TEAM = GameTeamColors.RED;
public WiredEffectJoinTeam(ResultSet set, Item baseItem) throws SQLException {
super(set, baseItem);
@@ -62,6 +63,13 @@ public class WiredEffectJoinTeam extends InteractionWiredEffect {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(DEFAULT_TEAM.type);
+ }
+ }
+
@Override
public WiredEffectType getType() {
return WiredEffectType.JOIN_TEAM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java
index 95b7506b..c39962bd 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMatchFurni.java
@@ -1,15 +1,12 @@
package com.eu.habbo.habbohotel.items.interactions.wired.effects;
-import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.items.Item;
import com.eu.habbo.habbohotel.items.interactions.InteractionWiredEffect;
import com.eu.habbo.habbohotel.items.interactions.wired.interfaces.InteractionWiredMatchFurniSettings;
import com.eu.habbo.habbohotel.rooms.*;
import com.eu.habbo.habbohotel.users.HabboItem;
import com.eu.habbo.habbohotel.wired.WiredEffectType;
-import com.eu.habbo.habbohotel.wired.WiredHandler;
import com.eu.habbo.habbohotel.wired.WiredMatchFurniSetting;
-import com.eu.habbo.messages.incoming.wired.WiredSaveException;
import com.eu.habbo.messages.outgoing.rooms.items.FloorItemOnRollerComposer;
import gnu.trove.set.hash.THashSet;
import lombok.Getter;
@@ -17,9 +14,6 @@ import lombok.extern.slf4j.Slf4j;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
@Slf4j
public class WiredEffectMatchFurni extends InteractionWiredEffect implements InteractionWiredMatchFurniSettings {
@@ -86,6 +80,15 @@ public class WiredEffectMatchFurni extends InteractionWiredEffect implements Int
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public boolean shouldMatchState() {
return this.getWiredSettings().getIntegerParams().get(PARAM_STATE) == 1;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTo.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTo.java
index 1d018a22..56167acc 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTo.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/effects/WiredEffectMoveFurniTo.java
@@ -8,18 +8,11 @@ import com.eu.habbo.habbohotel.rooms.RoomTile;
import com.eu.habbo.habbohotel.rooms.RoomUnit;
import com.eu.habbo.habbohotel.users.HabboItem;
import com.eu.habbo.habbohotel.wired.WiredEffectType;
-import com.eu.habbo.habbohotel.wired.WiredHandler;
-import com.eu.habbo.messages.incoming.wired.WiredSaveException;
import com.eu.habbo.messages.outgoing.rooms.items.FloorItemOnRollerComposer;
import gnu.trove.set.hash.THashSet;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
public class WiredEffectMoveFurniTo extends InteractionWiredEffect {
public final int PARAM_DIRECTION = 0;
@@ -79,6 +72,14 @@ public class WiredEffectMoveFurniTo extends InteractionWiredEffect {
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().isEmpty()) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ this.getWiredSettings().getIntegerParams().add(1);
+ }
+ }
+
@Override
protected long requiredCooldown() {
return 495;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtSetTime.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtSetTime.java
index 6d429b35..8b90322e 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtSetTime.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtSetTime.java
@@ -32,6 +32,13 @@ public class WiredTriggerAtSetTime extends InteractionWiredTrigger implements Wi
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().size() == 0) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ }
+ }
+
@Override
public void resetTimer() {
this.taskId++;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtTimeLong.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtTimeLong.java
index 9e3761bd..1dc95757 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtTimeLong.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerAtTimeLong.java
@@ -32,6 +32,13 @@ public class WiredTriggerAtTimeLong extends InteractionWiredTrigger implements W
return true;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().size() == 0) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ }
+ }
+
@Override
public void resetTimer() {
this.taskId++;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboEntersRoom.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboEntersRoom.java
index c6b86584..4250a2b8 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboEntersRoom.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboEntersRoom.java
@@ -11,7 +11,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
public class WiredTriggerHabboEntersRoom extends InteractionWiredTrigger {
- public final int PARAM_ANY_USER = 0;
public WiredTriggerHabboEntersRoom(ResultSet set, Item baseItem) throws SQLException {
super(set, baseItem);
}
@@ -22,9 +21,7 @@ public class WiredTriggerHabboEntersRoom extends InteractionWiredTrigger {
@Override
public boolean execute(RoomUnit roomUnit, Room room, Object[] stuff) {
- boolean anyUser = this.getWiredSettings().getIntegerParams().get(PARAM_ANY_USER) == 0;
-
- if(this.getWiredSettings().getStringParam().isEmpty() && !anyUser || anyUser) {
+ if(this.getWiredSettings().getStringParam().isEmpty()) {
return true;
}
@@ -37,13 +34,6 @@ public class WiredTriggerHabboEntersRoom extends InteractionWiredTrigger {
return false;
}
- @Override
- public void loadDefaultParams() {
- if(this.getWiredSettings().getIntegerParams().size() == 0) {
- this.getWiredSettings().getIntegerParams().add(0);
- }
- }
-
@Override
public WiredTriggerType getType() {
return WiredTriggerType.ENTER_ROOM;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboSaysKeyword.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboSaysKeyword.java
index 18b05113..bae1ebfb 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboSaysKeyword.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerHabboSaysKeyword.java
@@ -14,7 +14,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
public class WiredTriggerHabboSaysKeyword extends InteractionWiredTrigger {
- private static int PARAM_OWNER_ONLY = 0;
+ public int PARAM_OWNER_ONLY = 0;
public WiredTriggerHabboSaysKeyword(ResultSet set, Item baseItem) throws SQLException {
super(set, baseItem);
@@ -24,13 +24,6 @@ public class WiredTriggerHabboSaysKeyword extends InteractionWiredTrigger {
super(id, userId, item, extraData, limitedStack, limitedSells);
}
- @Override
- public void loadDefaultParams() {
- if(this.getWiredSettings().getIntegerParams().size() == 0) {
- this.getWiredSettings().getIntegerParams().add(0);
- }
- }
-
@Override
public boolean execute(RoomUnit roomUnit, Room room, Object[] stuff) {
if (this.getWiredSettings().getStringParam().isEmpty()) {
@@ -49,6 +42,13 @@ public class WiredTriggerHabboSaysKeyword extends InteractionWiredTrigger {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().size() == 0) {
+ this.getWiredSettings().getIntegerParams().add(0);
+ }
+ }
+
@Override
public WiredTriggerType getType() {
return WiredTriggerType.SAY_SOMETHING;
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerRepeaterLong.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerRepeaterLong.java
index 58314aa2..bad6837c 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerRepeaterLong.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerRepeaterLong.java
@@ -14,7 +14,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
public class WiredTriggerRepeaterLong extends InteractionWiredTrigger implements ICycleable, WiredTriggerReset {
- private static final int PARAM_REPEAT_TIME = 0;
+ public final int PARAM_REPEAT_TIME = 0;
private int counter = 0;
public WiredTriggerRepeaterLong(ResultSet set, Item baseItem) throws SQLException {
diff --git a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerScoreAchieved.java b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerScoreAchieved.java
index f7d712fa..ac31e535 100644
--- a/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerScoreAchieved.java
+++ b/src/main/java/com/eu/habbo/habbohotel/items/interactions/wired/triggers/WiredTriggerScoreAchieved.java
@@ -35,6 +35,13 @@ public class WiredTriggerScoreAchieved extends InteractionWiredTrigger {
return false;
}
+ @Override
+ public void loadDefaultParams() {
+ if(this.getWiredSettings().getIntegerParams().size() == 0) {
+ this.getWiredSettings().getIntegerParams().add(1);
+ }
+ }
+
@Override
public WiredTriggerType getType() {
return WiredTriggerType.SCORE_ACHIEVED;
diff --git a/src/main/java/com/eu/habbo/habbohotel/wired/WiredExclusionStrategy.java b/src/main/java/com/eu/habbo/habbohotel/wired/WiredExclusionStrategy.java
deleted file mode 100644
index c281029c..00000000
--- a/src/main/java/com/eu/habbo/habbohotel/wired/WiredExclusionStrategy.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.eu.habbo.habbohotel.wired;
-
-import com.eu.habbo.habbohotel.items.interactions.wired.WiredSettings;
-import com.google.gson.ExclusionStrategy;
-import com.google.gson.FieldAttributes;
-
-public class WiredExclusionStrategy implements ExclusionStrategy {
- private WiredSettings wiredSettings;
- public WiredExclusionStrategy(WiredSettings settings) {
- this.wiredSettings = settings;
- }
- @Override
- public boolean shouldSkipField(FieldAttributes fieldAttributes) {
- String fieldName = fieldAttributes.getName();
-
- switch (fieldName) {
- case "stringParam":
- return this.wiredSettings.getStringParam().isEmpty();
- case "integerParams":
- return this.wiredSettings.getIntegerParams().size() == 0;
- case "delay":
- return this.wiredSettings.getDelay() == 0;
- case "itemIds":
- return this.wiredSettings.getItemIds().size() == 0;
- case "selectionType":
- default:
- return true;
- }
- }
-
- @Override
- public boolean shouldSkipClass(Class> aClass) {
- return false;
- }
-}
diff --git a/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java b/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java
index 79c0bad8..fe21586a 100644
--- a/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java
+++ b/src/main/java/com/eu/habbo/habbohotel/wired/WiredHandler.java
@@ -27,6 +27,7 @@ import com.eu.habbo.plugin.events.furniture.wired.WiredConditionFailedEvent;
import com.eu.habbo.plugin.events.furniture.wired.WiredStackExecutedEvent;
import com.eu.habbo.plugin.events.furniture.wired.WiredStackTriggeredEvent;
import com.eu.habbo.plugin.events.users.UserWiredRewardReceivedEvent;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.GsonBuilder;
import gnu.trove.set.hash.THashSet;
import lombok.extern.slf4j.Slf4j;
@@ -48,6 +49,8 @@ public class WiredHandler {
private static GsonBuilder gsonBuilder = null;
+ private static ObjectMapper objectMapper = null;
+
public static boolean handle(WiredTriggerType triggerType, RoomUnit roomUnit, Room room, Object[] stuff) {
if (triggerType == WiredTriggerType.CUSTOM) return false;
@@ -257,6 +260,14 @@ public class WiredHandler {
return gsonBuilder;
}
+ public static ObjectMapper getObjectMapper() {
+ if(objectMapper == null) {
+ objectMapper = new ObjectMapper();
+ }
+
+ return objectMapper;
+ }
+
public static boolean executeEffectsAtTiles(THashSet tiles, final RoomUnit roomUnit, final Room room, final Object[] stuff) {
for (RoomTile tile : tiles) {
if (room != null) {