Skip to content

Commit

Permalink
Update rcc-discord and rcc-server dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
Ale32bit committed Oct 13, 2024
1 parent c6ef42c commit 5176488
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 48 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ dependencies {
include modImplementation("net.kyori:adventure-platform-fabric:${project.adventure_version}")
include implementation("net.kyori:adventure-text-serializer-legacy:${project.adventure_legacy_serializer_version}")

modImplementation include("eu.pb4:placeholder-api:${placeholderapi_version}")
modImplementation include("eu.pb4:placeholder-api:${project.placeholderapi_version}")

annotationProcessor modImplementation("io.wispforest:owo-lib:${project.owo_version}")
include "io.wispforest:owo-sentinel:${project.owo_version}"
Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ yarn_mappings=1.20.1+build.10
loader_version=0.16.5

# Mod Properties
mod_version=1.5.2
mod_version=1.6.1
maven_group=cc.reconnected.chatbox
archives_base_name=rcc-chatbox

# Dependencies
fabric_version=0.92.2+1.20.1

rccserver_version=1.8.5
rccdiscord_version=1.4.1
rccserver_version=1.9.2
rccdiscord_version=1.5.0

permissions_api_version=0.2-SNAPSHOT

Expand Down
70 changes: 46 additions & 24 deletions src/main/java/cc/reconnected/chatbox/ChatboxEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@
import cc.reconnected.chatbox.utils.DateUtils;
import cc.reconnected.chatbox.ws.CloseCodes;
import cc.reconnected.chatbox.ws.WsServer;
import cc.reconnected.discordbridge.events.DiscordMessage;
import cc.reconnected.discordbridge.events.DiscordMessageEvents;
import cc.reconnected.server.database.PlayerData;
import cc.reconnected.server.events.PlayerActivityEvents;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import net.fabricmc.fabric.api.entity.event.v1.ServerEntityWorldChangeEvents;
import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
Expand Down Expand Up @@ -154,27 +157,8 @@ public static void register() {
});

// discord chat events
DiscordMessage.MESSAGE_CREATE.register((message, member, isEdited) -> {
var user = DiscordUser.fromMember(member);
var packet = new DiscordChatEvent();
packet.text = message.getContentStripped();
packet.rawText = message.getContentRaw();
packet.renderedText = Text.Serializer.toJsonTree(MarkdownParser.contentParser.parseNode(message.getContentDisplay()).toText());
packet.discordId = message.getId();
packet.discordUser = user;
packet.edited = isEdited;

var messageOffsetDate= isEdited ? message.getTimeEdited() : message.getTimeCreated();
Date messageDate;
if(messageOffsetDate != null) {
messageDate = new Date(messageOffsetDate.toInstant().toEpochMilli());
} else {
messageDate = new Date();
}
packet.time = DateUtils.getTime(messageDate);

Chatbox.getInstance().wss().broadcastEvent(packet, Capability.READ);
});
DiscordMessageEvents.MESSAGE_CREATE.register((message, member) -> emitDiscordChatEvent(message, member, false));
DiscordMessageEvents.MESSAGE_EDIT.register((message, member) -> emitDiscordChatEvent(message, member, true));

