PageRenderTime 47ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/MJS/Variables/Player.cs

https://bitbucket.org/realquaisaq/mcrevive
C# | 109 lines | 103 code | 6 blank | 0 comment | 8 complexity | 5db28020249207779e15bdfee14ec562 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace MJS
  6. {
  7. public class Player
  8. {
  9. public static List<Player> players = new List<Player>();
  10. public static List<string> variableNames = new List<string>();
  11. public static List<string> variableTypes = new List<string>();
  12. public static List<object> variableDefaultValues = new List<object>();
  13. public Rank rank;
  14. public Map map;
  15. public string name;
  16. public string title;
  17. public string titleColor;
  18. public ushort[] pos = new ushort[3];
  19. public byte[] rot = new byte[2];
  20. public List<object> variableValues;
  21. public Player(string Name, string Title, string TitleColor, Map Map, Rank Rank)
  22. {
  23. name = Name;
  24. title = Title;
  25. titleColor = TitleColor;
  26. map = Map;
  27. rank = Rank;
  28. variableValues = new List<object>();
  29. }
  30. public void SendMessage(string msg)
  31. {
  32. Events.SendMessage(name, msg);
  33. }
  34. public void SendMap(Map Map)
  35. {
  36. Events.SendPlayerMap(name, Map.name);
  37. }
  38. public void SendPos(ushort x, ushort y, ushort z, byte rotx, byte roty)
  39. {
  40. Events.SendPlayerPos(name, x, y, z, rotx, roty);
  41. }
  42. public void SendBlockchange(ushort x, ushort y, ushort z, ushort type)
  43. {
  44. Events.SendPlayerBlock(name, x, y, z, type);
  45. }
  46. public void Kick(string msg)
  47. {
  48. Events.KickPlayer(name, msg);
  49. }
  50. public void UpdatePos(ushort x, ushort y, ushort z, byte rotx, byte roty)
  51. {
  52. pos[0] = x; pos[1] = y; pos[2] = z; rot[0] = rotx; rot[1] = roty;
  53. }
  54. public static Player Find(string name)
  55. {
  56. foreach (Player who in players)
  57. if (who.name == name)
  58. return who;
  59. return null;
  60. }
  61. public static bool varExists(string name)
  62. {
  63. return variableNames.Contains(name);
  64. }
  65. public object varValue(string name)
  66. {
  67. int i = 0;
  68. foreach (string varName in variableNames)
  69. {
  70. if (varName == name) return variableValues[i];
  71. i++;
  72. }
  73. return null;
  74. }
  75. public static bool addVar(string name, object defaultValue)
  76. {
  77. if (variableNames.Contains(name)) return false;
  78. variableNames.Add(name);
  79. variableTypes.Add(defaultValue.GetType().Name);
  80. variableDefaultValues.Add(defaultValue);
  81. foreach (Player p in Player.players) p.variableValues.Add(defaultValue);
  82. return true;
  83. }
  84. public static bool delVar(string name)
  85. {
  86. if (!variableNames.Contains(name)) return false;
  87. int i = 0;
  88. foreach (string varName in variableNames)
  89. {
  90. if (varName == name) goto foundIndex;
  91. i++;
  92. }
  93. foundIndex:
  94. variableNames.RemoveRange(i, 1);
  95. variableTypes.RemoveRange(i, 1);
  96. foreach (Player p in Player.players)
  97. {
  98. p.variableValues.RemoveRange(i, 1);
  99. }
  100. return true;
  101. }
  102. }
  103. }