mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-22 11:54:39 +01:00
Implement a new item drops system (#2112)
* 1 * Delete .gitattributes * implement * Update PacketDropHintNotify.java * Update PacketWorldChestOpenNotify.java * Update FileUtils.java * Update PacketDropHintNotify.java * Update WorldDataSystem.java --------- Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
package emu.grasscutter.server.game;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.GAME_INFO;
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
|
||||
import emu.grasscutter.GameConstants;
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.database.DatabaseHelper;
|
||||
@@ -12,6 +9,7 @@ import emu.grasscutter.game.chat.ChatSystem;
|
||||
import emu.grasscutter.game.chat.ChatSystemHandler;
|
||||
import emu.grasscutter.game.combine.CombineManger;
|
||||
import emu.grasscutter.game.drop.DropSystem;
|
||||
import emu.grasscutter.game.drop.DropSystemLegacy;
|
||||
import emu.grasscutter.game.dungeons.DungeonSystem;
|
||||
import emu.grasscutter.game.expedition.ExpeditionSystem;
|
||||
import emu.grasscutter.game.gacha.GachaSystem;
|
||||
@@ -36,14 +34,18 @@ import emu.grasscutter.server.event.internal.ServerStopEvent;
|
||||
import emu.grasscutter.server.event.types.ServerEvent;
|
||||
import emu.grasscutter.server.scheduler.ServerTaskScheduler;
|
||||
import emu.grasscutter.task.TaskMap;
|
||||
import kcp.highway.ChannelConfig;
|
||||
import kcp.highway.KcpServer;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import kcp.highway.ChannelConfig;
|
||||
import kcp.highway.KcpServer;
|
||||
import lombok.Getter;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.GAME_INFO;
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
|
||||
@Getter
|
||||
public final class GameServer extends KcpServer {
|
||||
@@ -61,6 +63,7 @@ public final class GameServer extends KcpServer {
|
||||
private final DungeonSystem dungeonSystem;
|
||||
private final ExpeditionSystem expeditionSystem;
|
||||
private final DropSystem dropSystem;
|
||||
private final DropSystemLegacy dropSystemLegacy;
|
||||
private final WorldDataSystem worldDataSystem;
|
||||
private final BattlePassSystem battlePassSystem;
|
||||
private final CombineManger combineSystem;
|
||||
@@ -113,6 +116,7 @@ public final class GameServer extends KcpServer {
|
||||
this.multiplayerSystem = new MultiplayerSystem(this);
|
||||
this.dungeonSystem = new DungeonSystem(this);
|
||||
this.dropSystem = new DropSystem(this);
|
||||
this.dropSystemLegacy = new DropSystemLegacy(this);
|
||||
this.expeditionSystem = new ExpeditionSystem(this);
|
||||
this.combineSystem = new CombineManger(this);
|
||||
this.towerSystem = new TowerSystem(this);
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.inventory.GameItem;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.DropHintNotifyOuterClass.DropHintNotify;
|
||||
import emu.grasscutter.net.proto.VectorOuterClass.Vector;
|
||||
|
||||
public class PacketDropHintNotify extends BasePacket {
|
||||
public PacketDropHintNotify(int itemId, Vector position) {
|
||||
super(PacketOpcodes.DropHintNotify);
|
||||
|
||||
var proto = DropHintNotify.newBuilder()
|
||||
.addItemIdList(itemId)
|
||||
.setPosition(position);
|
||||
this.setData(proto.build());
|
||||
}
|
||||
|
||||
public PacketDropHintNotify(Iterable<GameItem> items, Vector position) {
|
||||
super(PacketOpcodes.DropHintNotify);
|
||||
|
||||
var proto = DropHintNotify.newBuilder();
|
||||
items.forEach(i -> proto.addItemIdList(i.getItemId()));
|
||||
proto.setPosition(position);
|
||||
this.setData(proto.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.WorldChestOpenNotifyOuterClass.WorldChestOpenNotify;
|
||||
|
||||
public class PacketWorldChestOpenNotify extends BasePacket {
|
||||
public PacketWorldChestOpenNotify(int groupId,int sceneId,int configId){
|
||||
super(PacketOpcodes.WorldChestOpenNotify);
|
||||
|
||||
this.setData(WorldChestOpenNotify.newBuilder()
|
||||
.setGroupId(groupId)
|
||||
.setSceneId(sceneId)
|
||||
.setConfigId(configId)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user