anchor.diff:    final PluginHandler handler;
   
     PluginManager get pm => handler.pm;
  -  
  +
     PluginCommunicator(this.bot, this.handler) {
       _handleEventListeners();
     }
  -  
  +
     void initialStart() {
       var host = bot.config["http"]["host"] != null ? bot.config["http"]["host"] : "0.0.0.0";
       var port = bot.config["http"]["port"];
  -    
  +
       HttpServer.bind(host, port).then((server) {
         server.listen((request) {
           var segments = request.uri.pathSegments;
  -        if (segments.isNotEmpty && _httpPorts.containsKey(segments[0])) {
  -          var segs = []..addAll(segments)..removeAt(0);
  +        if (segments.length >= 2 && segments[0] == "plugin" && _httpPorts.containsKey(segments[1])) {
  +          var name = segments[1];
  +          var segs = []
  +              ..addAll(segments)
  +              ..removeAt(0)
  +              ..removeAt(0);
             var path = segs.join("/");
             if (path.trim().isEmpty) {
               path = "/";
             }
  -          HttpHelper.forward(request, path, InternetAddress.ANY_IP_V4.address, _httpPorts[segments[0]]);
  +          HttpHelper.forward(request, path, InternetAddress.ANY_IP_V4.address, _httpPorts[name]);
  +        }
  +
  +        var response = request.response;
  +
  +        if (request.uri.path.trim() == "/plugins.json") {
  +          if (request.method != "GET") {
  +            response.statusCode = HttpStatus.METHOD_NOT_ALLOWED;
  +            response.writeln("ERROR: Only GET is allowed here.");
  +            response.close();
  +          } else {
  +            response.statusCode = 200;
  +            response.writeln(encodeJSON(pm.plugins));
  +            response.close();
  +          }
           } else {
  -          request.response.statusCode = 404;
  -          request.response.writeln("ERROR: 404 not found.");
  -          request.response.close();
  +          response.statusCode = 404;
  +          response.writeln("ERROR: 404 not found.");
  +          response.close();
           }
         });
       });
     }
  -  
  +
  +  JsonEncoder _jsonEncoder = new JsonEncoder.withIndent("  ");
  +
  +  String encodeJSON(obj) {
  +    return _jsonEncoder.convert(obj);
  +  }
  +
     Map<String, int> _httpPorts = {};
   
     void handle() {
  
positive.code:       print("[HTTP] ERROR: No HTTP Port Configured.");
        exit(1);
      }
      
      _handleRequests();
      _handleNormals();
    }
  
negative.code:             "networks": bot.bots
            });
            break;
  
          case "config":
            request.reply({
              "config": bot.config
            });
            break;
  
          case "request":
            var plugin = m['plugin'];
            var command = m['command'];
  