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!

ServerPlugin Error beim Laden eines Plugins

Dieses Thema im Forum "Programmierung" wurde erstellt von adagi, 31. Oktober 2015.

  1. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    localhost
    Minecraft:
    adagiThe_n0_0b
    Hallo,
    ich bin gerade dabei ein Jump'n'Run Plugin zu schreiben (mit Spezialeffekten und so :D ). Seit kurzem kommt ein Error,wenn ich das Plugin auf dem Spigot Server laden will. Ich würde mich über Hilfe freuen.

    plugin.yml
    Code (Text):
    1. name: JNR
    2. author: adagi
    3. version: 0.1.0
    4. description: Jump'n'Run Plugin
    5.  
    6. main: de.adagi.jnr.Main
    7.  
    8. commands:
    9.   jumpspawn:
    10.     usage: /<command>
    11.     description: Setzt die Postition des Jump'n'Run Starts.
    12.     permission: jnr.setspawn
    13.   jumpstart:
    14.     usage: /<command>
    15.     description: Startet das JumpIt Minigame.
    16.     permission: jnr.start
    17.  
    18.      
    main
    Code (Javascript):
    1. package de.adagi.jnr;
    2.  
    3.  
    4. import java.util.Random;
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.Location;
    8. import org.bukkit.Material;
    9. import org.bukkit.World;
    10. import org.bukkit.command.Command;
    11. import org.bukkit.command.CommandSender;
    12. import org.bukkit.configuration.file.FileConfiguration;
    13. import org.bukkit.entity.Player;
    14. import org.bukkit.event.EventHandler;
    15. import org.bukkit.event.Listener;
    16. import org.bukkit.event.entity.EntityDamageEvent;
    17. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    18. import org.bukkit.event.player.PlayerMoveEvent;
    19. import org.bukkit.plugin.PluginManager;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21. import org.bukkit.potion.PotionEffect;
    22. import org.bukkit.potion.PotionEffectType;
    23.  
    24. public class Main extends JavaPlugin implements Listener {
    25.  
    26.  
    27.  
    28. String todesMsg []= { " dachte er sei Batman!", " war zu jung um zu sterben!", " hat sich überschätzt!", " ist geflogen!", " ist an Altersschwäche gestorben!", " ist gestorben! R.I.P !", " hat vergessen seine Hacks einzuschalten!", " ist auf seinem Ohrenschmalz ausgerutscht!", " wurde vom Antihack-Plugin getötet!"};
    29.  
    30.  
    31.    
    32.     int countdown;
    33.     int ende = 10;
    34.    
    35.  
    36.    
    37.     // String fehler = "\u00A7c\u00A7lFEHLER: \u00A7r";
    38.     // String onlyPlayers = "\u00A74Nur Spieler dürfen diesen Befehl ausführen!";
    39.     // String noPerms = "\u00A74Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!";
    40.     // String pluginJump = "\u00A77[\u00A79JumpIt\u00A77] \u00A7r";
    41.     // String enable = "\u00A7aPlugin wurde erkannt und geladen!";
    42.     // String disable = "\u00A74Plugin wurde deaktiviert!";
    43.     // String oneArg = "\u00A74Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!";
    44.    
    45.     Location spawn;
    46.  
    47.     private void loadConfig()
    48.     {
    49.         // String fehler = "Config.fehler";
    50.         getConfig().addDefault("fehler", "§c§lFEHLER: §r");
    51.         // String onlyPlayers = "Config.onlyPlayers";
    52.         getConfig().addDefault("onlyPlayers", "§4Nur Spieler dürfen diesen Befehl ausführen!");
    53.         // String noPerms = "Config.noPerms";
    54.         getConfig().addDefault("noPerms", "§4Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!");
    55.         // String pluginJump = "Config.pluginJump";
    56.         getConfig().addDefault("pluginJump", "§7[§9JumpIt§7] §r");
    57.         // String enable = "Config.enable";
    58.         getConfig().addDefault("enable", "§aPlugin wurde erkannt und geladen!");
    59.         // String disable = "Config.disable";
    60.         getConfig().addDefault("disable", "§4Plugin wurde deaktiviert!");
    61.         // String oneArg = "Config.oneArg";
    62.         getConfig().addDefault("oneArg", "§4Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!");
    63.         FileConfiguration config = this.getConfig();
    64.         config.options().copyDefaults(true);
    65.         saveConfig();
    66.        
    67.         }
    68.    
    69.  
    70.     String fehler = getConfig().getString("fehler");
    71.     String onlyPlayers = getConfig().getString("onlyPlayers");
    72.     String noPerms = getConfig().getString("noPerms");
    73.     String pluginJump = getConfig().getString("pluginJump");
    74.     String enable = getConfig().getString("enable");
    75.     String disable = getConfig().getString("disable");
    76.     String oneArg = getConfig().getString("oneArg");
    77.    
    78.    
    79. public void onEnable() {
    80. System.out.println(pluginJump + enable);
    81. registerEvents();
    82. PluginManager pm = this.getServer().getPluginManager();
    83. pm.registerEvents(this, this);
    84. loadConfig();
    85.  
    86. }
    87. /*String fehler = "Config.fehler";
    88. this.getConfig().addDefault(fehler, "§c§lFEHLER: §r");
    89. String onlyPlayers = "Config.onlyPlayers";
    90. this.getConfig().addDefault("onlyPlayers", "§4Nur Spieler dürfen diesen Befehl ausführen!");
    91. String noPerms = "Config.noPerms";
    92. this.getConfig().addDefault("noPerms", "§4Du hast nicht die benötigten Berechtigungen um diesen Befehl ausführen!");
    93. String pluginJump = "Config.pluginJump";
    94. this.getConfig().addDefault("pluginJump", "§7[§9JumpIt§7] §r");
    95. String enable = "Config.enable";
    96. this.getConfig().addDefault("enable", "§aPlugin wurde erkannt und geladen!");
    97. String disable = "Config.disable";
    98. this.getConfig().addDefault("disable", "§4Plugin wurde deaktiviert!");
    99. String oneArg = "Config.oneArg";
    100. this.getConfig().addDefault("oneArg", "§4Du musst \u00A7lGENAU \u00A7r\u00A74ein Argument angeben!");
    101. FileConfiguration config = this.getConfig();
    102. config.options().copyDefaults(true);
    103. saveConfig();
    104.  
    105.  
    106.  
    107. }
    108. */
    109. Player[] spieler = (Player[]) Bukkit.getServer().getOnlinePlayers().toArray();
    110.  
    111. public void onDisable() {
    112. System.out.println(pluginJump + disable);
    113. }
    114.  
    115. private void registerEvents() {
    116. getServer().getPluginManager().registerEvents(this, this);
    117. }
    118.  
    119.  
    120. @Override
    121. public boolean onCommand(CommandSender sender,Command cmd, String string, String[] args) {
    122.     Player p = (Player)sender;
    123.     if(cmd.getName().equalsIgnoreCase("jumpspawn")){
    124.         if(sender instanceof Player){
    125.             if (p.hasPermission("jnr.setspawn")){
    126.                
    127.                 p.sendMessage("\u00A7aDu hast den Spawn von JumpIt erfolgreich gesetzt!");
    128.                 spawn = p.getLocation();
    129.                 return true;
    130.                
    131.             }else{
    132.                 p.sendMessage(pluginJump + fehler + noPerms);
    133.                 return false;
    134.             }
    135.         }else{
    136.             System.out.println(pluginJump + fehler + onlyPlayers);
    137.             return false;
    138.         }
    139.     }
    140.     if(cmd.getName().equalsIgnoreCase("jumpstart")){
    141.         if(sender instanceof Player){
    142.             if (p.hasPermission("jnr.start")){
    143.                 ende = 10;
    144.                 p.sendMessage(pluginJump + "§eDas Spiel startet in " + ChatColor.RED + " 10 §eSekunden");
    145.                
    146.                
    147.                
    148.                 return true;
    149.             }else{
    150.                 p.sendMessage(pluginJump + fehler + noPerms);
    151.                 return false;
    152.             }
    153.         }else{
    154.             System.out.println(pluginJump + fehler + onlyPlayers);
    155.             return false;
    156.         }
    157.     }
    158.    
    159.        
    160.     return true;
    161.  
    162. }
    163. /* public boolean onCommand1(CommandSender sender, Command cmd, String string, String[] args) {
    164.     Player p = (Player)sender;
    165.     if(cmd.getName().equalsIgnoreCase("jumpstart")){
    166.         if(sender instanceof Player){
    167.             if (p.hasPermission("jnr.start")){
    168.                
    169.                 p.sendMessage(pluginJump + "\u00A7eDas Spiel startet in " + ChatColor.RED + " 10 \u00A7eSekunden");
    170.                
    171.                
    172.                
    173.                 return true;
    174.             }else{
    175.                 p.sendMessage(pluginJump + fehler + noPerms);
    176.                 return false;
    177.             }
    178.         }else{
    179.             System.out.println(pluginJump + fehler + onlyPlayers);
    180.             return false;
    181.         }
    182.     }
    183.    
    184.        
    185.     return true;
    186. */
    187.  
    188.  
    189. @EventHandler
    190. public void onFall(EntityDamageEvent e) {
    191. if(!(e.getEntity() instanceof Player)) {
    192.     return;  
    193. }else{
    194.     if(e.getCause().equals(DamageCause.FALL)){
    195.         e.setCancelled(true);
    196.     }
    197. }
    198.  
    199.  
    200. }
    201.  
    202.  
    203. @EventHandler
    204. public void onMove(PlayerMoveEvent e) {
    205.     Player p = e.getPlayer();
    206.     String randTodesMsg = (todesMsg[new Random().nextInt(todesMsg.length)]);
    207.     Location loc = p.getLocation();
    208.     double y = loc.getY();
    209.     int todesY = 2;
    210.     if (y <= todesY) {
    211.         p.teleport(spawn);
    212.         String weltname = p.getWorld().getName();
    213.         if (!(weltname == "jumpit1" || weltname == "jumpit2" || weltname == "jumpit3" || weltname == "jumpit4" || weltname == "jumpit5" || weltname == "jumpit6" || weltname == "jumpit7" || weltname == "jumpit8")) {
    214.             return;
    215.         }else{
    216.             Bukkit.broadcastMessage(pluginJump + ChatColor.RED + "" + ChatColor.BOLD + p.getName() + ChatColor.RESET + ChatColor.GOLD + randTodesMsg);
    217.         }
    218.        
    219.     }
    220. }
    221.  
    222.  
    223.    
    224.  
    225.  
    226.  
    227. @SuppressWarnings("deprecation")
    228. @EventHandler
    229. public void onEffectJump(PlayerMoveEvent e) {
    230.    
    231.     Player p = e.getPlayer();
    232.     Location loc = new Location(p.getWorld(), e.getTo().getX(), e.getTo().getY() - 1.0D, e.getTo().getZ());
    233.    
    234.     if(loc.getBlock().getType() == Material.DIAMOND_BLOCK) {
    235.         p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 99999999, 2));
    236.     }
    237.    
    238.     if(loc.getBlock().getType() == Material.REDSTONE_BLOCK) {
    239.         p.removePotionEffect(PotionEffectType.SPEED);
    240.         p.removePotionEffect(PotionEffectType.JUMP);
    241.         p.removePotionEffect(PotionEffectType.BLINDNESS);
    242.         p.removePotionEffect(PotionEffectType.CONFUSION);
    243.         p.removePotionEffect(PotionEffectType.SLOW);
    244.         p.removePotionEffect(PotionEffectType.POISON);
    245.     }
    246.    
    247.     if(loc.getBlock().getType() == Material.EMERALD_BLOCK) {
    248.         p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 99999999, 2));
    249.     }
    250.    
    251.     if(loc.getBlock().getType() == Material.COAL_BLOCK) {
    252.         p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 99999999, 0));
    253.         p.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 99999999, 0));
    254.     }
    255.    
    256.     if(loc.getBlock().getType() == Material.GOLD_BLOCK) {
    257.         p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 99999999, 0));
    258.     }
    259.    
    260.     /*Player[] ap = Bukkit.getOnlinePlayers();
    261.     for(Player target : ap) {
    262.        
    263.     }*/
    264.    
    265.  
    266.    
    267.    
    268.     if(loc.getBlock().getType() == Material.LAPIS_BLOCK) {
    269.         p.removePotionEffect(PotionEffectType.SPEED);
    270.         p.removePotionEffect(PotionEffectType.JUMP);
    271.         p.removePotionEffect(PotionEffectType.BLINDNESS);
    272.         p.removePotionEffect(PotionEffectType.CONFUSION);
    273.         p.removePotionEffect(PotionEffectType.SLOW);
    274.         p.removePotionEffect(PotionEffectType.POISON);
    275.         int x = loc.getBlockX();
    276.         int y = loc.getBlockY();
    277.         int z = loc.getBlockZ();
    278.         World world = loc.getWorld();
    279.         world.getBlockAt(x, y, z).setType(Material.SEA_LANTERN);
    280.         // JumpBlock p.setVelocity(p.getLocation().getDirection().multiply(2.0D).setY(1.7D));
    281.         Bukkit.broadcastMessage(pluginJump + ChatColor.AQUA + p.getName() + ChatColor.GOLD + " hat das Rennen beendet!");
    282.         Bukkit.broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 60 Sekunden!");
    283.         p.sendTitle("§3GLÜCKWUNSCH !", "§6Du hast JumpIt als erster beendet!");
    284.  
    285.  
    286.    
    287.        
    288.        
    289.         this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    290.            
    291.             public void run() {
    292.             getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 30 Sekunden");
    293.             }
    294.             }, 20*30L);
    295.        
    296.         this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    297.  
    298.             public void run() {
    299.             getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 20 Sekunden");
    300.             }
    301.             }, 20*40L);
    302.        
    303.         this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    304.  
    305.             public void run() {
    306.             getServer().broadcastMessage(pluginJump + ChatColor.LIGHT_PURPLE + "Das Rennen endet in 10 Sekunden");
    307.             }
    308.             }, 20*50L);
    309.        
    310.             ende = 10;
    311.             ende = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    312.         @Override
    313.         public void run() {
    314.             if (ende != 0) {
    315.                 ende--;
    316.                 for(Player target : spieler) {
    317.                     target.setExp(ende);
    318.                 }
    319.             }else{
    320.                 for(Player target : spieler) {
    321.                     target.sendMessage("§aDas Spiel startet...");
    322.                 }
    323.             }
    324.         }
    325.        
    326.            
    327.    
    328.  
    329. }, 0L, 20L);
    330.     }
    331. }
    332. }
    333.  
    Ghosts ( damit man andere Spieler fast nicht sieht)
    Code (Javascript):
    1. package de.adagi.jnr;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandExecutor;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.potion.PotionEffect;
    9. import org.bukkit.potion.PotionEffectType;
    10. import org.bukkit.scoreboard.Scoreboard;
    11. import org.bukkit.scoreboard.Team;
    12.  
    13. public class Ghosts implements CommandExecutor{
    14.  
    15.    
    16.    
    17.     Scoreboard board;
    18.     Team ghost;
    19.    
    20.     @SuppressWarnings("deprecation")
    21.     @Override
    22.     public boolean onCommand(CommandSender sender, Command cmd, String string, String[] args) {
    23.         Player  p = (Player) sender;
    24.        
    25.         if(args.length == 0) {
    26.            
    27.             board = Bukkit.getScoreboardManager().getNewScoreboard();
    28.             ghost = board.getTeam("team");
    29.             if(ghost == null) {
    30.                 ghost = board.registerNewTeam("team");
    31.             }
    32.            
    33.             ghost.setCanSeeFriendlyInvisibles(true);
    34.            
    35.             for(Player players : Bukkit.getOnlinePlayers()) {
    36.                 ghost.addPlayer(players);
    37.                 players.setScoreboard(board);
    38.             }
    39.        
    40.         p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1));
    41.        
    42.         }
    43.         return false;
    44.     }
    45. }
    Und der relevante Teil des logs:
    Code (Text):
    1. [14:09:24] [Server thread/ERROR]: Could not load 'plugins/jnr.jar' in folder 'plugins'
    2. org.bukkit.plugin.InvalidPluginException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    3.     at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    4.     at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    5.     at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    6.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    7.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:739) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    8.     at org.bukkit.Bukkit.reload(Bukkit.java:535) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    9.     at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    10.     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    11.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    12.     at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    13.     at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    14.     at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    15.     at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    16.     at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    17.     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
    18. Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    19.     at de.adagi.jnr.Main.<init>(Main.java:109) ~[?:?]
    20.     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_60]
    21.     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_60]
    22.     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_60]
    23.     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_60]
    24.     at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_60]
    25.     at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    26.     at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot_server.jar:git-Spigot-5f38d38-18fbb24]
    27.     ... 14 more
    Ich bitte um Hilfe und freue mich über Antworten..
    ~ adagi
     
    #1
  2. Werbung
    Online

    Werbung

  3. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    291
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    1. Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.bukkit.entity.Player;
    2. at de.adagi.jnr.Main.<init>(Main.java:109) ~[?:?]
    ...
     
    #2
  4. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    localhost
    Minecraft:
    adagiThe_n0_0b
    Danke.. :) Aber ich verstehe nicht, was ich denn genau ändern muss.
    Kann mir da jemand helfen? :D
    ~ adagi
     
    #3
  5. Basti07711
    Offline

    Basti07711 Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    714
    Ort:
    Hinter dir
    Minecraft:
    Basti07711
    Also der Fehler sagt aus, das in Zeile 109 ein Fehler bei deinem Cast ist.

    Code (Javascript):
    1. Player[] spieler = (Player[]) Bukkit.getServer().getOnlinePlayers().toArray();
    Ich würde es mal so probieren:

    Code (Javascript):
    1. List<Player> spieler = Bukkit.getServer().getOnlinePlayers().toArray();
    Kann mich aber auch täuschen.
     
    #4
  6. Victini151
    Offline

    Victini151

    #5
  7. letsz0ck3r
    Offline

    letsz0ck3r

    Registriert seit:
    14. Februar 2014
    Beiträge:
    4
    Minecraft:
    Heddo
    Du kannst das auch so nutzen:

    Code (Text):
    1. Player[] spieler = Bukkit.getOnlinePlayers().toArray(new Player[Bukkit.getOnlinePlayers().size()]);
     
    #6
  8. adagi
    Offline

    adagi

    Registriert seit:
    3. Oktober 2015
    Beiträge:
    65
    Ort:
    localhost
    Minecraft:
    adagiThe_n0_0b
    #7