mirror of
https://git.krews.org/morningstar/Arcturus-Community.git
synced 2024-11-23 07:20:50 +01:00
Merge branch 'rank-inventory-effects' into 'dev'
Add rank effects to inventory See merge request morningstar/Arcturus-Community!88
This commit is contained in:
commit
4ef1f4f104
@ -747,11 +747,6 @@ public class RoomManager {
|
||||
}
|
||||
|
||||
int effect = habbo.getInventory().getEffectsComponent().activatedEffect;
|
||||
|
||||
if (effect == 0) {
|
||||
effect = habbo.getHabboInfo().getRank().getRoomEffect();
|
||||
}
|
||||
|
||||
room.giveEffect(habbo.getRoomUnit(), effect, -1);
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolBan;
|
||||
import com.eu.habbo.habbohotel.permissions.Permission;
|
||||
import com.eu.habbo.habbohotel.permissions.Rank;
|
||||
import com.eu.habbo.habbohotel.users.inventory.EffectsComponent;
|
||||
import com.eu.habbo.messages.ServerMessage;
|
||||
import com.eu.habbo.messages.outgoing.catalog.*;
|
||||
import com.eu.habbo.messages.outgoing.catalog.marketplace.MarketplaceConfigComposer;
|
||||
@ -246,7 +247,9 @@ public class HabboManager {
|
||||
Rank oldRank = habbo.getHabboInfo().getRank();
|
||||
if (!oldRank.getBadge().isEmpty()) {
|
||||
habbo.deleteBadge(habbo.getInventory().getBadgesComponent().getBadge(oldRank.getBadge()));
|
||||
//BadgesComponent.deleteBadge(userId, oldRank.getBadge()); // unnecessary as Habbo.deleteBadge does this
|
||||
}
|
||||
if(oldRank.getRoomEffect() > 0) {
|
||||
habbo.getInventory().getEffectsComponent().effects.remove(oldRank.getRoomEffect());
|
||||
}
|
||||
|
||||
habbo.getHabboInfo().setRank(newRank);
|
||||
@ -255,6 +258,10 @@ public class HabboManager {
|
||||
habbo.addBadge(newRank.getBadge());
|
||||
}
|
||||
|
||||
if(newRank.getRoomEffect() > 0) {
|
||||
habbo.getInventory().getEffectsComponent().createRankEffect(habbo.getHabboInfo().getRank().getRoomEffect());
|
||||
}
|
||||
|
||||
habbo.getClient().sendResponse(new UserPermissionsComposer(habbo));
|
||||
habbo.getClient().sendResponse(new UserPerksComposer(habbo));
|
||||
|
||||
|
@ -31,6 +31,8 @@ public class EffectsComponent {
|
||||
} catch (SQLException e) {
|
||||
Emulator.getLogging().logSQLException(e);
|
||||
}
|
||||
if(habbo.getHabboInfo().getRank().getRoomEffect() > 0)
|
||||
this.createRankEffect(habbo.getHabboInfo().getRank().getRoomEffect());
|
||||
}
|
||||
|
||||
public HabboEffect createEffect(int effectId) {
|
||||
@ -58,6 +60,17 @@ public class EffectsComponent {
|
||||
return effect;
|
||||
}
|
||||
|
||||
public HabboEffect createRankEffect(int effectId) {
|
||||
HabboEffect rankEffect = new HabboEffect(effectId, habbo.getHabboInfo().getId());
|
||||
rankEffect.duration = 0;
|
||||
rankEffect.isRankEnable = true;
|
||||
rankEffect.activationTimestamp = Emulator.getIntUnixTimestamp();
|
||||
rankEffect.enabled = true;
|
||||
this.effects.put(effectId, rankEffect);
|
||||
this.activatedEffect = effectId; // enabled by default
|
||||
return rankEffect;
|
||||
}
|
||||
|
||||
public void addEffect(HabboEffect effect) {
|
||||
this.effects.put(effect.effect, effect);
|
||||
|
||||
@ -67,9 +80,8 @@ public class EffectsComponent {
|
||||
public void dispose() {
|
||||
synchronized (this.effects) {
|
||||
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("UPDATE users_effects SET duration = ?, activation_timestamp = ?, total = ? WHERE user_id = ? AND effect = ?")) {
|
||||
this.effects.forEachValue(new TObjectProcedure<HabboEffect>() {
|
||||
@Override
|
||||
public boolean execute(HabboEffect effect) {
|
||||
this.effects.forEachValue(effect -> {
|
||||
if(!effect.isRankEnable) {
|
||||
try {
|
||||
statement.setInt(1, effect.duration);
|
||||
statement.setInt(2, effect.activationTimestamp);
|
||||
@ -80,9 +92,8 @@ public class EffectsComponent {
|
||||
} catch (SQLException e) {
|
||||
Emulator.getLogging().logSQLException(e);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
statement.executeBatch();
|
||||
@ -145,6 +156,7 @@ public class EffectsComponent {
|
||||
public int activationTimestamp = -1;
|
||||
public int total = 1;
|
||||
public boolean enabled = false;
|
||||
public boolean isRankEnable = false;
|
||||
|
||||
public HabboEffect(ResultSet set) throws SQLException {
|
||||
this.effect = set.getInt("effect");
|
||||
|
Loading…
Reference in New Issue
Block a user