networkNames = new ArrayList<>();
registryAPI.getNetworkMap().values().forEach(item -> networkNames.add(item.getName().replace(' ',
diff --git a/src/main/java/net/knarcraft/stargatecommand/property/StargateCommandCommand.java b/src/main/java/net/knarcraft/stargatecommand/property/StargateCommandCommand.java
new file mode 100644
index 0000000..25be9a4
--- /dev/null
+++ b/src/main/java/net/knarcraft/stargatecommand/property/StargateCommandCommand.java
@@ -0,0 +1,71 @@
+package net.knarcraft.stargatecommand.property;
+
+/**
+ * An enum representing the commands of this plugin
+ */
+public enum StargateCommandCommand {
+
+ /**
+ * The config command
+ */
+ CONFIG("config", "stargate.command.config", false),
+
+ /**
+ * The dial command
+ */
+ DIAL("dial", "stargate.command.dial", true),
+
+ /**
+ * The visualizer command
+ */
+ VISUALIZER("visualizer", "stargate.command.visualizer", false),
+
+ /**
+ * The info command
+ */
+ INFO("info", "stargate.command.info", true);
+
+ private final String name;
+ private final String permissionNode;
+ private final boolean requiresPlayer;
+
+ /**
+ * Instantiates a new Stargate-Command Command
+ *
+ * @param name The name of the new command
+ * @param permissionNode The permission node required for using the command
+ */
+ StargateCommandCommand(String name, String permissionNode, boolean requiresPlayer) {
+ this.name = name;
+ this.permissionNode = permissionNode;
+ this.requiresPlayer = requiresPlayer;
+ }
+
+ /**
+ * Gets the name of this command (the string after /sgc)
+ *
+ * @return The name of this command
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ * Gets the permission node required for this command
+ *
+ * @return The permission node required for this command
+ */
+ public String getPermissionNode() {
+ return permissionNode;
+ }
+
+ /**
+ * Gets whether this command requires usage by a player
+ *
+ * @return True if this command can only be used by a player
+ */
+ public boolean requiresPlayer() {
+ return requiresPlayer;
+ }
+
+}