Make a config option for setting server friend info

This commit is contained in:
Melledy
2023-12-01 21:46:18 -08:00
parent 495f42fd80
commit c992935ea5
4 changed files with 149 additions and 49 deletions

View File

@@ -93,6 +93,8 @@ public class Config {
public int staminaReserveRecoveryRate = 18 * 60;
public String language = "EN";
public Set<String> defaultPermissions = Set.of("*");
public ServerProfile serverFriendInfo = new ServerProfile();
public WelcomeMail welcomeMail = new WelcomeMail();
public int getStaminaRecoveryRate() {
@@ -104,6 +106,17 @@ public class Config {
}
}
@Getter
public static class ServerProfile {
public String name = "Server";
public String signature = "Type /help for a list of commands";
public int level = 1;
public int headIcon = 201001;
public int chatBubbleId = 0;
public int displayAvatarId = 1001;
public int displayAvatarLevel = 1;
}
@Getter
public static class WelcomeMail {
public String title;

View File

@@ -797,6 +797,7 @@ public class Player {
.setNickname(this.getName())
.setSignature(this.getSignature())
.setLevel(this.getLevel())
.setChatBubbleId(this.getChatBubble())
.setOnlineStatus(this.isOnline() ? FriendOnlineStatus.FRIEND_ONLINE_STATUS_ONLINE : FriendOnlineStatus.FRIEND_ONLINE_STATUS_OFFLINE)
.setPlatformType(PlatformType.PC)
.setLastActiveTime(this.getLastActiveTime())

View File

@@ -1,6 +1,7 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.GameConstants;
import emu.lunarcore.LunarCore;
import emu.lunarcore.game.friends.FriendList;
import emu.lunarcore.proto.FriendListInfoOuterClass.FriendListInfo;
import emu.lunarcore.proto.FriendOnlineStatusOuterClass.FriendOnlineStatus;
@@ -15,17 +16,21 @@ public class PacketGetFriendListInfoScRsp extends BasePacket {
public PacketGetFriendListInfoScRsp(FriendList friendList) {
super(CmdId.GetFriendListInfoScRsp);
// Get friend info from config
var serverFriendInfo = LunarCore.getConfig().getServerOptions().getServerFriendInfo();
// Inject server console as friend
var consoleFriend = SimpleInfo.newInstance()
.setUid(GameConstants.SERVER_CONSOLE_UID)
.setNickname("Server")
.setSignature("Type /help for a list of commands")
.setLevel(1)
.setNickname(serverFriendInfo.getName())
.setSignature(serverFriendInfo.getSignature())
.setLevel(serverFriendInfo.getLevel())
.setChatBubbleId(serverFriendInfo.getChatBubbleId())
.setOnlineStatus(FriendOnlineStatus.FRIEND_ONLINE_STATUS_ONLINE)
.setPlatformType(PlatformType.PC)
.setSimpleAvatarInfo(SimpleAvatarInfo.newInstance().setAvatarId(1001).setLevel(1))
.setHeadIcon(201001);
.setSimpleAvatarInfo(SimpleAvatarInfo.newInstance().setAvatarId(serverFriendInfo.getDisplayAvatarId()).setLevel(serverFriendInfo.getDisplayAvatarLevel()))
.setHeadIcon(serverFriendInfo.getHeadIcon());
var data = GetFriendListInfoScRsp.newInstance()
.addFriendList(FriendListInfo.newInstance().setSimpleInfo(consoleFriend));