PlayerScript.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package me.km.snuviscript;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.stream.Collectors;
  5. import me.hammerle.code.SnuviParser;
  6. import me.km.KajetansMod;
  7. import net.minecraft.entity.player.EntityPlayer;
  8. public class PlayerScript extends MinecraftScript
  9. {
  10. private final ArrayList<EntityPlayer> players;
  11. public PlayerScript(SnuviParser parser, int id, String name, String code, boolean receiveEventBroadcast)
  12. {
  13. super(parser, id, name, code, receiveEventBroadcast);
  14. players = new ArrayList<>();
  15. }
  16. @Override
  17. public void onTerm()
  18. {
  19. ScriptModule scm = KajetansMod.scripts;
  20. this.setInvalid();
  21. players.forEach(p -> scm.removePlayerFromScript(p, this));
  22. }
  23. @Override
  24. protected void initExpansion(Object... o)
  25. {
  26. players.add((EntityPlayer) o[0]);
  27. ScriptVars.setPlayerVars(this, (EntityPlayer) o[0]);
  28. }
  29. public void addPlayer(EntityPlayer p)
  30. {
  31. players.add(p);
  32. }
  33. public boolean removePlayer(EntityPlayer p)
  34. {
  35. players.remove(p);
  36. return players.isEmpty();
  37. }
  38. public List<EntityPlayer> getPlayers()
  39. {
  40. return players;
  41. }
  42. public List<String> getPlayerNames()
  43. {
  44. return getPlayers().stream().map(p -> p.getName()).collect(Collectors.toList());
  45. }
  46. }