1package dev.keii.goldenage.commands;
2
3import dev.keii.goldenage.GoldenAge;
4import dev.keii.goldenage.config.Env;
5import dev.keii.goldenage.migration.Migrator;
6import dev.keii.goldenage.utils.DatabaseUtility;
7import org.bukkit.command.Command;
8import org.bukkit.command.CommandExecutor;
9import org.bukkit.command.CommandSender;
10import org.bukkit.entity.Player;
11
12import java.io.PrintWriter;
13import java.io.StringWriter;
14import java.sql.SQLException;
15
16@SuppressWarnings("unused")
17public class DatabaseCommand implements CommandExecutor {
18 DatabaseUtility db;
19 Migrator migrator;
20 GoldenAge plugin;
21
22 public DatabaseCommand(GoldenAge plugin) {
23 this.db = plugin.getDatabaseUtility();
24 this.migrator = new Migrator(plugin);
25 this.plugin = plugin;
26 }
27
28 @Override
29 public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
30 // Don't allow execution of this command if the environment isn't development
31 if (!plugin.getConfig().getEnv().equals(Env.Development)) {
32 return false;
33 }
34
35 if (args.length == 0) {
36 sender.sendMessage(this.plugin.getConfig().getErrors().getInsufficientArguments());
37 return false;
38 }
39
40 try {
41 if (args[0].equalsIgnoreCase("migrate")) {
42 migrator.migrate();
43 } else if (args[0].equalsIgnoreCase("rollback")) {
44 migrator.rollback();
45 } else {
46 sender.sendMessage(this.plugin.getConfig().getErrors().getInvalidArgument(args[0]));
47 return false;
48 }
49 } catch (SQLException e) {
50 sender.sendMessage("Failed to migrate");
51 sender.sendMessage(e.getMessage());
52 StringWriter sw = new StringWriter();
53 PrintWriter pw = new PrintWriter(sw);
54 e.printStackTrace(pw);
55 sender.sendMessage(sw.toString());
56 }
57
58 return true;
59 }
60
61}