Solved hasPermissions NullPointerException

Discussion in 'Plugin Development' started by Nols1000, Jul 10, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Nols1000

    Hello,

    I'm working on a TelnetPlugin. (Yes SSH is better)

    Now most of all works. Just the PermissionSystem don't work.
    Because I had to write a new Class extends ConsoleCommandSender. I created a fake Player. The Player have the name of the TelnetUser and is not null. (i've checked it.) But i get a nullpointerexception everytime player.hasPermissions() is called.

    Here my Class:
    Code:java
    1. public class VirtuellTerminal extends OnCommandEvent implements ConsoleCommandSender {
    2.  
    3. private JavaPlugin plugin;
    4.  
    5. private TelnetServer tServer;
    6. private TelnetThread tThread;
    7. private TelnetUser tUser;
    8.  
    9. private Player player;
    10.  
    11. private boolean isInConversation = false;
    12. private Conversation conversation = null;
    13.  
    14. public VirtuellTerminal(JavaPlugin plugin, TelnetServer tServer, TelnetThread thread) {
    15.  
    16. this.plugin = plugin;
    17. this.tServer = tServer;
    18. this.tThread = thread;
    19. tUser = thread.getUser();
    20. }
    21.  
    22. /*
    23.   * OnCommandEvent start
    24.   * */
    25. @Override
    26. public void onCommand(String cmd){
    27.  
    28. plugin.getLogger().log(Level.INFO, tUser.getName()+" performed a command: "+cmd);
    29.  
    30. plugin.getServer().dispatchCommand(this, cmd);
    31.  
    32. }
    33.  
    34. @Override
    35. public void onLoggedIn(){
    36.  
    37. System.out.println("Player registered");
    38.  
    39. player = plugin.getServer().getPlayer(tUser.getName());
    40. }
    41. /*
    42.   * end
    43.   * */
    44.  
    45. @Override
    46. public PermissionAttachment addAttachment(Plugin arg0) {
    47.  
    48. return player.addAttachment(arg0);
    49. }
    50.  
    51. @Override
    52. public PermissionAttachment addAttachment(Plugin arg0, int arg1) {
    53.  
    54. return player.addAttachment(arg0, arg1);
    55. }
    56.  
    57. @Override
    58. public PermissionAttachment addAttachment(Plugin arg0, String arg1,
    59. boolean arg2) {
    60.  
    61. return player.addAttachment(arg0, arg1, arg2);
    62. }
    63.  
    64. @Override
    65. public PermissionAttachment addAttachment(Plugin arg0, String arg1,
    66. boolean arg2, int arg3) {
    67.  
    68. return player.addAttachment(arg0, arg1, arg2, arg3);
    69. }
    70.  
    71. @Override
    72. public Set<PermissionAttachmentInfo> getEffectivePermissions() {
    73.  
    74. return player.getEffectivePermissions();
    75. }
    76.  
    77. @Override
    78. public boolean hasPermission(String arg0) {
    79.  
    80. System.out.println(arg0);
    81.  
    82. return player.
    83. hasPermission(arg0);
    84. }
    85.  
    86. @Override
    87. public boolean hasPermission(Permission arg0) {
    88.  
    89. return player.
    90. hasPermission(arg0);
    91. }
    92.  
    93. @Override
    94. public boolean isPermissionSet(String arg0) {
    95.  
    96. return player.isPermissionSet(arg0);
    97. }
    98.  
    99. @Override
    100. public boolean isPermissionSet(Permission arg0) {
    101.  
    102. return player.isPermissionSet(arg0);
    103. }
    104.  
    105. @Override
    106. public void recalculatePermissions() {
    107.  
    108. player.recalculatePermissions();
    109. }
    110.  
    111. @Override
    112. public void removeAttachment(PermissionAttachment arg0) {
    113.  
    114. player.removeAttachment(arg0);
    115. }
    116.  
    117. @Override
    118. public boolean isOp() {
    119.  
    120. return player.isOp();
    121. }
    122.  
    123. @Override
    124. public void setOp(boolean arg0) {
    125.  
    126. player.setOp(arg0);
    127. }
    128.  
    129. @Override
    130. public String getName() {
    131.  
    132. return tServer.getName();
    133. }
    134.  
    135. @Override
    136. public Server getServer() {
    137.  
    138. return plugin.getServer();
    139. }
    140.  
    141. @Override
    142. public void sendMessage(String arg0) {
    143.  
    144. try {
    145.  
    146. tThread.sendMsg(ChatColor.stripColor(arg0)+"\n\r");
    147. } catch (IOException e) {
    148.  
    149. e.printStackTrace();
    150. }
    151. }
    152.  
    153. @Override
    154. public void sendMessage(String[] arg0) {
    155.  
    156. String[] arg1 = new String[arg0.length];
    157.  
    158. for(int i = 0; i < arg0.length; i++){
    159.  
    160. arg1[i] = ChatColor.stripColor(arg0[i])+"\n\r";
    161. }
    162.  
    163. try {
    164.  
    165. tThread.sendMsg(arg1);
    166. } catch (IOException e) {
    167.  
    168. e.printStackTrace();
    169. }
    170. }
    171.  
    172. @Override
    173. public void abandonConversation(Conversation arg0) {
    174.  
    175. if(conversation != null){
    176.  
    177. isInConversation = false;
    178. arg0.abandon();
    179. }
    180. }
    181.  
    182. @Override
    183. public void abandonConversation(Conversation arg0,
    184. ConversationAbandonedEvent arg1) {
    185.  
    186. if(conversation != null){
    187.  
    188. isInConversation = false;
    189. arg0.abandon(arg1);
    190. }
    191. }
    192.  
    193. @Override
    194. public void acceptConversationInput(String arg0) {
    195.  
    196. if(conversation != null){
    197.  
    198. conversation.acceptInput(arg0);
    199. }
    200. }
    201.  
    202. @Override
    203. public boolean beginConversation(Conversation arg0) {
    204.  
    205. isInConversation = true;
    206. conversation = arg0;
    207. arg0.begin();
    208.  
    209. return false;
    210. }
    211.  
    212. @Override
    213. public boolean isConversing() {
    214.  
    215. return isInConversation;
    216. }
    217.  
    218. @Override
    219. public void sendRawMessage(String arg0) {
    220.  
    221. try {
    222.  
    223. tThread.sendMsg(arg0);
    224. } catch (IOException e) {
    225.  
    226. e.printStackTrace();
    227. }
    228. }
    229. }[/i][/i]


    Here the Error:
    Code:text
    1.  
    2. 2013-07-10 19:48:44 [SEVERE] org.bukkit.command.CommandException: Unhandled exception executing 'help' in org.bukkit.command.defaults.HelpCommand(help)
    3. 2013-07-10 19:48:44 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:193)
    4. 2013-07-10 19:48:44 [SEVERE] at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523)
    5. 2013-07-10 19:48:44 [SEVERE] at dev.bukkit.Nols1000.MineWire.VirtuellTerminal.onCommand(VirtuellTerminal.java:53)
    6. 2013-07-10 19:48:44 [SEVERE] at com.github.Nols1000.ts.TelnetThread.commandLoop(TelnetThread.java:109)
    7. 2013-07-10 19:48:44 [SEVERE] at com.github.Nols1000.ts.TelnetThread.run(TelnetThread.java:69)
    8. 2013-07-10 19:48:44 [SEVERE] Caused by: java.lang.NullPointerException
    9. 2013-07-10 19:48:44 [SEVERE] at dev.bukkit.Nols1000.MineWire.VirtuellTerminal.hasPermission(VirtuellTerminal.java:101)
    10. 2013-07-10 19:48:44 [SEVERE] at org.bukkit.command.Command.testPermissionSilent(Command.java:166)
    11. 2013-07-10 19:48:44 [SEVERE] at org.bukkit.command.Command.testPermission(Command.java:137)
    12. 2013-07-10 19:48:44 [SEVERE] at org.bukkit.command.defaults.HelpCommand.execute(HelpCommand.java:36)
    13. 2013-07-10 19:48:44 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    14. 2013-07-10 19:48:44 [SEVERE] ... 4 more
    15.  


    Sorry for my bad English.
    Feel free to speak German.


    Line 83 in the class

    Code:java
    1.  
    2. public boolean hasPermission(Permission arg0) {
    3.  
    4. return player.
    5. hasPermission(arg0);
    6. }


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  2. Offline

    Nols1000

    Using now wepif permissions api.
     
Thread Status:
Not open for further replies.

Share This Page