mirror of
https://github.com/array-in-a-matrix/brainwine.git
synced 2025-04-02 11:11:58 -04:00
Prepack EntityItemUseMessage
This commit is contained in:
parent
5dbc7555de
commit
7a06129e8b
3 changed files with 62 additions and 15 deletions
|
@ -338,11 +338,7 @@ public class Player extends Entity implements CommandExecutor {
|
|||
Collection<Player> peers = zone.getPlayers();
|
||||
sendMessage(new EntityStatusMessage(peers, EntityStatus.ENTERING));
|
||||
sendMessage(new EntityPositionMessage(peers));
|
||||
|
||||
// TODO prepack this as well
|
||||
for(Player peer : peers) {
|
||||
sendMessage(new EntityItemUseMessage(peer.getId(), 0, peer.getHeldItem(), 0));
|
||||
}
|
||||
sendMessage(new EntityItemUseMessage(peers));
|
||||
|
||||
// Send achievement data
|
||||
for(Achievement achievement : AchievementManager.getAchievements()) {
|
||||
|
|
|
@ -1,21 +1,29 @@
|
|||
package brainwine.gameserver.server.messages;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import brainwine.gameserver.annotations.MessageInfo;
|
||||
import brainwine.gameserver.entity.player.Player;
|
||||
import brainwine.gameserver.item.Item;
|
||||
import brainwine.gameserver.server.Message;
|
||||
import brainwine.gameserver.server.models.EntityItemUseData;
|
||||
|
||||
@MessageInfo(id = 10, collection = true)
|
||||
@MessageInfo(id = 10, prepacked = true)
|
||||
public class EntityItemUseMessage extends Message {
|
||||
|
||||
public int entityId;
|
||||
public int type;
|
||||
public Item item;
|
||||
public int status;
|
||||
public Collection<EntityItemUseData> data;
|
||||
|
||||
public EntityItemUseMessage(int entityId, int type, Item item, int status) {
|
||||
this.entityId = entityId;
|
||||
this.type = type;
|
||||
this.item = item;
|
||||
this.status = status;
|
||||
public EntityItemUseMessage(Collection<? extends Player> players) {
|
||||
this.data = players.stream().map(EntityItemUseData::new).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public EntityItemUseMessage(Player player) {
|
||||
this.data = Arrays.asList(new EntityItemUseData(player));
|
||||
}
|
||||
|
||||
public EntityItemUseMessage(int id, int type, Item item, int status) {
|
||||
this.data = Arrays.asList(new EntityItemUseData(id, type, item, status));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package brainwine.gameserver.server.models;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat.Shape;
|
||||
|
||||
import brainwine.gameserver.entity.player.Player;
|
||||
import brainwine.gameserver.item.Item;
|
||||
|
||||
@JsonFormat(shape = Shape.ARRAY)
|
||||
public class EntityItemUseData {
|
||||
|
||||
private final int id;
|
||||
private final int type;
|
||||
private final Item item;
|
||||
private final int status;
|
||||
|
||||
public EntityItemUseData(Player player) {
|
||||
this(player.getId(), 0, player.getHeldItem(), 0);
|
||||
}
|
||||
|
||||
public EntityItemUseData(int id, int type, Item item, int status) {
|
||||
this.id = id;
|
||||
this.type = type;
|
||||
this.item = item;
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public Item getItem() {
|
||||
return item;
|
||||
}
|
||||
|
||||
public int getStatus() {
|
||||
return status;
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue