public void AddGoalPos(Player p, ushort x, ushort y, ushort z, byte type) { p.ClearBlockchange(); p.level.Blockchange(x, y, z, Block.air); if (type == Block.red && goalBuffer.Count > 0) { p.SendBlockchange(x, y, z, Block.air); foreach (PushBallTeam.Pos pp in goalBuffer) { p.level.pushBall.pushBallTeams.Find(team => team.color == goalPosColor[1]).goalPositions.Add(pp); p.SendBlockchange(pp.x, pp.y, pp.z, Block.air); } Player.SendMessage(p, "Goal positions selected for " + p.level.pushBall.pushBallTeams.Find(team => team.color == goalPosColor[1]).teamstring); goalBuffer.Clear(); goalPosColor = ""; } else { p.SendBlockchange(x, y, z, Block.green); PushBallTeam.Pos gp = new PushBallTeam.Pos(); gp.x = x; gp.y = y; gp.z = z; goalBuffer.Add(gp); Player.SendMessage(p, "&aGoal position added. &cPlace a red block to finish."); p.Blockchange += new Player.BlockchangeEventHandler(AddGoalPos); } }