🆙 Bug Fixed in catalogue editor

This commit is contained in:
duckietm
2026-04-17 13:50:11 +02:00
parent ed9155c19a
commit 74f3127f80
4 changed files with 43 additions and 28 deletions
@@ -338,6 +338,7 @@ public class CatalogItem implements ISerialize, Runnable, Comparable<CatalogItem
message.appendBoolean(haveOffer(this)); message.appendBoolean(haveOffer(this));
message.appendBoolean(false); //unknown message.appendBoolean(false); //unknown
message.appendString(this.name + ".png"); message.appendString(this.name + ".png");
message.appendString(this.itemId == null ? "" : this.itemId);
} }
@Override @Override
@@ -21,7 +21,7 @@ public class CatalogAdminCreateOfferEvent extends MessageHandler {
} }
int pageId = this.packet.readInt(); int pageId = this.packet.readInt();
int itemId = this.packet.readInt(); String itemIds = this.packet.readString();
String catalogName = this.packet.readString(); String catalogName = this.packet.readString();
int costCredits = this.packet.readInt(); int costCredits = this.packet.readInt();
int costPoints = this.packet.readInt(); int costPoints = this.packet.readInt();
@@ -39,12 +39,13 @@ public class CatalogAdminCreateOfferEvent extends MessageHandler {
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); try (Connection connection = Emulator.getDatabase().getDataSource().getConnection();
PreparedStatement statement = connection.prepareStatement( PreparedStatement statement = connection.prepareStatement(
(pageType == CatalogPageType.BUILDER) (pageType == CatalogPageType.BUILDER)
? "INSERT INTO catalog_items_bc (page_id, item_ids, catalog_name, order_number, extradata) VALUES (?, ?, ?, ?, ?)" ? "INSERT INTO catalog_items_bc (page_id, item_ids, catalog_name, order_number, extradata) VALUES (?, ?, ?, ?, ?)"
: "INSERT INTO catalog_items (page_id, item_ids, catalog_name, cost_credits, cost_points, points_type, amount, club_only, extradata, have_offer, offer_id, limited_stack, order_number) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", : "INSERT INTO catalog_items (page_id, item_ids, catalog_name, cost_credits, cost_points, points_type, amount, club_only, extradata, have_offer, offer_id, limited_stack, order_number) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
Statement.RETURN_GENERATED_KEYS)) { Statement.RETURN_GENERATED_KEYS)) {
String cleanItemIds = (itemIds == null || itemIds.trim().isEmpty()) ? "0" : itemIds.trim();
statement.setInt(1, pageId); statement.setInt(1, pageId);
statement.setString(2, String.valueOf(itemId)); statement.setString(2, cleanItemIds);
statement.setString(3, catalogName); statement.setString(3, catalogName);
if (pageType == CatalogPageType.BUILDER) { if (pageType == CatalogPageType.BUILDER) {
@@ -20,7 +20,7 @@ public class CatalogAdminSaveOfferEvent extends MessageHandler {
int offerId = this.packet.readInt(); int offerId = this.packet.readInt();
int pageId = this.packet.readInt(); int pageId = this.packet.readInt();
int itemId = this.packet.readInt(); String itemIds = this.packet.readString();
String catalogName = this.packet.readString(); String catalogName = this.packet.readString();
int costCredits = this.packet.readInt(); int costCredits = this.packet.readInt();
int costPoints = this.packet.readInt(); int costPoints = this.packet.readInt();
@@ -34,31 +34,44 @@ public class CatalogAdminSaveOfferEvent extends MessageHandler {
int orderNumber = this.packet.readInt(); int orderNumber = this.packet.readInt();
CatalogPageType pageType = CatalogPageType.fromString(this.packet.readString()); CatalogPageType pageType = CatalogPageType.fromString(this.packet.readString());
boolean updateItemIds = itemIds != null && !itemIds.trim().isEmpty();
String sql;
if (pageType == CatalogPageType.BUILDER) {
sql = updateItemIds
? "UPDATE catalog_items_bc SET page_id = ?, item_ids = ?, catalog_name = ?, order_number = ?, extradata = ? WHERE id = ?"
: "UPDATE catalog_items_bc SET page_id = ?, catalog_name = ?, order_number = ?, extradata = ? WHERE id = ?";
} else {
sql = updateItemIds
? "UPDATE catalog_items SET page_id = ?, item_ids = ?, catalog_name = ?, cost_credits = ?, cost_points = ?, points_type = ?, amount = ?, club_only = ?, extradata = ?, have_offer = ?, offer_id = ?, limited_stack = ?, order_number = ? WHERE id = ?"
: "UPDATE catalog_items SET page_id = ?, catalog_name = ?, cost_credits = ?, cost_points = ?, points_type = ?, amount = ?, club_only = ?, extradata = ?, have_offer = ?, offer_id = ?, limited_stack = ?, order_number = ? WHERE id = ?";
}
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); try (Connection connection = Emulator.getDatabase().getDataSource().getConnection();
PreparedStatement statement = connection.prepareStatement( PreparedStatement statement = connection.prepareStatement(sql)) {
(pageType == CatalogPageType.BUILDER) int idx = 1;
? "UPDATE catalog_items_bc SET page_id = ?, item_ids = ?, catalog_name = ?, order_number = ?, extradata = ? WHERE id = ?" statement.setInt(idx++, pageId);
: "UPDATE catalog_items SET page_id = ?, item_ids = ?, catalog_name = ?, cost_credits = ?, cost_points = ?, points_type = ?, amount = ?, club_only = ?, extradata = ?, have_offer = ?, offer_id = ?, limited_stack = ?, order_number = ? WHERE id = ?")) { if (updateItemIds) {
statement.setInt(1, pageId); statement.setString(idx++, itemIds.trim());
statement.setString(2, String.valueOf(itemId)); }
statement.setString(3, catalogName); statement.setString(idx++, catalogName);
if (pageType == CatalogPageType.BUILDER) { if (pageType == CatalogPageType.BUILDER) {
statement.setInt(4, orderNumber); statement.setInt(idx++, orderNumber);
statement.setString(5, extradata); statement.setString(idx++, extradata);
statement.setInt(6, offerId); statement.setInt(idx, offerId);
} else { } else {
statement.setInt(4, costCredits); statement.setInt(idx++, costCredits);
statement.setInt(5, costPoints); statement.setInt(idx++, costPoints);
statement.setInt(6, pointsType); statement.setInt(idx++, pointsType);
statement.setInt(7, amount); statement.setInt(idx++, amount);
statement.setString(8, clubOnly == 1 ? "1" : "0"); statement.setString(idx++, clubOnly == 1 ? "1" : "0");
statement.setString(9, extradata); statement.setString(idx++, extradata);
statement.setString(10, haveOffer ? "1" : "0"); statement.setString(idx++, haveOffer ? "1" : "0");
statement.setInt(11, offerIdGroup); statement.setInt(idx++, offerIdGroup);
statement.setInt(12, limitedStack); statement.setInt(idx++, limitedStack);
statement.setInt(13, orderNumber); statement.setInt(idx++, orderNumber);
statement.setInt(14, offerId); statement.setInt(idx, offerId);
} }
statement.execute(); statement.execute();
} }