// chat messages
ServerMessageEvents.CHAT_MESSAGE.register((message, sender, params) -> {
Expand Down Expand Up @@ -234,7 +218,7 @@ public static void register() {

if (!isOwnerOnly) {
var server = sender.getServer();
if(server == null)
if (server == null)
return true;

var playerManager = server.getPlayerManager();
Expand All @@ -243,14 +227,52 @@ public static void register() {
.append(Text.literal(content).setStyle(Style.EMPTY.withColor(Formatting.GRAY)));

playerManager.getPlayerList().forEach(player -> {
if(spyingPlayers.containsKey(player.getUuid()) && spyingPlayers.get(player.getUuid())) {
if (spyingPlayers.containsKey(player.getUuid()) && spyingPlayers.get(player.getUuid())) {
player.sendMessage(text, false);
}
});
}

return false;
});

PlayerActivityEvents.AFK.register((player, server) -> {
var packet = new AfkEvent();
packet.user = User.create(player);
packet.time = DateUtils.getTime(new Date());

Chatbox.getInstance().wss().broadcastEvent(packet, Capability.READ);
});

PlayerActivityEvents.AFK_RETURN.register((player, server) -> {
var packet = new AfkEvent();
packet.user = User.create(player);
packet.time = DateUtils.getTime(new Date());

Chatbox.getInstance().wss().broadcastEvent(packet, Capability.READ);
});
}

private static void emitDiscordChatEvent(Message message, Member member, boolean isEdited) {
var user = DiscordUser.fromMember(member);
var packet = new DiscordChatEvent();
packet.text = message.getContentStripped();
packet.rawText = message.getContentRaw();
packet.renderedText = Text.Serializer.toJsonTree(MarkdownParser.contentParser.parseNode(message.getContentDisplay()).toText());
packet.discordId = message.getId();
packet.discordUser = user;
packet.edited = isEdited;

var messageOffsetDate = isEdited ? message.getTimeEdited() : message.getTimeCreated();
Date messageDate;
if (messageOffsetDate != null) {
messageDate = new Date(messageOffsetDate.toInstant().toEpochMilli());
} else {
messageDate = new Date();
}
packet.time = DateUtils.getTime(messageDate);

Chatbox.getInstance().wss().broadcastEvent(packet, Capability.READ);
}

public static PlayersPacket createPlayersPacket(List<ServerPlayerEntity> list) {
Expand Down
38 changes: 20 additions & 18 deletions src/main/java/cc/reconnected/chatbox/license/LicenseManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class LicenseManager {
public static final UUID guestLicenseUuid = new UUID(0, 0);
public static final License guestLicense = new License(guestLicenseUuid, guestLicenseUuid);
public static final String nodePrefix = "chatbox";

public static class KEYS {
public static final String licenseUuid = nodePrefix + ".license_uuid";
public static final String capabilities = nodePrefix + ".capabilities";
Expand All @@ -33,26 +34,26 @@ private License buildLicense(String uuid, String userId, int packedCapabilities)

@Nullable
public License getLicense(UUID licenseId) {
if(licenseId.equals(guestLicenseUuid)) {
if (licenseId.equals(guestLicenseUuid)) {
return guestLicense;
}
if (cache.containsKey(licenseId)) {
return cache.get(licenseId);
}

var serverState = Chatbox.getInstance().serverState();
if(!serverState.licenses.containsKey(licenseId))
if (!serverState.licenses.containsKey(licenseId))
return null;

var ownerUuid = serverState.licenses.get(licenseId);
var playerData = PlayerData.getPlayer(ownerUuid);
var licenseUuid = playerData.get(KEYS.licenseUuid);
var capabilitiesStr = playerData.get(KEYS.capabilities);
int packedCapabilities = 0;
if(capabilitiesStr != null) {
if (capabilitiesStr != null) {
try {
packedCapabilities = Integer.parseInt(capabilitiesStr);
} catch(NumberFormatException e) {
} catch (NumberFormatException e) {
// do nothing
}
}
Expand All @@ -65,7 +66,7 @@ public License getLicense(UUID licenseId) {

@Nullable
public License getLicenseFromUser(UUID userId) {
if(userId.equals(guestLicenseUuid)) {
if (userId.equals(guestLicenseUuid)) {
return guestLicense;
}
var license = cache.values().parallelStream().filter(l -> l.userId() == userId).findFirst().orElse(null);
Expand All @@ -75,14 +76,14 @@ public License getLicenseFromUser(UUID userId) {

var playerData = PlayerData.getPlayer(userId);
var licenseUuid = playerData.get(KEYS.licenseUuid);
if(licenseUuid == null)
if (licenseUuid == null)
return null;
var capabilitiesStr = playerData.get(KEYS.capabilities);
int packedCapabilities = 0;
if(capabilitiesStr != null) {
if (capabilitiesStr != null) {
try {
packedCapabilities = Integer.parseInt(capabilitiesStr);
} catch(NumberFormatException e) {
} catch (NumberFormatException e) {
// do nothing
}
}
Expand All @@ -93,7 +94,7 @@ public License getLicenseFromUser(UUID userId) {
}

public License createLicense(UUID userId, Set<Capability> capabilities) {
if(userId.equals(guestLicenseUuid)) {
if (userId.equals(guestLicenseUuid)) {
return guestLicense;
}
var license = getLicenseFromUser(userId);
Expand All @@ -107,8 +108,9 @@ public License createLicense(UUID userId, Set<Capability> capabilities) {
license.capabilities().addAll(capabilities);

var playerData = PlayerData.getPlayer(userId);
playerData.set(KEYS.licenseUuid, uuid.toString());
playerData.set(KEYS.capabilities, String.valueOf(Capability.pack(capabilities)));
playerData.set(KEYS.licenseUuid, uuid.toString()).join();
playerData.set(KEYS.capabilities, String.valueOf(Capability.pack(capabilities))).join();

Chatbox.getInstance().serverState().licenses.put(uuid, userId);

cache.put(uuid, license);
Expand All @@ -117,38 +119,38 @@ public License createLicense(UUID userId, Set<Capability> capabilities) {
}

public boolean deleteLicense(UUID licenseId) {
if(licenseId.equals(guestLicenseUuid)) {
if (licenseId.equals(guestLicenseUuid)) {
return false;
}

var license = getLicense(licenseId);
if(license == null) {
if (license == null) {
return false;
}

var playerData = PlayerData.getPlayer(license.userId());
playerData.delete(KEYS.licenseUuid);
playerData.delete(KEYS.capabilities);
playerData.delete(KEYS.licenseUuid).join();
playerData.delete(KEYS.capabilities).join();

Chatbox.getInstance().serverState().licenses.remove(license.uuid());
cache.remove(license.uuid());
return true;
}

public boolean updateLicense(UUID licenseId, Set<Capability> capabilities) {
if(licenseId.equals(guestLicenseUuid)) {
if (licenseId.equals(guestLicenseUuid)) {
return false;
}
var license = getLicense(licenseId);
if(license == null) {
if (license == null) {
return false;
}

license.capabilities().clear();
license.capabilities().addAll(capabilities);
var playerData = PlayerData.getPlayer(license.userId());

playerData.set(KEYS.capabilities, String.valueOf(Capability.pack(capabilities)));
playerData.set(KEYS.capabilities, String.valueOf(Capability.pack(capabilities))).join();
cache.put(license.uuid(), license);

return true;
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
"minecraft": "~1.20.1",
"java": ">=17",
"fabric-api": "*",
"rcc-server": ">=1.8.0",
"rcc-discord": ">=1.4.1",
"rcc-server": ">=1.9.2",
"rcc-discord": ">=1.5.0",
"luckperms": ">=5.4"
}
}

0 comments on commit 5176488

Please sign in to comment.