Gelöst ServerPlugin Fehler ohne Fehlermeldung [gelöst]

Dieses Thema im Forum "Programmierung" wurde erstellt von Payno4, 18. Februar 2016.

?

Was ist dieser Fehler ?

  1. Mysteriös

    3 Stimme(n)
    60,0%
  2. Normal

    0 Stimme(n)
    0,0%
  3. Dumm

    3 Stimme(n)
    60,0%
  4. Komisch

    1 Stimme(n)
    20,0%
  5. Wo ist da ein Fehler ?

    0 Stimme(n)
    0,0%
Eine Auswahl mehrerer Antworten ist erlaubt.
  1. Payno4
    Offline

    Payno4

    Registriert seit:
    12. Februar 2015
    Beiträge:
    117


    Hei Community,


    ich habe gerade den mysteriösesten Fehler , den ich je hatte. Durch einen Vektor sollte der spieler , wenn er eine bestimmte Koordinate erreicht, nach oben geschleudert werden.

    MoveEvent , indem der Spieler nach oben geschleudert werden sollte :
    Code (Text):
    1.  
    2. package Events;
    3.  
    4.  
    5.  
    6. import java.util.HashMap;
    7.  
    8.  
    9.  
    10. import org.bukkit.Bukkit;
    11.  
    12. import org.bukkit.ChatColor;
    13.  
    14. import org.bukkit.Location;
    15.  
    16. import org.bukkit.World;
    17.  
    18. import org.bukkit.configuration.file.FileConfiguration;
    19.  
    20. import org.bukkit.entity.Player;
    21.  
    22. import org.bukkit.event.EventHandler;
    23.  
    24. import org.bukkit.event.Listener;
    25.  
    26. import org.bukkit.event.player.PlayerMoveEvent;
    27.  
    28. import org.bukkit.util.Vector;
    29.  
    30.  
    31.  
    32. public classMove EventimplementsListener{
    33.  
    34.  
    35.  
    36.     /*
    37.  
    38.     * The first HashMap is for falldamage.
    39.  
    40.     * The second one is for the admin message.
    41.  
    42.     */
    43.  
    44.     public static HashMap<Player,Boolean> HMPB =newHashMap<Player,Boolean>();
    45.  
    46.     public static HashMap<Player,Boolean> hmpb1 =newHashMap<Player,Boolean>();
    47.  
    48.  
    49.  
    50.     @EventHandler
    51.  
    52.     public void onMoveSave(PlayerMoveEvente){
    53.  
    54.  
    55.  
    56.         FileConfiguration PosFile = Files.Pos.getPos();
    57.  
    58.  
    59.  
    60.         Player p =e.getPlayer();
    61.  
    62.         if(PosFile.getConfigurationSection("jumpUp")!=null){
    63.  
    64.             for(String strg : PosFile.getConfigurationSection("jumpUp").getKeys(false)){
    65.  
    66.      
    67.  
    68.                 World world = Bukkit.getWorld(PosFile.getString("jumpUp." + strg + ".World"));
    69.  
    70.                 Location loc = new Location(world, PosFile.getInt("jumpUp." + strg + ".X"), PosFile.getInt("jumpUp." + strg + ".Y"), PosFile.getInt("jumpUp." + strg + ".Z"));
    71.  
    72.      
    73.  
    74.                 if(p.getLocation().getBlock().getLocation().distance(loc.getBlock().getLocation())<=0.5){
    75.  
    76.                     if(PosFile.getBoolean("jumpUp."+ strg +".Vector.Direction.Boolean")==Boolean.FALSE){
    77.  
    78.              
    79.  
    80.                         Vector vec = new Vector(PosFile.getInt("jumpUp." + strg + ".Vector.X"), PosFile.getInt("jumpUp." + strg + ".Vector.Y"), PosFile.getInt("jumpUp." + strg + ".Vector.Z"));
    81.  
    82.                         p.setVelocity(vec);
    83.  
    84.                         HMPB.put(p, true);
    85.  
    86.                         sendAdminMessage(p, strg);
    87.  
    88.                     }
    89.  
    90.                 }
    91.  
    92.                 else{
    93.  
    94.                     p.setVelocity(p.getLocation().getDirection().multiply(PosFile.getInt("jumpUp."+ strg +".Vector.Direction.Multiply")));
    95.  
    96.                     HMPB.put(p, true);
    97.  
    98.          
    99.  
    100.                     sendAdminMessage(p, strg);
    101.  
    102.                 }
    103.  
    104.             }
    105.  
    106.         }
    107.  
    108.     }
    109.  
    110.  
    111.  
    112.     private void sendAdminMessage(Player p,String strg){
    113.  
    114.  
    115.  
    116.         if(p.hasPermission("Nr.1.Admin")){
    117.  
    118.             if(hmpb1.containsKey(p)){
    119.  
    120.                 if(Files.Config.getCon().getBoolean("jumpUp.MessagesForAdmin")==Boolean.TRUE){
    121.  
    122.                     if(hmpb1.get(p).booleanValue()==true){
    123.  
    124.              
    125.  
    126.                         p.sendMessage(ChatColor.AQUA + "Your now jumping over " + ChatColor.RED + strg);
    127.  
    128.                         hmpb1.put(p, false);
    129.  
    130.                     }
    131.  
    132.                 }
    133.  
    134.             }
    135.  
    136.             else{
    137.  
    138.                 hmpb1.put(p, false);
    139.  
    140.                 p.sendMessage(ChatColor.AQUA + "Your now jumping over " + ChatColor.RED + strg);
    141.  
    142.             }      
    143.  
    144.         }
    145.  
    146.     }
    147.  
    148. }
    149.  
    150.  
    151.  

    Der Command , der die position absichert.
    Code (Text):
    1.  
    2. package Commands;
    3.  
    4.  
    5.  
    6. import org.bukkit.ChatColor;
    7.  
    8. import org.bukkit.command.Command;
    9.  
    10. import org.bukkit.command.CommandExecutor;
    11.  
    12. import org.bukkit.command.CommandSender;
    13.  
    14. import org.bukkit.configuration.file.FileConfiguration;
    15.  
    16. import org.bukkit.entity.Player;
    17.  
    18.  
    19.  
    20. public class save implements CommandExecutor{
    21.  
    22.  
    23.  
    24.     @Override
    25.  
    26.     public boolean onCommand(CommandSendersender,Commandcmd,Stringlabel,String[]args){
    27.  
    28.  
    29.  
    30.         FileConfiguration PosFile = Files.Pos.getPos();
    31.  
    32.  
    33.  
    34.         if(sender instancef Player){
    35.  
    36.             Player p =(Player)sender;
    37.  
    38.             if(args.length == 2){
    39.  
    40.                 if(args[0].equalsIgnoreCase("jumpUp")){
    41.  
    42.                     if(p.hasPermission("Nr.1.Admin")){
    43.  
    44.              
    45.  
    46.                         //Location
    47.  
    48.                         PosFile.set("jumpUp." + args[1] + ".X", p.getLocation().getBlockX());
    49.  
    50.                         PosFile.set("jumpUp." + args[1] + ".Y", p.getLocation().getBlockY());
    51.  
    52.                         PosFile.set("jumpUp." + args[1] + ".Z", p.getLocation().getBlockZ());
    53.  
    54.                         PosFile.set("jumpUp." + args[1] + ".World", p.getLocation().getWorld().getName());
    55.  
    56.              
    57.  
    58.                         //First vector if boolean false
    59.  
    60.                         PosFile.set("jumpUp."+args[1]+".Vector.X",(int)0);
    61.  
    62.                         PosFile.set("jumpUp."+args[1]+".Vector.Y",(int)0);
    63.  
    64.                         PosFile.set("jumpUp."+args[1]+".Vector.Z",(int)0);
    65.  
    66.              
    67.  
    68.                         //Second vector if boolean true
    69.  
    70.                         PosFile.set("jumpUp."+args[1]+".Vector.Direction.Boolean",(Boolean)true);
    71.  
    72.                         PosFile.set("jumpUp."+args[1]+".Vector.Direction.Multiply",(int)1.5);
    73.  
    74.                         Files.Pos.savePos();
    75.  
    76.              
    77.  
    78.                         p.sendMessage(ChatColor.AQUA + "The location for jumpUp, called " + ChatColor.BLUE + args[1] + ChatColor.AQUA + ", has been seted.");
    79.  
    80.                     }
    81.  
    82.                 }
    83.  
    84.             }
    85.  
    86.             else{
    87.  
    88.                 p.sendMessage(ChatColor.BLUE + "Arguments !");
    89.  
    90.             }
    91.  
    92.  
    93.  
    94.         }
    95.  
    96.         return false;
    97.  
    98.     }
    99.  
    100.  
    101.  
    102. }
    103.  
    104.  

    Sobald ich eine Location in den File eintrage , beginnt der Spieler die ganze Zeit mit dem PosFile.getInt("jumpUp."+ strg +".Vector.Direction.Multiply") herum zu fliegen.
    Ich habe bei der Fehlersuche begonnen , indem ich bei jedem abschnitt eine "soyso" hingeschrieben hab , doch ist die "soyso" nie durchgelaufen. Danach habe ich bei dem Abschnitt "jumpUp."+ strg +".Vector.Direction.Multiply" die Zahl rausgenommen und reloaded, eigentlich müsste doch dann die Fehlermeldung NullPointerExeption kommen , doch dann nimmt er die 0 als multiply her.
    Es hat zuerst eigentlich alles funktioniert , bis ich den private void Teil geschrieben hab, doch nachdem ich den Teil wieder ausgeklammert hab , gab es immer noch den gleichen Fehler.

    Vielleicht habe ich irgendwas übersehen oder habe einfach nur einen dummen Fehler gemacht :confused: aber trotzdem hoffe ich ihr könnt mir weiterhelfen und wenn ihr noch mehr Informationen braucht , dann schreibt es in die Kommentare. :)

    Mit freundlichen Grüßen
    payno4
     
    #1
  2. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    hinter dir
    Minecraft:
    adagi
    Command registriert?
     
    #2
  3. Payno4
    Offline

    Payno4

    Registriert seit:
    12. Februar 2015
    Beiträge:
    117
    Ja der Command ist registriert, aber das hat ja nix mit dem Problem selber zu tun oder etwa doch ? :)
     
    #3
  4. Cyrox
    Online

    Cyrox

    p.setVelocity verlangt einen Beschleunigungsvektor, keine Location
     
    #4
  5. Payno4
    Offline

    Payno4

    Registriert seit:
    12. Februar 2015
    Beiträge:
    117
    Sobald man .getDirection hat , wird es zu einem Vector.
     
    #5