mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-19 02:15:45 +01:00
Implement server announcement (#1420)
* implement server announcement * Update src/main/java/emu/grasscutter/command/commands/AnnounceCommand.java Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com> * Added arg numbers check Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
This commit is contained in:
@@ -12,6 +12,7 @@ import emu.grasscutter.game.dungeons.DungeonManager;
|
||||
import emu.grasscutter.game.dungeons.challenge.DungeonChallenge;
|
||||
import emu.grasscutter.game.expedition.ExpeditionManager;
|
||||
import emu.grasscutter.game.gacha.GachaManager;
|
||||
import emu.grasscutter.game.managers.AnnouncementManager;
|
||||
import emu.grasscutter.game.managers.CookingManager;
|
||||
import emu.grasscutter.game.managers.InventoryManager;
|
||||
import emu.grasscutter.game.managers.MultiplayerManager;
|
||||
@@ -69,6 +70,7 @@ public final class GameServer extends KcpServer {
|
||||
@Getter private final BattlePassMissionManager battlePassMissionManager;
|
||||
@Getter private final CombineManger combineManger;
|
||||
@Getter private final TowerScheduleManager towerScheduleManager;
|
||||
@Getter private final AnnouncementManager announcementManager;
|
||||
|
||||
public GameServer() {
|
||||
this(getAdapterInetSocketAddress());
|
||||
@@ -112,7 +114,7 @@ public final class GameServer extends KcpServer {
|
||||
this.towerScheduleManager = new TowerScheduleManager(this);
|
||||
this.worldDataManager = new WorldDataManager(this);
|
||||
this.battlePassMissionManager = new BattlePassMissionManager(this);
|
||||
|
||||
this.announcementManager = new AnnouncementManager(this);
|
||||
// Hook into shutdown event.
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(this::onServerShutdown));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AnnounceDataOuterClass;
|
||||
import emu.grasscutter.net.proto.ServerAnnounceNotifyOuterClass;
|
||||
import emu.grasscutter.utils.Utils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketServerAnnounceNotify extends BasePacket {
|
||||
|
||||
public PacketServerAnnounceNotify(List<AnnounceDataOuterClass.AnnounceData> data) {
|
||||
super(PacketOpcodes.ServerAnnounceNotify);
|
||||
|
||||
var proto = ServerAnnounceNotifyOuterClass.ServerAnnounceNotify.newBuilder();
|
||||
|
||||
proto.addAllAnnounceDataList(data);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketServerAnnounceNotify(String msg, int configId) {
|
||||
super(PacketOpcodes.ServerAnnounceNotify);
|
||||
|
||||
var proto = ServerAnnounceNotifyOuterClass.ServerAnnounceNotify.newBuilder();
|
||||
|
||||
proto.addAnnounceDataList(AnnounceDataOuterClass.AnnounceData.newBuilder()
|
||||
.setConfigId(configId)
|
||||
.setBeginTime(Utils.getCurrentSeconds() + 1)
|
||||
.setEndTime(Utils.getCurrentSeconds() + 2)
|
||||
.setCenterSystemText(msg)
|
||||
.setCenterSystemFrequency(1)
|
||||
.build());
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ServerAnnounceRevokeNotifyOuterClass;
|
||||
|
||||
public class PacketServerAnnounceRevokeNotify extends BasePacket {
|
||||
|
||||
public PacketServerAnnounceRevokeNotify(int tplId) {
|
||||
super(PacketOpcodes.ServerAnnounceRevokeNotify);
|
||||
|
||||
var proto = ServerAnnounceRevokeNotifyOuterClass.ServerAnnounceRevokeNotify.newBuilder();
|
||||
|
||||
proto.addConfigIdList(tplId);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user