mirror of
https://git.krews.org/morningstar/Arcturus-Community.git
synced 2024-11-23 07:20:50 +01:00
Calendar is now fixed. Credits to ItsGiuseppe.
This commit is contained in:
parent
bfda48c22e
commit
fdb367966b
@ -1,30 +1,32 @@
|
|||||||
package com.eu.habbo.habbohotel.catalog;
|
package com.eu.habbo.habbohotel.catalog;
|
||||||
|
|
||||||
import com.eu.habbo.Emulator;
|
import com.eu.habbo.Emulator;
|
||||||
|
import com.eu.habbo.habbohotel.items.Item;
|
||||||
import com.eu.habbo.habbohotel.users.Habbo;
|
import com.eu.habbo.habbohotel.users.Habbo;
|
||||||
|
import com.eu.habbo.habbohotel.users.HabboItem;
|
||||||
|
import com.eu.habbo.messages.outgoing.inventory.AddHabboItemComposer;
|
||||||
|
import com.eu.habbo.messages.outgoing.inventory.InventoryRefreshComposer;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
public class CalendarRewardObject {
|
public class CalendarRewardObject {
|
||||||
private final int id;
|
private final int id;
|
||||||
private final String name;
|
|
||||||
private final String customImage;
|
private final String customImage;
|
||||||
private final int credits;
|
private final int credits;
|
||||||
private final int points;
|
private final int points;
|
||||||
private final int pointsType;
|
private final int pointsType;
|
||||||
private final String badge;
|
private final String badge;
|
||||||
private final int catalogItemId;
|
private final int itemId;
|
||||||
|
|
||||||
public CalendarRewardObject(ResultSet set) throws SQLException {
|
public CalendarRewardObject(ResultSet set) throws SQLException {
|
||||||
this.id = set.getInt("id");
|
this.id = set.getInt("id");
|
||||||
this.name = set.getString("name");
|
|
||||||
this.customImage = set.getString("custom_image");
|
this.customImage = set.getString("custom_image");
|
||||||
this.credits = set.getInt("credits");
|
this.credits = set.getInt("credits");
|
||||||
this.points = set.getInt("points");
|
this.points = set.getInt("points");
|
||||||
this.pointsType = set.getInt("points_type");
|
this.pointsType = set.getInt("points_type");
|
||||||
this.badge = set.getString("badge");
|
this.badge = set.getString("badge");
|
||||||
this.catalogItemId = set.getInt("catalog_item_id");
|
this.itemId = set.getInt("item_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void give(Habbo habbo) {
|
public void give(Habbo habbo) {
|
||||||
@ -40,11 +42,19 @@ public class CalendarRewardObject {
|
|||||||
habbo.addBadge(this.badge);
|
habbo.addBadge(this.badge);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.catalogItemId > 0) {
|
if (this.itemId > 0) {
|
||||||
CatalogItem item = this.getCatalogItem();
|
Item item = getItem();
|
||||||
|
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
Emulator.getGameEnvironment().getCatalogManager().purchaseItem(null, item, habbo, 1, "", true);
|
HabboItem habboItem = Emulator.getGameEnvironment().getItemManager().createItem(
|
||||||
|
habbo.getHabboInfo().getId(),
|
||||||
|
item,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
"");
|
||||||
|
habbo.getInventory().getItemsComponent().addItem(habboItem);
|
||||||
|
habbo.getClient().sendResponse(new AddHabboItemComposer(habboItem));
|
||||||
|
habbo.getClient().sendResponse(new InventoryRefreshComposer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,10 +63,6 @@ public class CalendarRewardObject {
|
|||||||
return this.id;
|
return this.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return this.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCustomImage() {
|
public String getCustomImage() {
|
||||||
return this.customImage;
|
return this.customImage;
|
||||||
}
|
}
|
||||||
@ -77,7 +83,7 @@ public class CalendarRewardObject {
|
|||||||
return this.badge;
|
return this.badge;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CatalogItem getCatalogItem() {
|
public Item getItem() {
|
||||||
return Emulator.getGameEnvironment().getCatalogManager().getCatalogItem(this.catalogItemId);
|
return Emulator.getGameEnvironment().getItemManager().getItem(this.itemId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@ import com.eu.habbo.plugin.events.emulator.EmulatorLoadCatalogManagerEvent;
|
|||||||
import com.eu.habbo.plugin.events.users.catalog.UserCatalogFurnitureBoughtEvent;
|
import com.eu.habbo.plugin.events.users.catalog.UserCatalogFurnitureBoughtEvent;
|
||||||
import com.eu.habbo.plugin.events.users.catalog.UserCatalogItemPurchasedEvent;
|
import com.eu.habbo.plugin.events.users.catalog.UserCatalogItemPurchasedEvent;
|
||||||
import gnu.trove.TCollections;
|
import gnu.trove.TCollections;
|
||||||
|
import gnu.trove.iterator.TIntIterator;
|
||||||
import gnu.trove.iterator.TIntObjectIterator;
|
import gnu.trove.iterator.TIntObjectIterator;
|
||||||
import gnu.trove.map.TIntObjectMap;
|
import gnu.trove.map.TIntObjectMap;
|
||||||
import gnu.trove.map.hash.THashMap;
|
import gnu.trove.map.hash.THashMap;
|
||||||
@ -1119,15 +1120,15 @@ public class CatalogManager {
|
|||||||
return offers;
|
return offers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void claimCalendarReward(Habbo habbo, int day) {
|
public void claimCalendarReward(Habbo habbo, int day, boolean force) {
|
||||||
if (!habbo.getHabboStats().calendarRewardsClaimed.contains(day)) {
|
if (!habbo.getHabboStats().calendarRewardsClaimed.contains(day)) {
|
||||||
|
CalendarRewardObject object = this.calendarRewards.get((day+1));
|
||||||
|
int actualDay = (int) Math.floor((Emulator.getIntUnixTimestamp() - Emulator.getConfig().getInt("hotel.calendar.starttimestamp")) / 86400);
|
||||||
|
int diff = (actualDay - day);
|
||||||
|
if (((diff <= 2 && diff >= 0) || force) && object != null) {
|
||||||
habbo.getHabboStats().calendarRewardsClaimed.add(day);
|
habbo.getHabboStats().calendarRewardsClaimed.add(day);
|
||||||
CalendarRewardObject object = this.calendarRewards.get(day);
|
|
||||||
|
|
||||||
if (object != null) {
|
|
||||||
object.give(habbo);
|
|
||||||
habbo.getClient().sendResponse(new InventoryRefreshComposer());
|
|
||||||
habbo.getClient().sendResponse(new AdventCalendarProductComposer(true, object));
|
habbo.getClient().sendResponse(new AdventCalendarProductComposer(true, object));
|
||||||
|
object.give(habbo);
|
||||||
|
|
||||||
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO calendar_rewards_claimed (user_id, reward_id, timestamp) VALUES (?, ?, ?)")) {
|
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO calendar_rewards_claimed (user_id, reward_id, timestamp) VALUES (?, ?, ?)")) {
|
||||||
statement.setInt(1, habbo.getHabboInfo().getId());
|
statement.setInt(1, habbo.getHabboInfo().getId());
|
||||||
@ -1138,8 +1139,6 @@ public class CatalogManager {
|
|||||||
Emulator.getLogging().logSQLException(e);
|
Emulator.getLogging().logSQLException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.eu.habbo.messages.incoming.events.calendar;
|
package com.eu.habbo.messages.incoming.events.calendar;
|
||||||
|
|
||||||
|
import com.eu.habbo.Emulator;
|
||||||
import com.eu.habbo.messages.incoming.MessageHandler;
|
import com.eu.habbo.messages.incoming.MessageHandler;
|
||||||
|
|
||||||
public class AdventCalendarForceOpenEvent extends MessageHandler {
|
public class AdventCalendarForceOpenEvent extends MessageHandler {
|
||||||
@ -7,5 +8,7 @@ public class AdventCalendarForceOpenEvent extends MessageHandler {
|
|||||||
public void handle() throws Exception {
|
public void handle() throws Exception {
|
||||||
String campaign = this.packet.readString();
|
String campaign = this.packet.readString();
|
||||||
int day = this.packet.readInt();
|
int day = this.packet.readInt();
|
||||||
|
|
||||||
|
Emulator.getGameEnvironment().getCatalogManager().claimCalendarReward(this.client.getHabbo(), day, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,6 +9,6 @@ public class AdventCalendarOpenDayEvent extends MessageHandler {
|
|||||||
String campaign = this.packet.readString();
|
String campaign = this.packet.readString();
|
||||||
int day = this.packet.readInt();
|
int day = this.packet.readInt();
|
||||||
|
|
||||||
Emulator.getGameEnvironment().getCatalogManager().claimCalendarReward(this.client.getHabbo(), day);
|
Emulator.getGameEnvironment().getCatalogManager().claimCalendarReward(this.client.getHabbo(), day, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -28,33 +28,28 @@ public class AdventCalendarDataComposer extends MessageComposer {
|
|||||||
this.response.appendString("");
|
this.response.appendString("");
|
||||||
this.response.appendInt(this.currentDay);
|
this.response.appendInt(this.currentDay);
|
||||||
this.response.appendInt(this.totalDays);
|
this.response.appendInt(this.totalDays);
|
||||||
|
|
||||||
this.response.appendInt(this.unlocked.size());
|
this.response.appendInt(this.unlocked.size());
|
||||||
|
|
||||||
TIntArrayList expired = new TIntArrayList();
|
TIntArrayList expired = new TIntArrayList();
|
||||||
for (int i = 0; i < this.totalDays; i++) {
|
for (int i = 0; i < this.totalDays; i++) {
|
||||||
expired.add(i);
|
expired.add(i);
|
||||||
expired.remove(this.currentDay);
|
|
||||||
}
|
}
|
||||||
|
expired.remove(this.currentDay);
|
||||||
|
if(this.currentDay > 1) expired.remove(this.currentDay - 2);
|
||||||
|
if(this.currentDay > 0) expired.remove(this.currentDay - 1);
|
||||||
|
|
||||||
this.unlocked.forEach(new TIntProcedure() {
|
this.unlocked.forEach(value -> {
|
||||||
@Override
|
|
||||||
public boolean execute(int value) {
|
|
||||||
AdventCalendarDataComposer.this.response.appendInt(value);
|
AdventCalendarDataComposer.this.response.appendInt(value);
|
||||||
expired.remove(value);
|
expired.remove(value);
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (this.lockExpired) {
|
if (this.lockExpired) {
|
||||||
this.response.appendInt(expired.size());
|
this.response.appendInt(expired.size());
|
||||||
expired.forEach(new TIntProcedure() {
|
expired.forEach(value -> {
|
||||||
@Override
|
|
||||||
public boolean execute(int value) {
|
|
||||||
AdventCalendarDataComposer.this.response.appendInt(value);
|
AdventCalendarDataComposer.this.response.appendInt(value);
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.response.appendInt(0);
|
this.response.appendInt(0);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.eu.habbo.messages.outgoing.events.calendar;
|
package com.eu.habbo.messages.outgoing.events.calendar;
|
||||||
|
|
||||||
import com.eu.habbo.habbohotel.catalog.CalendarRewardObject;
|
import com.eu.habbo.habbohotel.catalog.CalendarRewardObject;
|
||||||
|
import com.eu.habbo.habbohotel.items.Item;
|
||||||
import com.eu.habbo.messages.ServerMessage;
|
import com.eu.habbo.messages.ServerMessage;
|
||||||
import com.eu.habbo.messages.outgoing.MessageComposer;
|
import com.eu.habbo.messages.outgoing.MessageComposer;
|
||||||
import com.eu.habbo.messages.outgoing.Outgoing;
|
import com.eu.habbo.messages.outgoing.Outgoing;
|
||||||
@ -18,9 +19,9 @@ public class AdventCalendarProductComposer extends MessageComposer {
|
|||||||
public ServerMessage compose() {
|
public ServerMessage compose() {
|
||||||
this.response.init(Outgoing.AdventCalendarProductComposer);
|
this.response.init(Outgoing.AdventCalendarProductComposer);
|
||||||
this.response.appendBoolean(this.visible);
|
this.response.appendBoolean(this.visible);
|
||||||
this.response.appendString(this.rewardObject.getName());
|
this.response.appendString(this.rewardObject.getItem().getName());
|
||||||
this.response.appendString(this.rewardObject.getCustomImage());
|
this.response.appendString(this.rewardObject.getCustomImage());
|
||||||
this.response.appendString(this.rewardObject.getCatalogItem() != null ? this.rewardObject.getCatalogItem().getName() : this.rewardObject.getName());
|
this.response.appendString(this.rewardObject.getItem().getName());
|
||||||
return this.response;
|
return this.response;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user