package jk_5.nailed.server.map.gamerule;
import jk_5.nailed.api.gamerule.DefaultGameRuleKey;
import jk_5.nailed.api.gamerule.EditableGameRule;
import jk_5.nailed.api.gamerule.EditableGameRules;
import jk_5.nailed.api.gamerule.GameRuleKey;
import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/**
* No description given
*
* @author jk-5
*/
public class DefaultEditableGameRules implements EditableGameRules {
private final Map<GameRuleKey<?>, EditableGameRule<?>> gameRuleMap = new HashMap<GameRuleKey<?>, EditableGameRule<?>>();
public DefaultEditableGameRules() {
for(GameRuleKey<?> key : DefaultGameRuleKey.list()){
//noinspection unchecked
gameRuleMap.put(key, new DefaultEditableGameRule(key));
}
}
@Nonnull
@Override
public <T> EditableGameRule<T> get(@Nonnull GameRuleKey<T> key) {
//noinspection unchecked
return (EditableGameRule<T>) gameRuleMap.get(key);
}
@Nonnull
@Override
public Collection<EditableGameRule<?>> list() {
return Collections.unmodifiableCollection(gameRuleMap.values());
}
@Override
public String toString() {
return "DefaultEditableGameRules{" +
"gameRuleMap=" + gameRuleMap +
'}';
}
}