@Override
  public void start() {
    player.lock();
    final long time = FadingScreen.fade(player);
    CoresManager.slowExecutor.execute(
        new Runnable() {
          @Override
          public void run() {
            try {
              regionBase = RegionBuilder.findEmptyChunkBound(8, 8);
              base = new WorldTile(regionBase[0] << 3, regionBase[1] << 3, 1);
              RegionBuilder.copyAllPlanesMap(176, 792, regionBase[0], regionBase[1], 8, 8);
              FadingScreen.unfade(
                  player,
                  time,
                  new Runnable() {
                    @Override
                    public void run() {
                      npc = new QueenBlackDragon(player, base.transform(31, 37, 0), base);
                      player.setNextWorldTile(base.transform(33, 28, 0));
                      player.setLargeSceneView(true);
                      player.setForceMultiArea(true);
                      player.unlock();
                      player.getPackets().sendGlobalConfig(184, 150);
                      player.getPackets().sendGlobalConfig(1924, 0);
                      player.getPackets().sendGlobalConfig(1925, 0);
                      player
                          .getInterfaceManager()
                          .sendTab(
                              player.getInterfaceManager().hasRezizableScreen() ? 1 : 0,
                              1285); // 1133);
                      player.getMusicsManager().playMusic(1119); // AWOKEN
                    }
                  });

            } catch (Throwable e) {
              Logger.handle(e);
            }
          }
        });
  }
 @Override
 public boolean processObjectClick1(WorldObject object) {
   if (npc == null) {
     return true;
   }
   if (object.getId() == 70790) {
     if (npc.getPhase() < 5) {
       return true;
     }
     player.lock();
     FadingScreen.fade(
         player,
         new Runnable() {
           @Override
           public void run() {
             player
                 .getPackets()
                 .sendGameMessage(
                     "You descend the stairs that appeared when you defeated the Queen Black Dragon.");
             player.getPackets().sendGlobalConfig(184, -1);
             npc.finish();
             RegionBuilder.copyAllPlanesMap(160, 760, regionBase[0], regionBase[1], 8, 8);
             player.setForceNextMapLoadRefresh(true);
             player.loadMapRegions();
             player
                 .getPackets()
                 .sendDestroyObject(new WorldObject(70849, 10, 0, base.transform(24, 21, -1)));
             player
                 .getPackets()
                 .sendDestroyObject(new WorldObject(70837, 10, 0, base.transform(22, 24, -1)));
             player
                 .getPackets()
                 .sendDestroyObject(new WorldObject(70840, 10, 0, base.transform(34, 24, -1)));
             World.removeObject(new WorldObject(70775, 10, 0, base.transform(31, 29, -1)), true);
             player
                 .getPackets()
                 .sendDestroyObject(new WorldObject(70822, 10, 0, base.transform(21, 35, -1)));
             player
                 .getPackets()
                 .sendDestroyObject(new WorldObject(70818, 10, 0, base.transform(39, 35, -1)));
             player.setNextWorldTile(base.transform(31, 36, -1));
             boolean resizable = player.getInterfaceManager().hasRezizableScreen();
             player.getPackets().closeInterface(resizable ? 746 : 548, resizable ? 1 : 0);
             player.unlock();
           }
         });
     return false;
   }
   if (object.getId() == 70813) {
     Magic.sendObjectTeleportSpell(player, true, Settings.RESPAWN_PLAYER_LOCATION);
     return false;
   }
   if (object.getId() == 70814) {
     player.getPackets().sendGameMessage("The gate is locked.");
     return false;
   }
   if (object.getId() == 70815) {
     player.getDialogueManager().startDialogue("RewardChest", npc);
     return false;
   }
   if (object.getId() == 70817) {
     npc.openRewardChest(false);
     return false;
   }
   if (object.getId() == npc.getActiveArtifact().getId()) {
     player.getMusicsManager().playMusic(1118); // QUEEN BLACK DRAGON
     npc.setSpawningWorms(false);
     npc.setNextAttack(20);
     npc.setActiveArtifact(new WorldObject(object.getId() + 1, 10, 0, object));
     npc.setHitpoints(npc.getMaxHitpoints());
     npc.setCantInteract(false);
     npc.setPhase(npc.getPhase() + 1);
     World.spawnObject(npc.getActiveArtifact(), false);
     switch (object.getId()) {
       case 70777:
         player.getPackets().sendGlobalConfig(1924, 2);
         player
             .getPackets()
             .sendSpawnedObject(new WorldObject(70843, 10, 0, base.transform(24, 21, -1)));
         break;
       case 70780:
         player.getPackets().sendGlobalConfig(1924, 4);
         player
             .getPackets()
             .sendSpawnedObject(new WorldObject(70845, 10, 0, base.transform(24, 21, -1)));
         break;
       case 70783:
         player.getPackets().sendGlobalConfig(1924, 6);
         player
             .getPackets()
             .sendSpawnedObject(new WorldObject(70847, 10, 0, base.transform(24, 21, -1)));
         break;
       case 70786:
         player.getPackets().sendGlobalConfig(1924, 8);
         player
             .getPackets()
             .sendSpawnedObject(new WorldObject(70849, 10, 0, base.transform(24, 21, -1)));
         break;
     }
     return false;
   }
   return true;
 }