Compare commits

...

3 Commits

Author SHA1 Message Date
github-actions[bot] 0b142d184c 🆙 Bump version to 4.2.37 [skip ci] 2026-06-05 19:21:31 +00:00
DuckieTM 867c8ff857 Merge pull request #155 from duckietm/dev
🆙 Fix the Admin Catalogue stuff
2026-06-05 21:20:31 +02:00
duckietm 5094d6ce4f 🆙 Fix the Admin Catalogue stuff 2026-06-05 14:23:05 +02:00
8 changed files with 146 additions and 1 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<groupId>com.eu.habbo</groupId>
<artifactId>Habbo</artifactId>
<version>4.2.36</version>
<version>4.2.37</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -298,6 +298,8 @@ public class PacketManager {
this.registerHandler(Incoming.CatalogAdminPublishEvent, CatalogAdminPublishEvent.class);
this.registerHandler(Incoming.CatalogAdminSavePageImagesEvent, CatalogAdminSavePageImagesEvent.class);
this.registerHandler(Incoming.CatalogAdminSavePageIconEvent, CatalogAdminSavePageIconEvent.class);
this.registerHandler(Incoming.CatalogAdminLoadOfferEvent, CatalogAdminLoadOfferEvent.class);
this.registerHandler(Incoming.CatalogAdminLoadPageEvent, CatalogAdminLoadPageEvent.class);
}
private void registerEvent() throws Exception {
@@ -444,6 +444,8 @@ public class Incoming {
public static final int CatalogAdminPublishEvent = 10058;
public static final int CatalogAdminSavePageImagesEvent = 10060;
public static final int CatalogAdminSavePageIconEvent = 10061;
public static final int CatalogAdminLoadOfferEvent = 10062;
public static final int CatalogAdminLoadPageEvent = 10063;
// Custom Prefixes
public static final int RequestUserPrefixesEvent = 7011;
@@ -0,0 +1,55 @@
package com.eu.habbo.messages.incoming.catalog.catalogadmin;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.catalog.CatalogPageType;
import com.eu.habbo.habbohotel.permissions.Permission;
import com.eu.habbo.messages.incoming.MessageHandler;
import com.eu.habbo.messages.outgoing.catalog.catalogadmin.CatalogAdminOfferDetailsComposer;
import com.eu.habbo.messages.outgoing.catalog.catalogadmin.CatalogAdminResultComposer;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class CatalogAdminLoadOfferEvent extends MessageHandler {
@Override
public void handle() throws Exception {
if (!this.client.getHabbo().hasPermission(Permission.ACC_CATALOGFURNI)) {
this.client.sendResponse(new CatalogAdminResultComposer(false, "No permission"));
return;
}
int offerId = this.packet.readInt();
CatalogPageType pageType = CatalogPageType.fromString(this.packet.readString());
String sql = (pageType == CatalogPageType.BUILDER)
? "SELECT id, order_number FROM catalog_items_bc WHERE id = ? LIMIT 1"
: "SELECT id, offer_id, limited_stack, order_number FROM catalog_items WHERE id = ? LIMIT 1";
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection();
PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, offerId);
try (ResultSet set = statement.executeQuery()) {
if (!set.next()) return;
if (pageType == CatalogPageType.BUILDER) {
this.client.sendResponse(new CatalogAdminOfferDetailsComposer(
set.getInt("id"),
0,
0,
set.getInt("order_number")
));
} else {
this.client.sendResponse(new CatalogAdminOfferDetailsComposer(
set.getInt("id"),
set.getInt("offer_id"),
set.getInt("limited_stack"),
set.getInt("order_number")
));
}
}
}
}
}
@@ -0,0 +1,28 @@
package com.eu.habbo.messages.incoming.catalog.catalogadmin;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.catalog.CatalogPage;
import com.eu.habbo.habbohotel.catalog.CatalogPageType;
import com.eu.habbo.habbohotel.permissions.Permission;
import com.eu.habbo.messages.incoming.MessageHandler;
import com.eu.habbo.messages.outgoing.catalog.catalogadmin.CatalogAdminPageDetailsComposer;
import com.eu.habbo.messages.outgoing.catalog.catalogadmin.CatalogAdminResultComposer;
public class CatalogAdminLoadPageEvent extends MessageHandler {
@Override
public void handle() throws Exception {
if (!this.client.getHabbo().hasPermission(Permission.ACC_CATALOGFURNI)) {
this.client.sendResponse(new CatalogAdminResultComposer(false, "No permission"));
return;
}
int pageId = this.packet.readInt();
CatalogPageType pageType = CatalogPageType.fromString(this.packet.readString());
CatalogPage page = Emulator.getGameEnvironment().getCatalogManager().getCatalogPage(pageId, pageType);
if (page == null) return;
this.client.sendResponse(new CatalogAdminPageDetailsComposer(page));
}
}
@@ -573,6 +573,8 @@ public class Outgoing {
// Catalog Admin
public static final int CatalogAdminResultComposer = 10059;
public static final int CatalogAdminOfferDetailsComposer = 10062;
public static final int CatalogAdminPageDetailsComposer = 10063;
// Custom Prefixes
public static final int UserPrefixesComposer = 7001;
@@ -0,0 +1,29 @@
package com.eu.habbo.messages.outgoing.catalog.catalogadmin;
import com.eu.habbo.messages.ServerMessage;
import com.eu.habbo.messages.outgoing.MessageComposer;
import com.eu.habbo.messages.outgoing.Outgoing;
public class CatalogAdminOfferDetailsComposer extends MessageComposer {
private final int offerId;
private final int offerIdGroup;
private final int limitedStack;
private final int orderNumber;
public CatalogAdminOfferDetailsComposer(int offerId, int offerIdGroup, int limitedStack, int orderNumber) {
this.offerId = offerId;
this.offerIdGroup = offerIdGroup;
this.limitedStack = limitedStack;
this.orderNumber = orderNumber;
}
@Override
protected ServerMessage composeInternal() {
this.response.init(Outgoing.CatalogAdminOfferDetailsComposer);
this.response.appendInt(this.offerId);
this.response.appendInt(this.offerIdGroup);
this.response.appendInt(this.limitedStack);
this.response.appendInt(this.orderNumber);
return this.response;
}
}
@@ -0,0 +1,27 @@
package com.eu.habbo.messages.outgoing.catalog.catalogadmin;
import com.eu.habbo.habbohotel.catalog.CatalogPage;
import com.eu.habbo.messages.ServerMessage;
import com.eu.habbo.messages.outgoing.MessageComposer;
import com.eu.habbo.messages.outgoing.Outgoing;
public class CatalogAdminPageDetailsComposer extends MessageComposer {
private final CatalogPage page;
public CatalogAdminPageDetailsComposer(CatalogPage page) {
this.page = page;
}
@Override
protected ServerMessage composeInternal() {
this.response.init(Outgoing.CatalogAdminPageDetailsComposer);
this.response.appendInt(this.page.getId());
this.response.appendString(this.page.getCaption());
this.response.appendString(this.page.getPageName());
this.response.appendInt(this.page.getRank());
this.response.appendInt(this.page.getOrderNum());
this.response.appendBoolean(this.page.isVisible());
this.response.appendBoolean(this.page.isEnabled());
return this.response;
}
}