mirror of
https://git.krews.org/morningstar/Arcturus-Community.git
synced 2024-11-23 15:20:52 +01:00
Merge branch 'dev' into 'subscription-revamp'
# Conflicts: # src/main/java/com/eu/habbo/messages/outgoing/friends/FriendsComposer.java
This commit is contained in:
commit
c879a904da
@ -12,7 +12,7 @@ Arcturus Morningstar is released under the [GNU General Public License v3](https
|
|||||||
|
|
||||||
## Versions ##
|
## Versions ##
|
||||||
![image](https://img.shields.io/badge/VERSION-2.4.0-success.svg?style=for-the-badge&logo=appveyor)
|
![image](https://img.shields.io/badge/VERSION-2.4.0-success.svg?style=for-the-badge&logo=appveyor)
|
||||||
![image](https://img.shields.io/badge/STATUS-UNSTABLE-red.svg?style=for-the-badge&logo=appveyor)
|
![image](https://img.shields.io/badge/STATUS-STABLE-blue.svg?style=for-the-badge&logo=appveyor)
|
||||||
|
|
||||||
Compiled Download: https://git.krews.org/morningstar/Arcturus-Community/releases
|
Compiled Download: https://git.krews.org/morningstar/Arcturus-Community/releases
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ public final class Emulator {
|
|||||||
Emulator.rconServer.connect();
|
Emulator.rconServer.connect();
|
||||||
Emulator.badgeImager = new BadgeImager();
|
Emulator.badgeImager = new BadgeImager();
|
||||||
|
|
||||||
LOGGER.info("Arcturus Morningstar has succesfully loaded.");
|
LOGGER.info("Arcturus Morningstar has successfully loaded.");
|
||||||
LOGGER.info("System launched in: {}ms. Using {} threads!", (System.nanoTime() - startTime) / 1e6, Runtime.getRuntime().availableProcessors() * 2);
|
LOGGER.info("System launched in: {}ms. Using {} threads!", (System.nanoTime() - startTime) / 1e6, Runtime.getRuntime().availableProcessors() * 2);
|
||||||
LOGGER.info("Memory: {}/{}MB", (runtime.totalMemory() - runtime.freeMemory()) / (1024 * 1024), (runtime.freeMemory()) / (1024 * 1024));
|
LOGGER.info("Memory: {}/{}MB", (runtime.totalMemory() - runtime.freeMemory()) / (1024 * 1024), (runtime.freeMemory()) / (1024 * 1024));
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ public class TextsManager {
|
|||||||
public int getInt(String key, Integer defaultValue) {
|
public int getInt(String key, Integer defaultValue) {
|
||||||
try {
|
try {
|
||||||
return Integer.parseInt(this.getValue(key, defaultValue.toString()));
|
return Integer.parseInt(this.getValue(key, defaultValue.toString()));
|
||||||
} catch (Exception e) {
|
} catch (NumberFormatException e) {
|
||||||
LOGGER.error("Caught exception", e);
|
LOGGER.error("Caught exception", e);
|
||||||
}
|
}
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
|
@ -2,6 +2,9 @@ package com.eu.habbo.habbohotel.commands;
|
|||||||
|
|
||||||
import com.eu.habbo.Emulator;
|
import com.eu.habbo.Emulator;
|
||||||
import com.eu.habbo.habbohotel.gameclients.GameClient;
|
import com.eu.habbo.habbohotel.gameclients.GameClient;
|
||||||
|
import com.eu.habbo.habbohotel.rooms.RoomChatMessageBubbles;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class WordQuizCommand extends Command {
|
public class WordQuizCommand extends Command {
|
||||||
public WordQuizCommand() {
|
public WordQuizCommand() {
|
||||||
@ -11,21 +14,21 @@ public class WordQuizCommand extends Command {
|
|||||||
@Override
|
@Override
|
||||||
public boolean handle(GameClient gameClient, String[] params) throws Exception {
|
public boolean handle(GameClient gameClient, String[] params) throws Exception {
|
||||||
if (!gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasActiveWordQuiz()) {
|
if (!gameClient.getHabbo().getHabboInfo().getCurrentRoom().hasActiveWordQuiz()) {
|
||||||
|
if(params.length == 1) {
|
||||||
|
gameClient.getHabbo().whisper(Emulator.getTexts().getValue("commands.description.cmd_word_quiz"), RoomChatMessageBubbles.ALERT);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
StringBuilder question = new StringBuilder();
|
StringBuilder question = new StringBuilder();
|
||||||
int duration = 60;
|
int duration = 60;
|
||||||
|
|
||||||
if (params.length > 2) {
|
|
||||||
for (int i = 1; i < params.length - 1; i++) {
|
|
||||||
question.append(" ").append(params[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
duration = Integer.valueOf(params[params.length - 1]);
|
duration = Integer.parseInt(params[params.length-1]);
|
||||||
} catch (Exception e) {
|
params = Arrays.copyOf(params, params.length-1);
|
||||||
question.append(" ").append(params[params.length - 1]);
|
|
||||||
}
|
}
|
||||||
} else {
|
catch (Exception e) {}
|
||||||
question = new StringBuilder(params[1]);
|
|
||||||
|
for (int i = 1; i < params.length; i++) {
|
||||||
|
question.append(" ").append(params[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
gameClient.getHabbo().getHabboInfo().getCurrentRoom().startWordQuiz(question.toString(), duration * 1000);
|
gameClient.getHabbo().getHabboInfo().getCurrentRoom().startWordQuiz(question.toString(), duration * 1000);
|
||||||
|
@ -52,7 +52,7 @@ public class InteractionBackgroundToner extends HabboItem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isWalkable() {
|
public boolean isWalkable() {
|
||||||
return false;
|
return this.getBaseItem().allowWalk();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -68,7 +68,7 @@ public class WiredEffectChangeFurniDirection extends InteractionWiredEffect {
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetTile != null && targetTile.state == RoomTileState.OPEN) {
|
if (targetTile != null && targetTile.state != RoomTileState.INVALID) {
|
||||||
boolean hasHabbos = false;
|
boolean hasHabbos = false;
|
||||||
for (Habbo habbo : room.getHabbosAt(targetTile)) {
|
for (Habbo habbo : room.getHabbosAt(targetTile)) {
|
||||||
hasHabbos = true;
|
hasHabbos = true;
|
||||||
|
@ -11,9 +11,8 @@ public class RequestInitFriendsEvent extends MessageHandler {
|
|||||||
@Override
|
@Override
|
||||||
public void handle() throws Exception {
|
public void handle() throws Exception {
|
||||||
ArrayList<ServerMessage> messages = new ArrayList<>();
|
ArrayList<ServerMessage> messages = new ArrayList<>();
|
||||||
//
|
|
||||||
messages.add(new MessengerInitComposer(this.client.getHabbo()).compose());
|
messages.add(new MessengerInitComposer(this.client.getHabbo()).compose());
|
||||||
messages.add(new FriendsComposer(this.client.getHabbo()).compose());
|
messages.addAll(FriendsComposer.getMessagesForBuddyList(this.client.getHabbo().getMessenger().getFriends().values()));
|
||||||
this.client.sendResponses(messages);
|
this.client.sendResponses(messages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ public class SecureLoginEvent_BACKUP extends MessageHandler {
|
|||||||
messages.add(new UserPerksComposer(habbo).compose());
|
messages.add(new UserPerksComposer(habbo).compose());
|
||||||
messages.add(new SessionRightsComposer().compose());
|
messages.add(new SessionRightsComposer().compose());
|
||||||
messages.add(new FavoriteRoomsCountComposer(habbo).compose());
|
messages.add(new FavoriteRoomsCountComposer(habbo).compose());
|
||||||
messages.add(new FriendsComposer(this.client.getHabbo()).compose());
|
//messages.add(new FriendsComposer(this.client.getHabbo()).compose());
|
||||||
//messages.add(new NewUserIdentityComposer().compose());
|
//messages.add(new NewUserIdentityComposer().compose());
|
||||||
//messages.add(new UserDataComposer(this.client.getHabbo()).compose());
|
//messages.add(new UserDataComposer(this.client.getHabbo()).compose());
|
||||||
//messages.add(new SessionRightsComposer().compose());
|
//messages.add(new SessionRightsComposer().compose());
|
||||||
|
@ -1,24 +1,28 @@
|
|||||||
package com.eu.habbo.messages.outgoing.friends;
|
package com.eu.habbo.messages.outgoing.friends;
|
||||||
|
|
||||||
import com.eu.habbo.habbohotel.messenger.Messenger;
|
|
||||||
import com.eu.habbo.habbohotel.messenger.MessengerBuddy;
|
import com.eu.habbo.habbohotel.messenger.MessengerBuddy;
|
||||||
import com.eu.habbo.habbohotel.users.Habbo;
|
|
||||||
import com.eu.habbo.habbohotel.users.HabboGender;
|
import com.eu.habbo.habbohotel.users.HabboGender;
|
||||||
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;
|
||||||
|
import gnu.trove.set.hash.THashSet;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
public class FriendsComposer extends MessageComposer {
|
public class FriendsComposer extends MessageComposer {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(FriendsComposer.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(FriendsComposer.class);
|
||||||
|
|
||||||
private final Habbo habbo;
|
private final int totalPages;
|
||||||
|
private final int pageIndex;
|
||||||
|
private final Collection<MessengerBuddy> friends;
|
||||||
|
|
||||||
public FriendsComposer(Habbo habbo) {
|
public FriendsComposer(int totalPages, int pageIndex, Collection<MessengerBuddy> friends) {
|
||||||
this.habbo = habbo;
|
this.totalPages = totalPages;
|
||||||
|
this.pageIndex = pageIndex;
|
||||||
|
this.friends = friends;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -26,52 +30,54 @@ public class FriendsComposer extends MessageComposer {
|
|||||||
try {
|
try {
|
||||||
this.response.init(Outgoing.FriendsComposer);
|
this.response.init(Outgoing.FriendsComposer);
|
||||||
|
|
||||||
//this.response.appendInt(300);
|
this.response.appendInt(this.totalPages);
|
||||||
//this.response.appendInt(300);
|
this.response.appendInt(this.pageIndex);
|
||||||
//this.response.appendInt(3); //Club level
|
this.response.appendInt(this.friends.size());
|
||||||
this.response.appendInt(this.habbo.hasPermission("acc_infinite_friends") ? Integer.MAX_VALUE : Messenger.MAXIMUM_FRIENDS);
|
|
||||||
this.response.appendInt(this.habbo.hasPermission("acc_infinite_friends") ? Integer.MAX_VALUE : Messenger.MAXIMUM_FRIENDS_HC);
|
|
||||||
this.response.appendInt(this.habbo.getMessenger().getFriends().size()/* + (this.habbo.hasPermission("acc_staff_chat") ? 1 : 0)*/);
|
|
||||||
|
|
||||||
for (Map.Entry<Integer, MessengerBuddy> row : this.habbo.getMessenger().getFriends().entrySet()) {
|
for (MessengerBuddy row : this.friends) {
|
||||||
this.response.appendInt(row.getKey());
|
this.response.appendInt(row.getId());
|
||||||
this.response.appendString(row.getValue().getUsername());
|
this.response.appendString(row.getUsername());
|
||||||
this.response.appendInt(row.getValue().getGender().equals(HabboGender.M) ? 0 : 1);
|
this.response.appendInt(row.getGender().equals(HabboGender.M) ? 0 : 1);
|
||||||
this.response.appendBoolean(row.getValue().getOnline() == 1);
|
this.response.appendBoolean(row.getOnline() == 1);
|
||||||
this.response.appendBoolean(row.getValue().inRoom()); //IN ROOM
|
this.response.appendBoolean(row.inRoom()); //IN ROOM
|
||||||
this.response.appendString(row.getValue().getOnline() == 1 ? row.getValue().getLook() : "");
|
this.response.appendString(row.getOnline() == 1 ? row.getLook() : "");
|
||||||
this.response.appendInt(0);
|
this.response.appendInt(0);
|
||||||
this.response.appendString(row.getValue().getMotto());
|
this.response.appendString(row.getMotto());
|
||||||
this.response.appendString("");
|
this.response.appendString("");
|
||||||
this.response.appendString("");
|
this.response.appendString("");
|
||||||
this.response.appendBoolean(false); //Offline messaging.
|
this.response.appendBoolean(false); //Offline messaging.
|
||||||
this.response.appendBoolean(false);
|
this.response.appendBoolean(false);
|
||||||
this.response.appendBoolean(false);
|
this.response.appendBoolean(false);
|
||||||
this.response.appendShort(row.getValue().getRelation());
|
this.response.appendShort(row.getRelation());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if(this.habbo.hasPermission("acc_staff_chat"))
|
|
||||||
{
|
|
||||||
this.response.appendInt(-1);
|
|
||||||
this.response.appendString("Staff Chat");
|
|
||||||
this.response.appendInt(this.habbo.getHabboInfo().getGender().equals(HabboGender.M) ? 0 : 1);
|
|
||||||
this.response.appendBoolean(true);
|
|
||||||
this.response.appendBoolean(false); //IN ROOM
|
|
||||||
this.response.appendString("ADM");
|
|
||||||
this.response.appendInt(0);
|
|
||||||
this.response.appendString("");
|
|
||||||
this.response.appendString("");
|
|
||||||
this.response.appendString("");
|
|
||||||
this.response.appendBoolean(true); //Offline messaging.
|
|
||||||
this.response.appendBoolean(false);
|
|
||||||
this.response.appendBoolean(false);
|
|
||||||
this.response.appendShort(0);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return this.response;
|
return this.response;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("Caught exception", e);
|
LOGGER.error("Caught exception", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ArrayList<ServerMessage> getMessagesForBuddyList(Collection<MessengerBuddy> buddies) {
|
||||||
|
ArrayList<ServerMessage> messages = new ArrayList<ServerMessage>();
|
||||||
|
THashSet<MessengerBuddy> friends = new THashSet<MessengerBuddy>();
|
||||||
|
|
||||||
|
int totalPages = (int)Math.ceil(buddies.size() / 750.0);
|
||||||
|
int page = 0;
|
||||||
|
|
||||||
|
for(MessengerBuddy buddy : buddies) {
|
||||||
|
friends.add(buddy);
|
||||||
|
|
||||||
|
if(friends.size() == 750) {
|
||||||
|
messages.add(new FriendsComposer(totalPages, page, friends).compose());
|
||||||
|
friends.clear();
|
||||||
|
page++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(page == 0 || friends.size() > 0) {
|
||||||
|
messages.add(new FriendsComposer(totalPages, page, friends).compose());
|
||||||
|
}
|
||||||
|
|
||||||
|
return messages;
|
||||||
|
}
|
||||||
}
|
}
|
@ -32,6 +32,7 @@ public abstract class RCONMessage<T> {
|
|||||||
public abstract void handle(Gson gson, T json);
|
public abstract void handle(Gson gson, T json);
|
||||||
|
|
||||||
public static class RCONMessageSerializer implements JsonSerializer<RCONMessage> {
|
public static class RCONMessageSerializer implements JsonSerializer<RCONMessage> {
|
||||||
|
@Override
|
||||||
public JsonElement serialize(final RCONMessage rconMessage, final Type type, final JsonSerializationContext context) {
|
public JsonElement serialize(final RCONMessage rconMessage, final Type type, final JsonSerializationContext context) {
|
||||||
JsonObject result = new JsonObject();
|
JsonObject result = new JsonObject();
|
||||||
result.add("status", new JsonPrimitive(rconMessage.status));
|
result.add("status", new JsonPrimitive(rconMessage.status));
|
||||||
|
@ -41,7 +41,7 @@ public class BattleBanzaiTilesFlicker implements Runnable {
|
|||||||
|
|
||||||
this.room.sendComposer(new ItemsDataUpdateComposer(this.items).compose());
|
this.room.sendComposer(new ItemsDataUpdateComposer(this.items).compose());
|
||||||
|
|
||||||
if (this.count == 5) {
|
if (this.count == 9) {
|
||||||
for (HabboItem item : this.room.getRoomSpecialTypes().getItemsOfType(InteractionBattleBanzaiSphere.class)) {
|
for (HabboItem item : this.room.getRoomSpecialTypes().getItemsOfType(InteractionBattleBanzaiSphere.class)) {
|
||||||
item.setExtradata("0");
|
item.setExtradata("0");
|
||||||
this.room.updateItemState(item);
|
this.room.updateItemState(item);
|
||||||
|
Loading…
Reference in New Issue
Block a user