From aab5daa446fd7f3dba5f5eadd93ddbcc97666eb4 Mon Sep 17 00:00:00 2001 From: Keir Nellyer Date: Thu, 7 Jul 2016 17:49:06 -0400 Subject: [PATCH] Remove old ReportServer and move site related files to ReportSite directory --- Plugins/Mineplex.ReportServer/pom.xml | 62 -------- .../src/mineplex/reportserver/FilePurger.java | 57 ------- .../reportserver/RedisCommandHandler.java | 142 ------------------ .../reportserver/RedisConnectionHandler.java | 106 ------------- .../mineplex/reportserver/ReportServer.java | 112 -------------- .../css/Minecraftia.ttf | Bin .../css/bootstrap.css | 0 .../css/bootstrap.css.map | 0 .../css/bootstrap.min.css | 0 .../css/bootstrap.min.css.map | 0 .../web => Mineplex.ReportSite}/css/tiger.css | 0 .../web => Mineplex.ReportSite}/img/bg.png | Bin .../web => Mineplex.ReportSite}/img/bg.psd | Bin .../img/logo-full.png | Bin .../web => Mineplex.ReportSite}/img/logo.png | Bin .../web => Mineplex.ReportSite}/img/shaun.gif | Bin .../js/bootstrap.js | 0 .../js/bootstrap.min.js | 0 .../web => Mineplex.ReportSite}/js/jquery.js | 0 .../web => Mineplex.ReportSite}/js/npm.js | 0 .../js/umd/alert.js | 0 .../js/umd/button.js | 0 .../js/umd/carousel.js | 0 .../js/umd/collapse.js | 0 .../js/umd/dropdown.js | 0 .../js/umd/modal.js | 0 .../js/umd/popover.js | 0 .../js/umd/scrollspy.js | 0 .../web => Mineplex.ReportSite}/js/umd/tab.js | 0 .../js/umd/tooltip.js | 0 .../js/umd/util.js | 0 .../web => Mineplex.ReportSite}/main.js | 0 .../web => Mineplex.ReportSite}/message.php | 0 .../reference.html | 0 .../web => Mineplex.ReportSite}/report.php | 0 .../reporter_reason.php | 0 .../web => Mineplex.ReportSite}/snapshot.php | 0 .../web => Mineplex.ReportSite}/user.php | 0 .../web => Mineplex.ReportSite}/view.php | 0 39 files changed, 479 deletions(-) delete mode 100644 Plugins/Mineplex.ReportServer/pom.xml delete mode 100644 Plugins/Mineplex.ReportServer/src/mineplex/reportserver/FilePurger.java delete mode 100644 Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisCommandHandler.java delete mode 100644 Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisConnectionHandler.java delete mode 100644 Plugins/Mineplex.ReportServer/src/mineplex/reportserver/ReportServer.java rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/css/Minecraftia.ttf (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/css/bootstrap.css (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/css/bootstrap.css.map (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/css/bootstrap.min.css (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/css/bootstrap.min.css.map (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/css/tiger.css (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/img/bg.png (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/img/bg.psd (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/img/logo-full.png (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/img/logo.png (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/img/shaun.gif (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/bootstrap.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/bootstrap.min.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/jquery.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/npm.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/alert.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/button.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/carousel.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/collapse.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/dropdown.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/modal.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/popover.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/scrollspy.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/tab.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/tooltip.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/js/umd/util.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/main.js (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/message.php (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/reference.html (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/report.php (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/reporter_reason.php (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/snapshot.php (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/user.php (100%) rename Plugins/{Mineplex.ReportServer/web => Mineplex.ReportSite}/view.php (100%) diff --git a/Plugins/Mineplex.ReportServer/pom.xml b/Plugins/Mineplex.ReportServer/pom.xml deleted file mode 100644 index ccf6c8606..000000000 --- a/Plugins/Mineplex.ReportServer/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - 4.0.0 - - - com.mineplex - mineplex-app - dev-SNAPSHOT - ../app.xml - - - ReportServer - mineplex-reportserver - - - - com.google.code.gson - gson - - - redis.clients - jedis - - - org.apache.commons - commons-pool2 - 2.4.2 - - - commons-cli - commons-cli - 1.3.1 - - - org.apache.commons - commons-lang3 - 3.4 - - - com.mineplex - mineplex-serverdata - ${project.version} - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - mineplex.reportserver.ReportServer - - - - - - - diff --git a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/FilePurger.java b/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/FilePurger.java deleted file mode 100644 index 7d61e3b26..000000000 --- a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/FilePurger.java +++ /dev/null @@ -1,57 +0,0 @@ -package mineplex.reportserver; - -import java.io.File; -import java.io.FileFilter; -import java.util.concurrent.TimeUnit; -import java.util.logging.Logger; - -import org.apache.commons.lang3.Validate; - -/** - * Class responsible for deleting old files (file age is determined by the "last modified" value). - */ -public class FilePurger implements Runnable -{ - private static final FileFilter FILE_FILTER = file -> file.isFile() && file.getName().endsWith(".json"); - - private final File _dataDir; - private final Logger _logger; - - public FilePurger(File dataDir, Logger logger) - { - _dataDir = dataDir; - _logger = logger; - - Validate.notNull(_dataDir, "Data directory cannot be null."); - Validate.isTrue(_dataDir.exists() && dataDir.isDirectory(), "Path non-existent or not a directory: %s", _dataDir.getAbsolutePath()); - Validate.notNull(_logger, "Logger cannot be null."); - } - - @Override - public void run() - { - int purgeCount = 0; - - for (File file : _dataDir.listFiles(FILE_FILTER)) - { - long lastModified = file.lastModified(); - long timeSince = System.currentTimeMillis() - lastModified; - int days = (int) TimeUnit.MILLISECONDS.toDays(timeSince); - - if (days >= 15) // keep files for 15 days - { - if (!file.delete()) - { - _logger.warning("Cannot delete file: " + file.getAbsolutePath()); - } - else - { - purgeCount++; - } - } - } - - _logger.info("Purged " + purgeCount + " old chat snapshots."); - } -} - diff --git a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisCommandHandler.java b/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisCommandHandler.java deleted file mode 100644 index 6afe71a6a..000000000 --- a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisCommandHandler.java +++ /dev/null @@ -1,142 +0,0 @@ -package mineplex.reportserver; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.nio.file.Files; -import java.util.Arrays; -import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import org.apache.commons.lang3.Validate; -import redis.clients.jedis.JedisPubSub; - -/** - * Listens for commands from Redis (such as "deploy" or "destroy") and executes them. - */ -public class RedisCommandHandler extends JedisPubSub -{ - private static final Gson _gson = new GsonBuilder() - .setPrettyPrinting() - .create(); - - private static final JsonParser _jsonParser = new JsonParser(); - - private final File _directory; - private final Logger _logger; - - private final ExecutorService _executorService = Executors.newCachedThreadPool(); - - public RedisCommandHandler(File directory, Logger logger) - { - _directory = directory; - _logger = logger; - - Validate.notNull(_directory, "Directory cannot be null."); - Validate.isTrue(directory.exists() && directory.isDirectory(), "Path non-existent or not a directory: %s", directory.getPath()); - Validate.notNull(_logger, "Logger cannot be null."); - } - - @Override - public void onMessage(String channel, String dataString) - { - try - { - if (channel.equals(ReportServer.CHANNEL_DEPLOY)) - { - String json = dataString; - JsonObject jsonObject = _jsonParser.parse(json).getAsJsonObject(); - String token = jsonObject.get("token").getAsString(); - - File target = new File(_directory, token + ".json"); - _logger.info("Chat snapshot received [" + token + "], writing to file."); - - if (target.exists() && !jsonObject.has("snapshots")) - { - try (BufferedReader bufferedReader = new BufferedReader(new FileReader(target))) - { - JsonObject originalJsonObject = _jsonParser.parse(bufferedReader).getAsJsonObject(); - JsonObject usernamesObject = jsonObject.get("usernames").getAsJsonObject(); - - // retrieve snapshots from original file and add to jsonObject - jsonObject.add("snapshots", originalJsonObject.get("snapshots").getAsJsonArray()); - - // add new UUID->Usernames, update existing usernames - for (Map.Entry entry : originalJsonObject.get("usernames").getAsJsonObject().entrySet()) - { - usernamesObject.addProperty(entry.getKey(), entry.getValue().getAsJsonPrimitive().getAsString()); - } - - // re-write json after updating - json = _gson.toJson(jsonObject); - } - catch (Exception e) - { - _logger.log(Level.SEVERE, "Exception whilst updating an original snapshot.", e); - } - } - - - writeFile(target, json); - } - else if (channel.equals(ReportServer.CHANNEL_DESTROY)) - { - // dataString = token - File target = new File(_directory, dataString + ".json"); - _logger.info("Destroy command received [" + dataString + "]."); - - if (target.exists() && !target.delete()) - { - _logger.warning("Failed to delete: " + target.getPath()); - } - } - } - catch (Exception e) - { - _logger.log(Level.SEVERE, "Error whilst receiving redis message.", e); - } - } - - private void writeFile(File file, String json) - { - _executorService.submit(() -> Files.write(file.toPath(), Arrays.asList(json.split("\n")))); - } - - @Override - public void onPMessage(String s, String s1, String s2) - { - - } - - @Override - public void onSubscribe(String s, int i) - { - - } - - @Override - public void onUnsubscribe(String s, int i) - { - - } - - @Override - public void onPUnsubscribe(String s, int i) - { - - } - - @Override - public void onPSubscribe(String s, int i) - { - - } -} diff --git a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisConnectionHandler.java b/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisConnectionHandler.java deleted file mode 100644 index ac4c2fa42..000000000 --- a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/RedisConnectionHandler.java +++ /dev/null @@ -1,106 +0,0 @@ -package mineplex.reportserver; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.commons.lang3.Validate; -import org.apache.commons.lang3.time.DurationFormatUtils; -import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisPool; - -/** - * Establishes and maintains a connection to Redis. - */ -public class RedisConnectionHandler implements Runnable -{ - private final String _name; - private final JedisPool _jedisPool; - private final RedisCommandHandler _handler; - private final String[] _channels; - private final Logger _logger; - - private long _lastConnectionMillis = -1; - private Throwable _lastThrowable = null; - - public RedisConnectionHandler(String name, JedisPool jedisPool, RedisCommandHandler handler, String[] channels, Logger logger) - { - _name = name; - _jedisPool = jedisPool; - _handler = handler; - _channels = channels; - _logger = logger; - - Validate.isTrue(channels.length > 0, "Must provide at least one channel."); - } - - @Override - public void run() - { - while (!Thread.interrupted()) - { - try - { - registerChannelHandlers(); - } - catch (Throwable e) - { - // Only log new errors (prevents same error being spammed) - if (_lastThrowable == null || !e.getClass().equals(_lastThrowable.getClass())) - { - if (_lastThrowable == null) // connection just failed - { - _lastConnectionMillis = System.currentTimeMillis(); - } - - _logger.log(Level.SEVERE, prefixMessage( - "Exception in Redis connection" - + (_lastConnectionMillis != -1 ? " (no connection for " + getLastConnectionDuration() + ")" : "") - + ", attempting to regain connection." - ), e); - - _lastThrowable = e; - } - - try - { - Thread.sleep(1000 * 5); - } - catch (InterruptedException ignored) {} - } - } - - _jedisPool.destroy(); - _logger.warning("Thread interrupted, end of connection."); - } - - private void registerChannelHandlers() - { - try (Jedis jedis = _jedisPool.getResource()) - { - connectionEstablished(); - jedis.subscribe(_handler, _channels); - } - } - - private void connectionEstablished() - { - // subscribe blocks so we need to do all this before - _logger.info( - _lastThrowable == null - ? prefixMessage("Connected.") - : prefixMessage(String.format("Connected after %s.", getLastConnectionDuration())) - ); - - _lastThrowable = null; - } - - private String prefixMessage(String message) - { - return String.format("[%s] %s", _name, message); - } - - private String getLastConnectionDuration() - { - return DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - _lastConnectionMillis, true, true); - } -} diff --git a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/ReportServer.java b/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/ReportServer.java deleted file mode 100644 index 2c101107a..000000000 --- a/Plugins/Mineplex.ReportServer/src/mineplex/reportserver/ReportServer.java +++ /dev/null @@ -1,112 +0,0 @@ -package mineplex.reportserver; - -import java.io.File; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.Logger; - -import mineplex.serverdata.Utility; -import mineplex.serverdata.redis.RedisConfig; -import mineplex.serverdata.servers.ConnectionData; -import mineplex.serverdata.servers.ServerManager; -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.DefaultParser; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.ParseException; -import org.apache.commons.lang3.Validate; -import redis.clients.jedis.JedisPool; - -/** - * Main class for the Report server, parses command line arguments and initializes the Report server. - */ -public class ReportServer -{ - public static final String CHANNEL_DEPLOY = "reportserver:deploy"; - public static final String CHANNEL_DESTROY = "reportserver:destroy"; - - private static final String[] CHANNELS = new String[]{CHANNEL_DEPLOY, CHANNEL_DESTROY}; - - public static void main(String[] args) - { - System.setProperty("java.util.logging.SimpleFormatter.format", "%4$s: %5$s%6$s%n"); // Nicer log output - - Logger logger = Logger.getLogger("ReportServer"); - logger.info("Starting report server."); - - Options options = new Options(); - - Option dirOption = Option.builder("dataDir") - .hasArg() - .longOpt("dataDirectory") - .desc("Sets the data directory where the JSON files will be stored.") - .type(File.class) - .build(); - - options.addOption(dirOption); - - try - { - CommandLineParser parser = new DefaultParser(); - CommandLine cmd = parser.parse(options, args); - File dataDirectory = (File) cmd.getParsedOptionValue(dirOption.getOpt()); - - if (dataDirectory == null) - { - dataDirectory = new File("data"); - } - - new ReportServer(ServerManager.getDefaultConfig(), dataDirectory, logger); - } - catch (ParseException e) - { - logger.log(Level.SEVERE, "Failed to parse arguments.", e); - } - } - - private final File _dataDirectory; - private final Logger _logger; - - private final RedisCommandHandler _handler; - private final ScheduledExecutorService _executorService = Executors.newScheduledThreadPool(1); - - public ReportServer(RedisConfig redisConfig, File dataDirectory, Logger logger) - { - _dataDirectory = dataDirectory; - _logger = logger; - - Validate.notNull(_dataDirectory, "Data directory cannot be null."); - - // thrown if path exists but is not a directory - Validate.isTrue(!_dataDirectory.exists() || _dataDirectory.isDirectory(), "Not a directory: %s", _dataDirectory.getPath()); - - // throws if directory doesn't exist and cannot be created - Validate.isTrue(_dataDirectory.exists() || _dataDirectory.mkdir(), "Unable to create directory: " + _dataDirectory.getPath()); - - _handler = new RedisCommandHandler(_dataDirectory, _logger); - initializeConnectionsConfig(redisConfig); - schedulePurgeTask(); - } - - private void initializeConnectionsConfig(RedisConfig redisConfig) - { - redisConfig.getConnections(false, null).forEach(this::initializeConnection); - } - - private void initializeConnection(ConnectionData connectionData) - { - JedisPool jedisPool = Utility.generatePool(connectionData); - String connectionName = connectionData.getName(); - Thread thread = new Thread(new RedisConnectionHandler(connectionName, jedisPool, _handler, CHANNELS, _logger), connectionName + " - Redis PubSub Thread"); - thread.setDaemon(true); - thread.start(); - } - - private void schedulePurgeTask() - { - _executorService.scheduleAtFixedRate(new FilePurger(_dataDirectory, _logger), 0, 30, TimeUnit.MINUTES); - } -} diff --git a/Plugins/Mineplex.ReportServer/web/css/Minecraftia.ttf b/Plugins/Mineplex.ReportSite/css/Minecraftia.ttf similarity index 100% rename from Plugins/Mineplex.ReportServer/web/css/Minecraftia.ttf rename to Plugins/Mineplex.ReportSite/css/Minecraftia.ttf diff --git a/Plugins/Mineplex.ReportServer/web/css/bootstrap.css b/Plugins/Mineplex.ReportSite/css/bootstrap.css similarity index 100% rename from Plugins/Mineplex.ReportServer/web/css/bootstrap.css rename to Plugins/Mineplex.ReportSite/css/bootstrap.css diff --git a/Plugins/Mineplex.ReportServer/web/css/bootstrap.css.map b/Plugins/Mineplex.ReportSite/css/bootstrap.css.map similarity index 100% rename from Plugins/Mineplex.ReportServer/web/css/bootstrap.css.map rename to Plugins/Mineplex.ReportSite/css/bootstrap.css.map diff --git a/Plugins/Mineplex.ReportServer/web/css/bootstrap.min.css b/Plugins/Mineplex.ReportSite/css/bootstrap.min.css similarity index 100% rename from Plugins/Mineplex.ReportServer/web/css/bootstrap.min.css rename to Plugins/Mineplex.ReportSite/css/bootstrap.min.css diff --git a/Plugins/Mineplex.ReportServer/web/css/bootstrap.min.css.map b/Plugins/Mineplex.ReportSite/css/bootstrap.min.css.map similarity index 100% rename from Plugins/Mineplex.ReportServer/web/css/bootstrap.min.css.map rename to Plugins/Mineplex.ReportSite/css/bootstrap.min.css.map diff --git a/Plugins/Mineplex.ReportServer/web/css/tiger.css b/Plugins/Mineplex.ReportSite/css/tiger.css similarity index 100% rename from Plugins/Mineplex.ReportServer/web/css/tiger.css rename to Plugins/Mineplex.ReportSite/css/tiger.css diff --git a/Plugins/Mineplex.ReportServer/web/img/bg.png b/Plugins/Mineplex.ReportSite/img/bg.png similarity index 100% rename from Plugins/Mineplex.ReportServer/web/img/bg.png rename to Plugins/Mineplex.ReportSite/img/bg.png diff --git a/Plugins/Mineplex.ReportServer/web/img/bg.psd b/Plugins/Mineplex.ReportSite/img/bg.psd similarity index 100% rename from Plugins/Mineplex.ReportServer/web/img/bg.psd rename to Plugins/Mineplex.ReportSite/img/bg.psd diff --git a/Plugins/Mineplex.ReportServer/web/img/logo-full.png b/Plugins/Mineplex.ReportSite/img/logo-full.png similarity index 100% rename from Plugins/Mineplex.ReportServer/web/img/logo-full.png rename to Plugins/Mineplex.ReportSite/img/logo-full.png diff --git a/Plugins/Mineplex.ReportServer/web/img/logo.png b/Plugins/Mineplex.ReportSite/img/logo.png similarity index 100% rename from Plugins/Mineplex.ReportServer/web/img/logo.png rename to Plugins/Mineplex.ReportSite/img/logo.png diff --git a/Plugins/Mineplex.ReportServer/web/img/shaun.gif b/Plugins/Mineplex.ReportSite/img/shaun.gif similarity index 100% rename from Plugins/Mineplex.ReportServer/web/img/shaun.gif rename to Plugins/Mineplex.ReportSite/img/shaun.gif diff --git a/Plugins/Mineplex.ReportServer/web/js/bootstrap.js b/Plugins/Mineplex.ReportSite/js/bootstrap.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/bootstrap.js rename to Plugins/Mineplex.ReportSite/js/bootstrap.js diff --git a/Plugins/Mineplex.ReportServer/web/js/bootstrap.min.js b/Plugins/Mineplex.ReportSite/js/bootstrap.min.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/bootstrap.min.js rename to Plugins/Mineplex.ReportSite/js/bootstrap.min.js diff --git a/Plugins/Mineplex.ReportServer/web/js/jquery.js b/Plugins/Mineplex.ReportSite/js/jquery.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/jquery.js rename to Plugins/Mineplex.ReportSite/js/jquery.js diff --git a/Plugins/Mineplex.ReportServer/web/js/npm.js b/Plugins/Mineplex.ReportSite/js/npm.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/npm.js rename to Plugins/Mineplex.ReportSite/js/npm.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/alert.js b/Plugins/Mineplex.ReportSite/js/umd/alert.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/alert.js rename to Plugins/Mineplex.ReportSite/js/umd/alert.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/button.js b/Plugins/Mineplex.ReportSite/js/umd/button.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/button.js rename to Plugins/Mineplex.ReportSite/js/umd/button.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/carousel.js b/Plugins/Mineplex.ReportSite/js/umd/carousel.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/carousel.js rename to Plugins/Mineplex.ReportSite/js/umd/carousel.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/collapse.js b/Plugins/Mineplex.ReportSite/js/umd/collapse.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/collapse.js rename to Plugins/Mineplex.ReportSite/js/umd/collapse.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/dropdown.js b/Plugins/Mineplex.ReportSite/js/umd/dropdown.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/dropdown.js rename to Plugins/Mineplex.ReportSite/js/umd/dropdown.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/modal.js b/Plugins/Mineplex.ReportSite/js/umd/modal.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/modal.js rename to Plugins/Mineplex.ReportSite/js/umd/modal.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/popover.js b/Plugins/Mineplex.ReportSite/js/umd/popover.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/popover.js rename to Plugins/Mineplex.ReportSite/js/umd/popover.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/scrollspy.js b/Plugins/Mineplex.ReportSite/js/umd/scrollspy.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/scrollspy.js rename to Plugins/Mineplex.ReportSite/js/umd/scrollspy.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/tab.js b/Plugins/Mineplex.ReportSite/js/umd/tab.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/tab.js rename to Plugins/Mineplex.ReportSite/js/umd/tab.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/tooltip.js b/Plugins/Mineplex.ReportSite/js/umd/tooltip.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/tooltip.js rename to Plugins/Mineplex.ReportSite/js/umd/tooltip.js diff --git a/Plugins/Mineplex.ReportServer/web/js/umd/util.js b/Plugins/Mineplex.ReportSite/js/umd/util.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/js/umd/util.js rename to Plugins/Mineplex.ReportSite/js/umd/util.js diff --git a/Plugins/Mineplex.ReportServer/web/main.js b/Plugins/Mineplex.ReportSite/main.js similarity index 100% rename from Plugins/Mineplex.ReportServer/web/main.js rename to Plugins/Mineplex.ReportSite/main.js diff --git a/Plugins/Mineplex.ReportServer/web/message.php b/Plugins/Mineplex.ReportSite/message.php similarity index 100% rename from Plugins/Mineplex.ReportServer/web/message.php rename to Plugins/Mineplex.ReportSite/message.php diff --git a/Plugins/Mineplex.ReportServer/web/reference.html b/Plugins/Mineplex.ReportSite/reference.html similarity index 100% rename from Plugins/Mineplex.ReportServer/web/reference.html rename to Plugins/Mineplex.ReportSite/reference.html diff --git a/Plugins/Mineplex.ReportServer/web/report.php b/Plugins/Mineplex.ReportSite/report.php similarity index 100% rename from Plugins/Mineplex.ReportServer/web/report.php rename to Plugins/Mineplex.ReportSite/report.php diff --git a/Plugins/Mineplex.ReportServer/web/reporter_reason.php b/Plugins/Mineplex.ReportSite/reporter_reason.php similarity index 100% rename from Plugins/Mineplex.ReportServer/web/reporter_reason.php rename to Plugins/Mineplex.ReportSite/reporter_reason.php diff --git a/Plugins/Mineplex.ReportServer/web/snapshot.php b/Plugins/Mineplex.ReportSite/snapshot.php similarity index 100% rename from Plugins/Mineplex.ReportServer/web/snapshot.php rename to Plugins/Mineplex.ReportSite/snapshot.php diff --git a/Plugins/Mineplex.ReportServer/web/user.php b/Plugins/Mineplex.ReportSite/user.php similarity index 100% rename from Plugins/Mineplex.ReportServer/web/user.php rename to Plugins/Mineplex.ReportSite/user.php diff --git a/Plugins/Mineplex.ReportServer/web/view.php b/Plugins/Mineplex.ReportSite/view.php similarity index 100% rename from Plugins/Mineplex.ReportServer/web/view.php rename to Plugins/Mineplex.ReportSite/view.php