1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Erledigt Fehler ohne Fehlermeldung [gelöst]

Dieses Thema im Forum "Spigot" 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
    Geschlecht:
    männlich


    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
     
    Zuletzt bearbeitet: 18. Februar 2016
  2. Werbung
    Online

    Werbung

  3. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Geschlecht:
    männlich
    Minecraft:
    adagiThe_n0_0b
    Command registriert?
     
  4. Payno4
    Offline

    Payno4

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

    Cyrox

    p.setVelocity verlangt einen Beschleunigungsvektor, keine Location
     
  6. Payno4
    Offline

    Payno4

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