package me.km.snuviscript; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import me.hammerle.code.SnuviParser; import me.km.KajetansMod; import net.minecraft.entity.player.EntityPlayer; public class PlayerScript extends MinecraftScript { private final ArrayList players; public PlayerScript(SnuviParser parser, int id, String name, String code, boolean receiveEventBroadcast) { super(parser, id, name, code, receiveEventBroadcast); players = new ArrayList<>(); } @Override public void onTerm() { ScriptModule scm = KajetansMod.scripts; this.setInvalid(); players.forEach(p -> scm.removePlayerFromScript(p, this)); } @Override protected void initExpansion(Object... o) { players.add((EntityPlayer) o[0]); ScriptVars.setPlayerVars(this, (EntityPlayer) o[0]); } public void addPlayer(EntityPlayer p) { players.add(p); } public boolean removePlayer(EntityPlayer p) { players.remove(p); return players.isEmpty(); } public List getPlayers() { return players; } public List getPlayerNames() { return getPlayers().stream().map(p -> p.getName()).collect(Collectors.toList()); } }