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:
Akka
2022-07-02 21:43:22 +08:00
committed by GitHub
parent a80302cdcd
commit 9bafc2c5d5
9 changed files with 335 additions and 1 deletions

View File

@@ -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);
}
}

View File

@@ -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);
}
}