mirror of
https://git.krews.org/morningstar/Arcturus-Community.git
synced 2025-01-18 23:46:28 +01:00
Merge branch 'dev' of https://git.krews.org/morningstar/Arcturus-Community
This commit is contained in:
commit
a3df990398
@ -11,11 +11,10 @@ TheGeneral's own words were "dont like it then dont use it". We did not like wha
|
||||
Arcturus Morningstar is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.txt).
|
||||
|
||||
## Versions ##
|
||||
Stable Version: **2.0.0**
|
||||
![image](https://img.shields.io/badge/VERSION-2.1.0-orange.svg?style=for-the-badge&logo=appveyor)
|
||||
![image](https://img.shields.io/badge/STATUS-unstable-critical.svg?style=for-the-badge&logo=appveyor)
|
||||
|
||||
Compiled Download: https://git.krews.org/morningstar/Arcturus-Community/releases
|
||||
|
||||
UnStable Version: **2.1.0**
|
||||
Compiled Download: Has not yet reached a Release Candidate.
|
||||
|
||||
Client build: **PRODUCTION-201611291003-338511768**
|
||||
|
||||
|
@ -204,12 +204,16 @@ public class InteractionTeleport extends HabboItem {
|
||||
}
|
||||
|
||||
public void startTeleport(Room room, Habbo habbo) {
|
||||
this.startTeleport(room, habbo, 500);
|
||||
}
|
||||
|
||||
public void startTeleport(Room room, Habbo habbo, int delay) {
|
||||
if (habbo.getRoomUnit().isTeleporting)
|
||||
return;
|
||||
|
||||
this.roomUnitID = -1;
|
||||
habbo.getRoomUnit().isTeleporting = true;
|
||||
Emulator.getThreading().run(new TeleportActionOne(this, room, habbo.getClient()), 500);
|
||||
Emulator.getThreading().run(new TeleportActionOne(this, room, habbo.getClient()), delay);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,7 +38,7 @@ public class InteractionTeleportTile extends InteractionTeleport {
|
||||
|
||||
if (!habbo.getRoomUnit().isTeleporting) {
|
||||
habbo.getRoomUnit().setGoalLocation(habbo.getRoomUnit().getCurrentLocation());
|
||||
this.startTeleport(room, habbo);
|
||||
this.startTeleport(room, habbo, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,12 +5,22 @@ public class ModToolChatLog implements Comparable<ModToolChatLog> {
|
||||
public final int habboId;
|
||||
public final String username;
|
||||
public final String message;
|
||||
public final boolean highlighted;
|
||||
|
||||
public ModToolChatLog(int timestamp, int habboId, String username, String message) {
|
||||
this.timestamp = timestamp;
|
||||
this.habboId = habboId;
|
||||
this.username = username;
|
||||
this.message = message;
|
||||
this.highlighted = false;
|
||||
}
|
||||
|
||||
public ModToolChatLog(int timestamp, int habboId, String username, String message, boolean highlighted) {
|
||||
this.timestamp = timestamp;
|
||||
this.habboId = habboId;
|
||||
this.username = username;
|
||||
this.message = message;
|
||||
this.highlighted = highlighted;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,6 +25,9 @@ public class ModToolIssue implements ISerialize {
|
||||
public volatile String modName = "";
|
||||
public String message;
|
||||
public ArrayList<ModToolChatLog> chatLogs = null;
|
||||
public int groupId = -1;
|
||||
public int threadId = -1;
|
||||
public int commentId = -1;
|
||||
|
||||
public ModToolIssue(ResultSet set) throws SQLException {
|
||||
this.id = set.getInt("id");
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.eu.habbo.habbohotel.modtool;
|
||||
|
||||
public enum ModToolIssueChatlogType {
|
||||
NORMAL(0),
|
||||
CHAT(1),
|
||||
IM(2),
|
||||
FORUM_THREAD(3),
|
||||
FORUM_COMMENT(4),
|
||||
SELFIE(5),
|
||||
PHOTO(6);
|
||||
|
||||
private int type;
|
||||
|
||||
ModToolIssueChatlogType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
}
|
@ -576,6 +576,12 @@ public class RoomManager {
|
||||
habbo.getClient().sendResponse(new HideDoorbellComposer(""));
|
||||
|
||||
if (habbo.getRoomUnit() != null) {
|
||||
Room existingRoom = habbo.getRoomUnit().getRoom();
|
||||
if (existingRoom != null) {
|
||||
if (habbo.getRoomUnit().getCurrentLocation() != null)
|
||||
habbo.getRoomUnit().getCurrentLocation().removeUnit(habbo.getRoomUnit());
|
||||
habbo.getRoomUnit().getRoom().sendComposer(new RoomUserRemoveComposer(habbo.getRoomUnit()).compose());
|
||||
}
|
||||
habbo.getRoomUnit().setRoom(null);
|
||||
}
|
||||
|
||||
@ -617,7 +623,7 @@ public class RoomManager {
|
||||
|
||||
habbo.getRoomUnit().setInRoom(true);
|
||||
if (habbo.getHabboInfo().getCurrentRoom() != room && habbo.getHabboInfo().getCurrentRoom() != null) {
|
||||
habbo.getHabboInfo().getCurrentRoom().removeHabbo(habbo);
|
||||
habbo.getHabboInfo().getCurrentRoom().removeHabbo(habbo, true);
|
||||
} else if (!habbo.getHabboStats().blockFollowing && habbo.getHabboInfo().getCurrentRoom() == null) {
|
||||
habbo.getMessenger().connectionChanged(habbo, true, true);
|
||||
}
|
||||
@ -1503,7 +1509,7 @@ public class RoomManager {
|
||||
|
||||
if (habbo != null) {
|
||||
if (habbo.getHabboInfo().getCurrentRoom() == room) {
|
||||
room.removeHabbo(habbo);
|
||||
room.removeHabbo(habbo, true);
|
||||
habbo.getClient().sendResponse(new RoomEnterErrorComposer(RoomEnterErrorComposer.ROOM_ERROR_BANNED));
|
||||
}
|
||||
}
|
||||
|
@ -81,6 +81,7 @@ public class HabboStats implements Runnable {
|
||||
public long lastPurchaseTimestamp = Emulator.getIntUnixTimestamp();
|
||||
public long lastGiftTimestamp = Emulator.getIntUnixTimestamp();
|
||||
public int uiFlags;
|
||||
public boolean hasGottenDefaultSavedSearches;
|
||||
private HabboInfo habboInfo;
|
||||
private boolean allowTrade;
|
||||
private int clubExpireTimestamp;
|
||||
@ -133,6 +134,7 @@ public class HabboStats implements Runnable {
|
||||
this.perkTrade = set.getString("perk_trade").equalsIgnoreCase("1");
|
||||
this.forumPostsCount = set.getInt("forums_post_count");
|
||||
this.uiFlags = set.getInt("ui_flags");
|
||||
this.hasGottenDefaultSavedSearches = set.getInt("has_gotten_default_saved_searches") == 1;
|
||||
this.nuxReward = this.nux;
|
||||
|
||||
try (PreparedStatement statement = set.getStatement().getConnection().prepareStatement("SELECT * FROM user_window_settings WHERE user_id = ? LIMIT 1")) {
|
||||
@ -292,7 +294,7 @@ public class HabboStats implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection()) {
|
||||
try (PreparedStatement statement = connection.prepareStatement("UPDATE users_settings SET achievement_score = ?, respects_received = ?, respects_given = ?, daily_respect_points = ?, block_following = ?, block_friendrequests = ?, online_time = online_time + ?, guild_id = ?, daily_pet_respect_points = ?, club_expire_timestamp = ?, login_streak = ?, rent_space_id = ?, rent_space_endtime = ?, volume_system = ?, volume_furni = ?, volume_trax = ?, block_roominvites = ?, old_chat = ?, block_camera_follow = ?, chat_color = ?, hof_points = ?, block_alerts = ?, talent_track_citizenship_level = ?, talent_track_helpers_level = ?, ignore_bots = ?, ignore_pets = ?, nux = ?, mute_end_timestamp = ?, allow_name_change = ?, perk_trade = ?, can_trade = ?, `forums_post_count` = ?, ui_flags = ? WHERE user_id = ? LIMIT 1")) {
|
||||
try (PreparedStatement statement = connection.prepareStatement("UPDATE users_settings SET achievement_score = ?, respects_received = ?, respects_given = ?, daily_respect_points = ?, block_following = ?, block_friendrequests = ?, online_time = online_time + ?, guild_id = ?, daily_pet_respect_points = ?, club_expire_timestamp = ?, login_streak = ?, rent_space_id = ?, rent_space_endtime = ?, volume_system = ?, volume_furni = ?, volume_trax = ?, block_roominvites = ?, old_chat = ?, block_camera_follow = ?, chat_color = ?, hof_points = ?, block_alerts = ?, talent_track_citizenship_level = ?, talent_track_helpers_level = ?, ignore_bots = ?, ignore_pets = ?, nux = ?, mute_end_timestamp = ?, allow_name_change = ?, perk_trade = ?, can_trade = ?, `forums_post_count` = ?, ui_flags = ?, has_gotten_default_saved_searches = ? WHERE user_id = ? LIMIT 1")) {
|
||||
statement.setInt(1, this.achievementScore);
|
||||
statement.setInt(2, this.respectPointsReceived);
|
||||
statement.setInt(3, this.respectPointsGiven);
|
||||
@ -326,8 +328,9 @@ public class HabboStats implements Runnable {
|
||||
statement.setString(31, this.allowTrade ? "1" : "0");
|
||||
statement.setInt(32, this.forumPostsCount);
|
||||
statement.setInt(33, this.uiFlags);
|
||||
statement.setInt(34, this.hasGottenDefaultSavedSearches ? 1 : 0);
|
||||
|
||||
statement.setInt(34, this.habboInfo.getId());
|
||||
statement.setInt(35, this.habboInfo.getId());
|
||||
statement.executeUpdate();
|
||||
}
|
||||
|
||||
|
@ -466,6 +466,8 @@ public class PacketManager {
|
||||
this.registerHandler(Incoming.ReportBullyEvent, ReportBullyEvent.class);
|
||||
this.registerHandler(Incoming.ReportEvent, ReportEvent.class);
|
||||
this.registerHandler(Incoming.ReportFriendPrivateChatEvent, ReportFriendPrivateChatEvent.class);
|
||||
this.registerHandler(Incoming.ReportThreadEvent, ReportThreadEvent.class);
|
||||
this.registerHandler(Incoming.ReportCommentEvent, ReportCommentEvent.class);
|
||||
}
|
||||
|
||||
void registerTrading() throws Exception {
|
||||
|
@ -290,6 +290,8 @@ public class Incoming {
|
||||
public static final int SaveWindowSettingsEvent = 3159;
|
||||
public static final int GetHabboGuildBadgesMessageEvent = 21;
|
||||
public static final int UpdateUIFlagsEvent = 2313;
|
||||
public static final int ReportThreadEvent = 534;
|
||||
public static final int ReportCommentEvent = 1412;
|
||||
|
||||
public static final int RequestCraftingRecipesEvent = 1173;
|
||||
public static final int RequestCraftingRecipesAvailableEvent = 3086;
|
||||
|
@ -2,6 +2,7 @@ package com.eu.habbo.messages.incoming.handshake;
|
||||
|
||||
import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.habbohotel.messenger.Messenger;
|
||||
import com.eu.habbo.habbohotel.navigation.NavigatorSavedSearch;
|
||||
import com.eu.habbo.habbohotel.permissions.Permission;
|
||||
import com.eu.habbo.habbohotel.users.Habbo;
|
||||
import com.eu.habbo.habbohotel.users.HabboManager;
|
||||
@ -148,6 +149,17 @@ public class SecureLoginEvent extends MessageHandler {
|
||||
}
|
||||
|
||||
Messenger.checkFriendSizeProgress(habbo);
|
||||
|
||||
if (!habbo.getHabboStats().hasGottenDefaultSavedSearches) {
|
||||
habbo.getHabboStats().hasGottenDefaultSavedSearches = true;
|
||||
Emulator.getThreading().run(habbo.getHabboStats());
|
||||
|
||||
habbo.getHabboInfo().addSavedSearch(new NavigatorSavedSearch("official-root", ""));
|
||||
habbo.getHabboInfo().addSavedSearch(new NavigatorSavedSearch("my", ""));
|
||||
habbo.getHabboInfo().addSavedSearch(new NavigatorSavedSearch("favorites", ""));
|
||||
|
||||
this.client.sendResponse(new NewNavigatorSavedSearchesComposer(this.client.getHabbo().getHabboInfo().getSavedSearches()));
|
||||
}
|
||||
} else {
|
||||
Emulator.getGameServer().getGameClientManager().disposeClient(this.client);
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
package com.eu.habbo.messages.incoming.modtool;
|
||||
|
||||
import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolChatLog;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolIssue;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolTicketType;
|
||||
import com.eu.habbo.habbohotel.modtool.ScripterManager;
|
||||
import com.eu.habbo.habbohotel.guilds.forums.ForumThread;
|
||||
import com.eu.habbo.habbohotel.modtool.*;
|
||||
import com.eu.habbo.habbohotel.permissions.Permission;
|
||||
import com.eu.habbo.habbohotel.rooms.Room;
|
||||
import com.eu.habbo.messages.incoming.MessageHandler;
|
||||
import com.eu.habbo.messages.outgoing.modtool.ModToolIssueChatlogComposer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ModToolRequestIssueChatlogEvent extends MessageHandler {
|
||||
@Override
|
||||
@ -19,11 +19,33 @@ public class ModToolRequestIssueChatlogEvent extends MessageHandler {
|
||||
ModToolIssue issue = Emulator.getGameEnvironment().getModToolManager().getTicket(this.packet.readInt());
|
||||
|
||||
if (issue != null) {
|
||||
ArrayList<ModToolChatLog> chatlog;
|
||||
List<ModToolChatLog> chatlog = new ArrayList<>();
|
||||
ModToolIssueChatlogType chatlogType = ModToolIssueChatlogType.CHAT;
|
||||
|
||||
if (issue.type == ModToolTicketType.IM) {
|
||||
chatlog = Emulator.getGameEnvironment().getModToolManager().getMessengerChatlog(issue.reportedId, issue.senderId);
|
||||
chatlogType = ModToolIssueChatlogType.IM;
|
||||
} else if (issue.type == ModToolTicketType.DISCUSSION) {
|
||||
if (issue.commentId == -1) {
|
||||
chatlogType = ModToolIssueChatlogType.FORUM_THREAD;
|
||||
|
||||
ForumThread thread = ForumThread.getById(issue.threadId);
|
||||
|
||||
if (thread != null) {
|
||||
chatlog = thread.getComments().stream().map(c -> new ModToolChatLog(c.getCreatedAt(), c.getHabbo().getHabboInfo().getId(), c.getHabbo().getHabboInfo().getUsername(), c.getMessage())).collect(Collectors.toList());
|
||||
}
|
||||
} else {
|
||||
chatlogType = ModToolIssueChatlogType.FORUM_COMMENT;
|
||||
|
||||
ForumThread thread = ForumThread.getById(issue.threadId);
|
||||
|
||||
if (thread != null) {
|
||||
chatlog = thread.getComments().stream().map(c -> new ModToolChatLog(c.getCreatedAt(), c.getHabbo().getHabboInfo().getId(), c.getHabbo().getHabboInfo().getUsername(), c.getMessage(), c.getCommentId() == issue.commentId)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
chatlogType = ModToolIssueChatlogType.CHAT;
|
||||
|
||||
if (issue.roomId > 0) {
|
||||
chatlog = Emulator.getGameEnvironment().getModToolManager().getRoomChatlog(issue.roomId);
|
||||
} else {
|
||||
@ -39,7 +61,7 @@ public class ModToolRequestIssueChatlogEvent extends MessageHandler {
|
||||
if (room != null) {
|
||||
roomName = room.getName();
|
||||
}
|
||||
this.client.sendResponse(new ModToolIssueChatlogComposer(issue, chatlog, roomName));
|
||||
this.client.sendResponse(new ModToolIssueChatlogComposer(issue, chatlog, roomName, chatlogType));
|
||||
}
|
||||
} else {
|
||||
ScripterManager.scripterDetected(this.client, Emulator.getTexts().getValue("scripter.warning.modtools.chatlog").replace("%username%", this.client.getHabbo().getHabboInfo().getUsername()));
|
||||
|
@ -0,0 +1,43 @@
|
||||
package com.eu.habbo.messages.incoming.modtool;
|
||||
|
||||
import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.habbohotel.guilds.forums.ForumThread;
|
||||
import com.eu.habbo.habbohotel.modtool.CfhTopic;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolIssue;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolTicketType;
|
||||
import com.eu.habbo.habbohotel.users.Habbo;
|
||||
import com.eu.habbo.messages.incoming.MessageHandler;
|
||||
import com.eu.habbo.messages.outgoing.modtool.ModToolReportReceivedAlertComposer;
|
||||
import com.eu.habbo.threading.runnables.InsertModToolIssue;
|
||||
|
||||
public class ReportCommentEvent extends MessageHandler {
|
||||
@Override
|
||||
public void handle() throws Exception {
|
||||
int groupId = this.packet.readInt();
|
||||
int threadId = this.packet.readInt();
|
||||
int commentId = this.packet.readInt();
|
||||
int topicId = this.packet.readInt();
|
||||
String message = this.packet.readString();
|
||||
|
||||
CfhTopic topic = Emulator.getGameEnvironment().getModToolManager().getCfhTopic(topicId);
|
||||
|
||||
if (topic == null) return;
|
||||
|
||||
ForumThread thread = ForumThread.getById(threadId);
|
||||
|
||||
if (thread == null) return;
|
||||
|
||||
Habbo opener = Emulator.getGameEnvironment().getHabboManager().getHabbo(thread.getOpenerId());
|
||||
|
||||
ModToolIssue issue = new ModToolIssue(this.client.getHabbo().getHabboInfo().getId(), this.client.getHabbo().getHabboInfo().getUsername(), thread.getOpenerId(), opener == null ? "" : opener.getHabboInfo().getUsername(), 0, message, ModToolTicketType.DISCUSSION);
|
||||
issue.category = topicId;
|
||||
issue.groupId = groupId;
|
||||
issue.threadId = threadId;
|
||||
issue.commentId = commentId;
|
||||
new InsertModToolIssue(issue).run();
|
||||
|
||||
this.client.sendResponse(new ModToolReportReceivedAlertComposer(ModToolReportReceivedAlertComposer.REPORT_RECEIVED, message));
|
||||
Emulator.getGameEnvironment().getModToolManager().addTicket(issue);
|
||||
Emulator.getGameEnvironment().getModToolManager().updateTicketToMods(issue);
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package com.eu.habbo.messages.incoming.modtool;
|
||||
|
||||
import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.habbohotel.guilds.forums.ForumThread;
|
||||
import com.eu.habbo.habbohotel.modtool.CfhTopic;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolIssue;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolTicketType;
|
||||
import com.eu.habbo.habbohotel.users.Habbo;
|
||||
import com.eu.habbo.messages.incoming.MessageHandler;
|
||||
import com.eu.habbo.messages.outgoing.modtool.ModToolReportReceivedAlertComposer;
|
||||
import com.eu.habbo.threading.runnables.InsertModToolIssue;
|
||||
|
||||
public class ReportThreadEvent extends MessageHandler {
|
||||
@Override
|
||||
public void handle() throws Exception {
|
||||
int groupId = this.packet.readInt();
|
||||
int threadId = this.packet.readInt();
|
||||
int topicId = this.packet.readInt();
|
||||
String message = this.packet.readString();
|
||||
|
||||
CfhTopic topic = Emulator.getGameEnvironment().getModToolManager().getCfhTopic(topicId);
|
||||
|
||||
if (topic == null) return;
|
||||
|
||||
ForumThread thread = ForumThread.getById(threadId);
|
||||
|
||||
if (thread == null) return;
|
||||
|
||||
Habbo opener = Emulator.getGameEnvironment().getHabboManager().getHabbo(thread.getOpenerId());
|
||||
|
||||
ModToolIssue issue = new ModToolIssue(this.client.getHabbo().getHabboInfo().getId(), this.client.getHabbo().getHabboInfo().getUsername(), thread.getOpenerId(), opener == null ? "" : opener.getHabboInfo().getUsername(), 0, message, ModToolTicketType.DISCUSSION);
|
||||
issue.category = topicId;
|
||||
issue.groupId = groupId;
|
||||
issue.threadId = threadId;
|
||||
new InsertModToolIssue(issue).run();
|
||||
|
||||
this.client.sendResponse(new ModToolReportReceivedAlertComposer(ModToolReportReceivedAlertComposer.REPORT_RECEIVED, message));
|
||||
Emulator.getGameEnvironment().getModToolManager().addTicket(issue);
|
||||
Emulator.getGameEnvironment().getModToolManager().updateTicketToMods(issue);
|
||||
}
|
||||
}
|
@ -10,7 +10,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ChangeNameCheckUsernameEvent extends MessageHandler {
|
||||
public static final String VALID_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-=!?@:,.";
|
||||
public static String VALID_CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-=!?@:,.";
|
||||
|
||||
@Override
|
||||
public void handle() throws Exception {
|
||||
@ -28,8 +28,7 @@ public class ChangeNameCheckUsernameEvent extends MessageHandler {
|
||||
int errorCode = ChangeNameCheckResultComposer.AVAILABLE;
|
||||
|
||||
List<String> suggestions = new ArrayList<>(4);
|
||||
if (false) {
|
||||
} else if (name.length() < 3) {
|
||||
if (name.length() < 3) {
|
||||
errorCode = ChangeNameCheckResultComposer.TOO_SHORT;
|
||||
} else if (name.length() > 15) {
|
||||
errorCode = ChangeNameCheckResultComposer.TOO_LONG;
|
||||
@ -42,7 +41,7 @@ public class ChangeNameCheckUsernameEvent extends MessageHandler {
|
||||
} else if (!Emulator.getGameEnvironment().getWordFilter().filter(name, this.client.getHabbo()).equalsIgnoreCase(name)) {
|
||||
errorCode = ChangeNameCheckResultComposer.NOT_VALID;
|
||||
} else {
|
||||
String checkName = name.toUpperCase();
|
||||
String checkName = name;
|
||||
for (char c : VALID_CHARACTERS.toCharArray()) {
|
||||
checkName = checkName.replace(c + "", "");
|
||||
}
|
||||
|
@ -1,9 +1,8 @@
|
||||
package com.eu.habbo.messages.outgoing.modtool;
|
||||
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolChatLog;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolChatRecordDataContext;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolIssue;
|
||||
import com.eu.habbo.habbohotel.modtool.ModToolTicketType;
|
||||
import com.eu.habbo.Emulator;
|
||||
import com.eu.habbo.habbohotel.modtool.*;
|
||||
import com.eu.habbo.habbohotel.rooms.Room;
|
||||
import com.eu.habbo.messages.ServerMessage;
|
||||
import com.eu.habbo.messages.outgoing.MessageComposer;
|
||||
import com.eu.habbo.messages.outgoing.Outgoing;
|
||||
@ -11,19 +10,28 @@ import com.eu.habbo.messages.outgoing.Outgoing;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ModToolIssueChatlogComposer extends MessageComposer {
|
||||
public static SimpleDateFormat format = new SimpleDateFormat("HH:mm");
|
||||
private final ModToolIssue issue;
|
||||
private final ArrayList<ModToolChatLog> chatlog;
|
||||
private final List<ModToolChatLog> chatlog;
|
||||
private final String roomName;
|
||||
private ModToolIssueChatlogType type = ModToolIssueChatlogType.CHAT;
|
||||
|
||||
public ModToolIssueChatlogComposer(ModToolIssue issue, ArrayList<ModToolChatLog> chatlog, String roomName) {
|
||||
public ModToolIssueChatlogComposer(ModToolIssue issue, List<ModToolChatLog> chatlog, String roomName) {
|
||||
this.issue = issue;
|
||||
this.chatlog = chatlog;
|
||||
this.roomName = roomName;
|
||||
}
|
||||
|
||||
public ModToolIssueChatlogComposer(ModToolIssue issue, List<ModToolChatLog> chatlog, String roomName, ModToolIssueChatlogType type) {
|
||||
this.issue = issue;
|
||||
this.chatlog = chatlog;
|
||||
this.roomName = roomName;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServerMessage compose() {
|
||||
this.response.init(Outgoing.ModToolIssueChatlogComposer);
|
||||
@ -37,16 +45,26 @@ public class ModToolIssueChatlogComposer extends MessageComposer {
|
||||
if (this.chatlog.isEmpty())
|
||||
return null;
|
||||
|
||||
//ChatRecordData
|
||||
//for(ModToolRoomVisit visit : chatlog)
|
||||
//{
|
||||
this.response.appendByte(1); //Report Type
|
||||
this.response.appendByte(this.type.getType()); //Report Type
|
||||
|
||||
if (this.issue.type == ModToolTicketType.IM) {
|
||||
this.response.appendShort(1);
|
||||
|
||||
ModToolChatRecordDataContext.MESSAGE_ID.append(this.response);
|
||||
this.response.appendInt(this.issue.senderId);
|
||||
} else if (this.issue.type == ModToolTicketType.DISCUSSION) {
|
||||
this.response.appendShort(this.type == ModToolIssueChatlogType.FORUM_COMMENT ? 3 : 2);
|
||||
|
||||
ModToolChatRecordDataContext.GROUP_ID.append(this.response);
|
||||
this.response.appendInt(this.issue.groupId);
|
||||
|
||||
ModToolChatRecordDataContext.THREAD_ID.append(this.response);
|
||||
this.response.appendInt(this.issue.threadId);
|
||||
|
||||
if (this.type == ModToolIssueChatlogType.FORUM_COMMENT) {
|
||||
ModToolChatRecordDataContext.GROUP_ID.append(this.response);
|
||||
this.response.appendInt(this.issue.commentId);
|
||||
}
|
||||
} else {
|
||||
this.response.appendShort(3); //Context Count
|
||||
|
||||
@ -57,7 +75,8 @@ public class ModToolIssueChatlogComposer extends MessageComposer {
|
||||
this.response.appendInt(this.issue.roomId);
|
||||
|
||||
ModToolChatRecordDataContext.GROUP_ID.append(this.response);
|
||||
this.response.appendInt(12);
|
||||
Room room = Emulator.getGameEnvironment().getRoomManager().getRoom(this.issue.roomId);
|
||||
this.response.appendInt(room == null ? 0 : room.getGuildId());
|
||||
}
|
||||
|
||||
this.response.appendShort(this.chatlog.size());
|
||||
@ -66,7 +85,7 @@ public class ModToolIssueChatlogComposer extends MessageComposer {
|
||||
this.response.appendInt(chatLog.habboId);
|
||||
this.response.appendString(chatLog.username);
|
||||
this.response.appendString(chatLog.message);
|
||||
this.response.appendBoolean(false);
|
||||
this.response.appendBoolean(chatLog.highlighted);
|
||||
}
|
||||
//}
|
||||
|
||||
|
@ -23,6 +23,7 @@ import com.eu.habbo.habbohotel.wired.WiredHandler;
|
||||
import com.eu.habbo.messages.PacketManager;
|
||||
import com.eu.habbo.messages.incoming.floorplaneditor.FloorPlanEditorSaveEvent;
|
||||
import com.eu.habbo.messages.incoming.hotelview.HotelViewRequestLTDAvailabilityEvent;
|
||||
import com.eu.habbo.messages.incoming.users.ChangeNameCheckUsernameEvent;
|
||||
import com.eu.habbo.messages.outgoing.catalog.DiscountComposer;
|
||||
import com.eu.habbo.plugin.events.emulator.EmulatorConfigUpdatedEvent;
|
||||
import com.eu.habbo.plugin.events.roomunit.RoomUnitLookAtPointEvent;
|
||||
@ -118,6 +119,9 @@ public class PluginManager {
|
||||
AchievementManager.TALENTTRACK_ENABLED = Emulator.getConfig().getBoolean("hotel.talenttrack.enabled");
|
||||
InteractionRoller.NO_RULES = Emulator.getConfig().getBoolean("hotel.room.rollers.norules");
|
||||
RoomManager.SHOW_PUBLIC_IN_POPULAR_TAB = Emulator.getConfig().getBoolean("hotel.navigator.populartab.publics");
|
||||
|
||||
ChangeNameCheckUsernameEvent.VALID_CHARACTERS = Emulator.getConfig().getValue("allowed.username.characters", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-=!?@:,.");
|
||||
|
||||
if (Emulator.isReady) {
|
||||
Emulator.getGameEnvironment().getCreditsScheduler().reloadConfig();
|
||||
Emulator.getGameEnvironment().getPointsScheduler().reloadConfig();
|
||||
|
@ -14,7 +14,7 @@ public class InsertModToolIssue implements Runnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO support_tickets (state, timestamp, score, sender_id, reported_id, room_id, mod_id, issue, category) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS)) {
|
||||
try (Connection connection = Emulator.getDatabase().getDataSource().getConnection(); PreparedStatement statement = connection.prepareStatement("INSERT INTO support_tickets (state, timestamp, score, sender_id, reported_id, room_id, mod_id, issue, category, group_id, thread_id, comment_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS)) {
|
||||
statement.setInt(1, this.issue.state.getState());
|
||||
statement.setInt(2, this.issue.timestamp);
|
||||
statement.setInt(3, this.issue.priority);
|
||||
@ -24,6 +24,9 @@ public class InsertModToolIssue implements Runnable {
|
||||
statement.setInt(7, this.issue.modId);
|
||||
statement.setString(8, this.issue.message);
|
||||
statement.setInt(9, this.issue.category);
|
||||
statement.setInt(10, this.issue.groupId);
|
||||
statement.setInt(11, this.issue.threadId);
|
||||
statement.setInt(12, this.issue.commentId);
|
||||
statement.execute();
|
||||
|
||||
try (ResultSet key = statement.getGeneratedKeys()) {
|
||||
|
@ -67,7 +67,7 @@ class TeleportInteraction extends Thread {
|
||||
|
||||
if (this.room != this.targetRoom) {
|
||||
Emulator.getGameEnvironment().getRoomManager().logExit(this.client.getHabbo());
|
||||
this.room.removeHabbo(this.client.getHabbo());
|
||||
this.room.removeHabbo(this.client.getHabbo(), true);
|
||||
Emulator.getGameEnvironment().getRoomManager().enterRoom(this.client.getHabbo(), this.targetRoom);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user