package com.cardshifter.api.outgoing;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.cardshifter.api.messages.Message;
/** Message which contains properties about a player. */
public class PlayerMessage extends Message {
private String name;
private Map<String, Integer> properties;
private int index;
private int id;
/** Constructor. (no params) */
public PlayerMessage() {
this(0, 0, "", new HashMap<String, Integer>());
}
/**
* Constructor.
* @param id The Id of this player
* @param index The index of this player
* @param name The name of this player
* @param properties The properties applicable to this player as Name/Value map
*/
public PlayerMessage(int id, int index, String name, Map<String, Integer> properties) {
super("player");
this.index = index;
this.id = id;
this.name = name;
this.properties = properties;
}
/** @return The name of this player */
public String getName() {
return name;
}
/** @return The properties applicable to this player as Name/Value map */
public Map<String, Integer> getProperties() {
return Collections.unmodifiableMap(properties);
}
/** @return The index of this player */
public int getIndex() {
return index;
}
/**@return The Id of this player */
public int getId() {
return id;
}
/**
* @return This message as converted to String
* @example <code>SERVER: command: player, name: 'Bubu', properties: { hp: 23 }</code>
*/
@Override
public String toString() {
return "Player Info: " + name + " - " + properties;
}
}