From 927547c276c2586bb902cd6d7661d3c34d31d7b7 Mon Sep 17 00:00:00 2001 From: Hempfest <64885225+Hempfest@users.noreply.github.com> Date: Tue, 7 Nov 2023 21:40:51 -0800 Subject: [PATCH] * Fixed all misc clans pro labeling needing resolved. --- README.md | 2 +- api/pom.xml | 4 +- cli/pom.xml | 2 +- pom.xml | 6 +- .../github/sanctum/clans/ClansJavaPlugin.java | 6 +- .../sanctum/clans/bridge/ClanAddonQueue.java | 8 +- .../clans/bridge/external/DynmapAddon.java | 20 +-- .../kingdoms/command/KingdomCommand.java | 2 - .../clans/commands/CommandClanAdmin.java | 4 +- .../sanctum/clans/commands/CommandHead.java | 8 +- .../sanctum/clans/construct/ClanManager.java | 4 +- .../construct/api/ClaimActionEngine.java | 8 +- .../clans/construct/api/ClanActionEngine.java | 4 +- .../sanctum/clans/construct/api/ClansAPI.java | 14 +- .../sanctum/clans/construct/api/GUI.java | 145 +++++------------- .../impl/DefaultRespawnCooldown.java | 4 +- .../util/AsynchronousLoanableTask.java | 4 +- .../util/SphericalParticleDisplay.java | 12 +- .../clans/construct/util/StartProcedure.java | 6 +- .../clans/listener/BlockEventListener.java | 24 +-- .../clans/listener/ClanEventListener.java | 4 +- .../clans/listener/EntityEventListener.java | 4 +- .../clans/listener/PlayerEventListener.java | 20 +-- src/main/resources/config/Config_es.yml | 2 +- src/main/resources/config/Config_pt_br.yml | 2 +- src/main/resources/config/Messages.yml | 72 +++------ src/main/resources/config/Messages_es.yml | 68 +++----- src/main/resources/config/Messages_pt_br.yml | 68 +++----- src/main/resources/config/heads.json | 6 +- 29 files changed, 151 insertions(+), 382 deletions(-) diff --git a/README.md b/README.md index a3e58df0..c4015d8a 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,4 @@ An alternative to factions with unique features, modern version support and chun ##### LABYRINTH BUILT. NEW VERSION SOON -[Click here for wiki](https://github.com/the-h-team/ClansPro/wiki) +[Click here for wiki](https://github.com/the-h-team/Clans/wiki) diff --git a/api/pom.xml b/api/pom.xml index d6cdfcd7..883cf286 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - ClansPro + Clans com.github.the-h-team - 1.5.1 + 1.6.0 4.0.0 diff --git a/cli/pom.xml b/cli/pom.xml index a51ca6dc..e8128f14 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - ClansPro + Clans com.github.the-h-team 1.5.1 diff --git a/pom.xml b/pom.xml index cee7b344..8cad547c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,8 +4,8 @@ 4.0.0 com.github.sanctum - ClansPro - 1.5.1 + Clans + 1.6.0 tether-api tether-cli @@ -13,7 +13,7 @@ pom Tether - https://github.com/the-h-team/ClansPro + https://github.com/the-h-team/Clans Sanctum diff --git a/src/main/java/com/github/sanctum/clans/ClansJavaPlugin.java b/src/main/java/com/github/sanctum/clans/ClansJavaPlugin.java index 78158828..eebcdafe 100644 --- a/src/main/java/com/github/sanctum/clans/ClansJavaPlugin.java +++ b/src/main/java/com/github/sanctum/clans/ClansJavaPlugin.java @@ -133,7 +133,7 @@ void fixDataFolder() { final String name = getDescription().getName(); final File newDir = new File(pluginsDir.getParentFile().getPath(), name); // account for both folder names - for (String oldFolderName : new String[]{"ClansPro", "Tether"}) { + for (String oldFolderName : new String[]{"Clans", "Tether"}) { final File oldDir = new File(pluginsDir.getParentFile().getPath(), oldFolderName); if (oldDir.renameTo(newDir)) { getLogger().info("Renamed the old '" + oldFolderName + "' folder to '" + name + "' for you."); @@ -240,9 +240,7 @@ public void onDisable() { }); FileManager heads = getFileList().get("heads", "Configuration/Data", Configurable.Type.JSON); - // FIXME change to "Clans" - // -not doing change right now so i don't break anything - CustomHead.Manager.getHeads().stream().filter(h -> h.category().equals("ClansPro")).forEach(h -> { + CustomHead.Manager.getHeads().stream().filter(h -> h.category().equals("Clans")).forEach(h -> { heads.write(t -> { t.set(h.name() + ".name", h.name()); t.set(h.name() + ".custom", true); diff --git a/src/main/java/com/github/sanctum/clans/bridge/ClanAddonQueue.java b/src/main/java/com/github/sanctum/clans/bridge/ClanAddonQueue.java index c7d69fe4..e925fe93 100644 --- a/src/main/java/com/github/sanctum/clans/bridge/ClanAddonQueue.java +++ b/src/main/java/com/github/sanctum/clans/bridge/ClanAddonQueue.java @@ -120,9 +120,7 @@ public boolean load(@NotNull Object o) { } }; if (!attempt.load(addon)) { - // FIXME start with "Clans::" - // -not doing change right now so i don't break anything - String key = "ClansPro::" + addon.getName() + ";enable-attempt"; + String key = "Clans::" + addon.getName() + ";enable-attempt"; if (TaskMonitor.getLocalInstance().get(key) == null) { Task t = new Task(key, Task.REPEATABLE, TaskChain.getSynchronous()) { @@ -433,9 +431,7 @@ public boolean load(@NotNull Object o) { } }; if (!attempt.load(e)) { - // FIXME start with "Clans::" - // -not doing change right now so i don't break anything - String key = "ClansPro::" + e.getName() + ";enable-attempt"; + String key = "Clans::" + e.getName() + ";enable-attempt"; if (TaskMonitor.getLocalInstance().get(key) == null) { Task t = new Task(key, Task.REPEATABLE, TaskChain.getSynchronous()) { diff --git a/src/main/java/com/github/sanctum/clans/bridge/external/DynmapAddon.java b/src/main/java/com/github/sanctum/clans/bridge/external/DynmapAddon.java index 338ffca7..f87f5d8a 100644 --- a/src/main/java/com/github/sanctum/clans/bridge/external/DynmapAddon.java +++ b/src/main/java/com/github/sanctum/clans/bridge/external/DynmapAddon.java @@ -51,9 +51,7 @@ public void onLoad() { @Override public void onEnable() { - // FIXME start with "clans;" - // -not doing change right now so i don't break anything - ClanVentBus.MEDIUM_PRIORITY.subscribeTo(CommandInformationAdaptEvent.class, "clanspro;dynmap-info_adapt", (e, subscription) -> { + ClanVentBus.MEDIUM_PRIORITY.subscribeTo(CommandInformationAdaptEvent.class, "clans;dynmap-info_adapt", (e, subscription) -> { ClanAddon cycle = ClanAddonQueue.getInstance().get("Dynmap"); if (cycle != null && !cycle.getContext().isActive()) { @@ -65,15 +63,11 @@ public void onEnable() { e.insert("&7|&e) &6/c &bglobe &chide &8[all]"); }).queue(); - // FIXME start with "clans;" - // -not doing change right now so i don't break anything - ClanVentBus.MEDIUM_PRIORITY.subscribeTo(AssociateObtainLandEvent.class, "clanspro;dynmap-land_obtain", (event, subscription) -> { + ClanVentBus.MEDIUM_PRIORITY.subscribeTo(AssociateObtainLandEvent.class, "clans;dynmap-land_obtain", (event, subscription) -> { event.getPlayer().performCommand("c globe show"); }).queue(); - // FIXME start with "clans;" - // -not doing change right now so i don't break anything - ClanVentBus.HIGHEST_PRIORITY.subscribeTo(AssociateUnClaimEvent.class, "clanspro;dynmap-land_loss", (event, subscription) -> { + ClanVentBus.HIGHEST_PRIORITY.subscribeTo(AssociateUnClaimEvent.class, "clans;dynmap-land_loss", (event, subscription) -> { if (!event.isCancelled()) { event.getPlayer().performCommand("c globe hide"); } @@ -85,11 +79,9 @@ public void onEnable() { public void onDisable() { ClanVentBus mediumPriority = ClanVentBus.MEDIUM_PRIORITY; - // FIXME start with "clans;" x3 lines - // -not doing change right now so i don't break anything - mediumPriority.unsubscribeFrom(CommandInformationAdaptEvent.class, "clanspro;dynmap-info_adapt").deploy(); - mediumPriority.unsubscribeFrom(CommandInformationAdaptEvent.class, "clanspro;dynmap-land_obtain").deploy(); - mediumPriority.unsubscribeFrom(CommandInformationAdaptEvent.class, "clanspro;dynmap-land_loss").deploy(); + mediumPriority.unsubscribeFrom(CommandInformationAdaptEvent.class, "clans;dynmap-info_adapt").deploy(); + mediumPriority.unsubscribeFrom(CommandInformationAdaptEvent.class, "clans;dynmap-land_obtain").deploy(); + mediumPriority.unsubscribeFrom(CommandInformationAdaptEvent.class, "clans;dynmap-land_loss").deploy(); } diff --git a/src/main/java/com/github/sanctum/clans/bridge/internal/kingdoms/command/KingdomCommand.java b/src/main/java/com/github/sanctum/clans/bridge/internal/kingdoms/command/KingdomCommand.java index dd0a3b6b..046bee19 100644 --- a/src/main/java/com/github/sanctum/clans/bridge/internal/kingdoms/command/KingdomCommand.java +++ b/src/main/java/com/github/sanctum/clans/bridge/internal/kingdoms/command/KingdomCommand.java @@ -55,7 +55,6 @@ public static String getProgressBar(int currentValue, int maxValue, int maxBars) public boolean player(Player p, String label, String[] args) { if (args.length == 0) { - // TODO: send help menu Clan.Associate associate = ClansAPI.getInstance().getAssociate(p).orElse(null); message() .append(text(" ")) @@ -223,7 +222,6 @@ public boolean player(Player p, String label, String[] args) { Clan.ACTION.sendMessage(p, "&cYour clan is no longer a member of the kingdom."); if (k.getMembers().size() == 0) { - // TODO: announce kingdom fallen k.remove(ClanAddonQueue.getInstance().get("Kingdoms")); Bukkit.getOnlinePlayers().forEach(pl -> Clan.ACTION.sendMessage(pl, "&2[&b" + k.getName() + "&2]&r &c&ohas fallen..")); } diff --git a/src/main/java/com/github/sanctum/clans/commands/CommandClanAdmin.java b/src/main/java/com/github/sanctum/clans/commands/CommandClanAdmin.java index aa525f2e..7c3fdb3e 100644 --- a/src/main/java/com/github/sanctum/clans/commands/CommandClanAdmin.java +++ b/src/main/java/com/github/sanctum/clans/commands/CommandClanAdmin.java @@ -44,9 +44,7 @@ public CommandClanAdmin() { super("clansadmin"); setDescription("Used to modify clan settings."); setAliases(Arrays.asList("ca", "cla", "clanadmin")); - // FIXME start with "clans" and/or make relative/calculated? - // -not doing change right now so i don't break anything - setPermission("clanspro.admin"); + setPermission("clans.admin"); } private List helpMenu(String label) { diff --git a/src/main/java/com/github/sanctum/clans/commands/CommandHead.java b/src/main/java/com/github/sanctum/clans/commands/CommandHead.java index 23e6bc2a..37dfcef4 100644 --- a/src/main/java/com/github/sanctum/clans/commands/CommandHead.java +++ b/src/main/java/com/github/sanctum/clans/commands/CommandHead.java @@ -118,9 +118,7 @@ public boolean player(Player p, String label, String[] args) { @Override public @NotNull String category() { - // FIXME change to "Clans" - // -not doing change right now so i don't break anything - return "ClansPro"; + return "Clans"; } }); sendMessage(p, MessageFormat.format(ClansAPI.getDataInstance().getMessageResponse("cached-head"), cost)); @@ -149,9 +147,7 @@ public boolean player(Player p, String label, String[] args) { @Override public @NotNull String category() { - // FIXME change to "Clans" - // -not doing change right now so i don't break anything - return "ClansPro"; + return "Clans"; } }); sendMessage(p, MessageFormat.format(ClansAPI.getDataInstance().getMessageResponse("cached-head"), 0.0)); diff --git a/src/main/java/com/github/sanctum/clans/construct/ClanManager.java b/src/main/java/com/github/sanctum/clans/construct/ClanManager.java index 704a3327..a53bf626 100644 --- a/src/main/java/com/github/sanctum/clans/construct/ClanManager.java +++ b/src/main/java/com/github/sanctum/clans/construct/ClanManager.java @@ -162,9 +162,7 @@ public synchronized boolean delete(Clan c) { if (!m.getRoot().delete()) { ClansAPI.getInstance().getPlugin().getLogger().warning("- A non existent clan file was attempted to be removed, ignoring..."); } - }).scheduleLater("ClansPro-removal;" + c.getId(), 1L); - // ^FIXME change key to start with "Clans" - // -not doing change right now so i don't break anything + }).scheduleLater("Clans-removal;" + c.getId(), 1L); return CLANS.remove(c); } catch (Exception e) { return false; diff --git a/src/main/java/com/github/sanctum/clans/construct/api/ClaimActionEngine.java b/src/main/java/com/github/sanctum/clans/construct/api/ClaimActionEngine.java index cc6d1c15..1257089f 100644 --- a/src/main/java/com/github/sanctum/clans/construct/api/ClaimActionEngine.java +++ b/src/main/java/com/github/sanctum/clans/construct/api/ClaimActionEngine.java @@ -524,15 +524,11 @@ public int getPlayerHardcap(Player player) { if (player == null) return 0; for (int i = 1; i < 251; i++) { - // FIXME start with "clans"/make relative/calculated - // -not doing change right now so i don't break anything - if (player.hasPermission("clanspro." + DataManager.Security.getPermission("claim") + ".infinite")) { + if (player.hasPermission("clans." + DataManager.Security.getPermission("claim") + ".infinite")) { result = -1; break; } - // FIXME start with "clans"/make relative/calculated - // -not doing change right now so i don't break anything - if (player.hasPermission("clanspro." + DataManager.Security.getPermission("claim") + "." + i)) { + if (player.hasPermission("clans." + DataManager.Security.getPermission("claim") + "." + i)) { result = i; break; } diff --git a/src/main/java/com/github/sanctum/clans/construct/api/ClanActionEngine.java b/src/main/java/com/github/sanctum/clans/construct/api/ClanActionEngine.java index 72c38a25..44484faf 100644 --- a/src/main/java/com/github/sanctum/clans/construct/api/ClanActionEngine.java +++ b/src/main/java/com/github/sanctum/clans/construct/api/ClanActionEngine.java @@ -182,9 +182,7 @@ public Clan.Action remove(@NotNull UUID target, boolean silent) { Bukkit.broadcastMessage(color(getPrefix() + " " + format)); } API.getClaimManager().refresh(); - }).scheduleLater("ClansPro-deletion;" + target, 1); - // ^FIXME change key to start with "Clans" - // -not doing change right now so i don't break anything + }).scheduleLater("Clans-deletion;" + target, 1); } else { if (!silent) { clanIndex.broadcast(MessageFormat.format(ClansAPI.getDataInstance().getMessageResponse("member-leave"), Bukkit.getOfflinePlayer(target).getName())); diff --git a/src/main/java/com/github/sanctum/clans/construct/api/ClansAPI.java b/src/main/java/com/github/sanctum/clans/construct/api/ClansAPI.java index 3781e119..80415b77 100644 --- a/src/main/java/com/github/sanctum/clans/construct/api/ClansAPI.java +++ b/src/main/java/com/github/sanctum/clans/construct/api/ClansAPI.java @@ -38,15 +38,13 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -// FIXME update ascii art /** *
- *    ████████╗███████╗████████╗██╗  ██╗███████╗██████╗
- *    ╚══██╔══╝██╔════╝╚══██╔══╝██║  ██║██╔════╝██╔══██╗
- *       ██║   █████╗     ██║   ███████║█████╗  ██████╔╝
- *       ██║   ██╔══╝     ██║   ██╔══██║██╔══╝  ██╔══██╗
- *       ██║   ███████╗   ██║   ██║  ██║███████╗██║  ██║
- *       ╚═╝   ╚══════╝   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝
+ *   ██████ ██       █████  ███    ██ ███████
+ *  ██      ██      ██   ██ ████   ██ ██
+ *  ██      ██      ███████ ██ ██  ██ ███████
+ *  ██      ██      ██   ██ ██  ██ ██      ██
+ *   ██████ ███████ ██   ██ ██   ████ ███████
  * 
  * Copyright (c) 2023 Sanctum
  */
@@ -112,7 +110,7 @@ static DataManager getDataInstance() {
 	Optional getAssociate(String playerName);
 
 	/**
-	 * Get the ClansPro file listing.
+	 * Get the Clans file listing.
 	 *
 	 * @return Get's the file collection for the given plugin.
 	 */
diff --git a/src/main/java/com/github/sanctum/clans/construct/api/GUI.java b/src/main/java/com/github/sanctum/clans/construct/api/GUI.java
index 0c9fa357..f7f3a26e 100644
--- a/src/main/java/com/github/sanctum/clans/construct/api/GUI.java
+++ b/src/main/java/com/github/sanctum/clans/construct/api/GUI.java
@@ -307,11 +307,9 @@ public Menu get() {
 				MemoryDocket docket = DefaultDocketRegistry.get(id);
 				if (docket != null) return docket.toMenu();
 			case LOGO_LIST:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.PAGINATED.build()
 						.setHost(api.getPlugin())
-						.setKey("ClansPro:logo-list")
+						.setKey("Clans:logo-list")
 						.setSize(getSize())
 						.setTitle("&e&lLogo Gallery &0&l»")
 						.setStock(i -> {
@@ -367,9 +365,7 @@ public Menu get() {
 								item.setElement(ed -> ed.setTitle("&e# &f(" + stand.getId() + ")").setLore(set).build());
 								item.setClick(click -> {
 									click.setCancelled(true);
-									// FIXME start with "clans" and/or make relative/calculated
-									// -not doing change right now so i don't break anything
-									if (click.getElement().hasPermission("clanspro.admin")) {
+									if (click.getElement().hasPermission("clans.admin")) {
 										if (click.getClickType().isShiftClick()) {
 											api.getLogoGallery().remove(set);
 											TaskScheduler.of(() -> GUI.LOGO_LIST.get().open(click.getElement())).scheduleLater(1);
@@ -387,21 +383,18 @@ public Menu get() {
 								});
 							});
 							i.addItem(list);
-						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("ClansPro:logo-list")::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("Clans:logo-list")::equals).orElse(false));
+
 			case CLAN_ROSTER:
 				String rosterId = ClansAPI.getDataInstance().getMessageString("menu.roster.id");
 				MemoryDocket rosterDocket = DefaultDocketRegistry.get(rosterId);
 				if (rosterDocket != null) return rosterDocket.toMenu();
 			case SETTINGS_CLAN_ROSTER:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.PAGINATED.build().setHost(api.getPlugin())
 						.setProperty(Menu.Property.CACHEABLE, Menu.Property.RECURSIVE)
 						.setTitle("&0&l» &3&lSelect a clan")
 						.setSize(getSize())
-						.setKey("ClansPro:Roster_edit")
+						.setKey("Clans:Roster_edit")
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
 							filler.add(ed -> ed.setElement(it -> it.setType(Optional.ofNullable(Items.findMaterial("bluestainedglasspane")).orElse(Items.findMaterial("stainedglasspane"))).setTitle(" ").build()));
@@ -480,9 +473,7 @@ public Menu get() {
 								});
 							}).setLimit(getLimit()));
 
-						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().isPresent() && m.getKey().get().equals("ClansPro:Roster_edit"));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().isPresent() && m.getKey().get().equals("Clans:Roster_edit"));
 			case CLAN_ROSTER_TOP:
 				String rosterTopId = ClansAPI.getDataInstance().getMessageString("menu.roster-top.id");
 				MemoryDocket docket2 = DefaultDocketRegistry.get(rosterTopId);
@@ -492,12 +483,10 @@ public Menu get() {
 				MemoryDocket docket3 = DefaultDocketRegistry.get(selectID);
 				if (docket3 != null) return docket3.toMenu();
 			case SETTINGS_SELECT:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build()
 						.setHost(api.getPlugin())
 						.setProperty(Menu.Property.CACHEABLE)
-						.setKey("ClansPro:Settings")
+						.setKey("Clans:Settings")
 						.setSize(Menu.Rows.SIX)
 						.setTitle(" &0&l» &2&oManagement Area")
 						.setStock(i -> {
@@ -551,16 +540,12 @@ public Menu get() {
 								c.setCancelled(true);
 								SETTINGS_RELOAD.get().open(c.getElement());
 							}));
-						}).orGet(m -> m instanceof SingularMenu && m.getKey().map("ClansPro:Settings"::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof SingularMenu && m.getKey().map("Clans:Settings"::equals).orElse(false));
 			case ADDONS_SELECTION:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&2&oManage Addon Cycles &0&l»")
-						.setKey("ClansPro:Addons")
+						.setKey("Clans:Addons")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -583,16 +568,13 @@ public Menu get() {
 								SETTINGS_SELECT.get().open(c.getElement());
 							}).setSlot(8));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map("ClansPro:Addons"::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map("Clans:Addons"::equals).orElse(false));
+
 			case SETTINGS_ARENA:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&2&oArena Spawns &0&l»")
-						.setKey("ClansPro:War")
+						.setKey("Clans:War")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -619,16 +601,12 @@ public Menu get() {
 								SETTINGS_SELECT.get().open(c.getElement());
 							}).setSlot(8));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map("ClansPro:War"::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map("Clans:War"::equals).orElse(false));
 			case SETTINGS_RELOAD:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&0&l» &eReload Files")
-						.setKey("ClansPro:Reload")
+						.setKey("Clans:Reload")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -659,16 +637,12 @@ public Menu get() {
 								SETTINGS_SELECT.get().open(c.getElement());
 							}).setSlot(8));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map("ClansPro:Reload"::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map("Clans:Reload"::equals).orElse(false));
 			case SETTINGS_SHIELD:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&2&oRaid-Shield Settings &0&l»")
-						.setKey("ClansPro:shield-edit")
+						.setKey("Clans:shield-edit")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -703,16 +677,13 @@ public Menu get() {
 								SETTINGS_SELECT.get().open(c.getElement());
 							}).setSlot(8));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map("ClansPro:shield-edit"::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map("Clans:shield-edit"::equals).orElse(false));
+
 			case SETTINGS_LANGUAGE:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&0&l» &ePick a language")
-						.setKey("ClansPro:Lang")
+						.setKey("Clans:Lang")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -738,12 +709,9 @@ public Menu get() {
 								SETTINGS_RELOAD.get().open(c.getElement());
 							}).setSlot(8));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map("ClansPro:Lang"::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map("Clans:Lang"::equals).orElse(false));
+
 			case ADDONS_ACTIVATED:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.PAGINATED.build()
 						.setHost(api.getPlugin())
 						.setProperty(Menu.Property.CACHEABLE, Menu.Property.RECURSIVE)
@@ -1206,12 +1174,10 @@ public Menu get(Clan.Associate associate) {
 				docket.setNamePlaceholder(":member_name:");
 				return Docket.toMenu(docket);
 			case MEMBER_EDIT:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setProperty(Menu.Property.CACHEABLE)
 						.setTitle("&0&l» " + cl.getPalette() + associate.getName() + " settings")
-						.setKey("ClansPro:member-" + associate.getName() + "-edit")
+						.setKey("Clans:member-" + associate.getName() + "-edit")
 						.setSize(Menu.Rows.THREE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -1308,16 +1274,13 @@ public Menu get(Clan.Associate associate) {
 								});
 							}));
 
-						}).orGet(m -> m instanceof SingularMenu && m.getKey().isPresent() && m.getKey().get().equals("ClansPro:member-" + associate.getName() + "-edit")).addAction(c -> c.setCancelled(true));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof SingularMenu && m.getKey().isPresent() && m.getKey().get().equals("Clans:member-" + associate.getName() + "-edit")).addAction(c -> c.setCancelled(true));
+
 			case SETTINGS_MEMBER:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setProperty(Menu.Property.RECURSIVE, Menu.Property.CACHEABLE)
 						.setTitle("&0&l» " + cl.getPalette().toString(associate.getName()) + " settings")
-						.setKey("ClansPro:member-" + associate.getName() + "-edit-settings")
+						.setKey("Clans:member-" + associate.getName() + "-edit-settings")
 						.setSize(Menu.Rows.THREE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -1425,9 +1388,8 @@ public Menu get(Clan.Associate associate) {
 								Clan.ACTION.demote(associate.getId()).deploy();
 							}));
 
-						}).orGet(m -> m instanceof SingularMenu && m.getKey().isPresent() && m.getKey().get().equals("ClansPro:member-" + associate.getName() + "-edit-settings")).addAction(c -> c.setCancelled(true));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof SingularMenu && m.getKey().isPresent() && m.getKey().get().equals("Clans:member-" + associate.getName() + "-edit-settings")).addAction(c -> c.setCancelled(true));
+
 			default:
 				throw new IllegalArgumentException("GUI type " + name() + " not valid, contact developers.");
 		}
@@ -1515,12 +1477,10 @@ public Menu get(Clan clan) {
 						})
 						.join();
 			case CLAIM_TITLES:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setProperty(Menu.Property.RECURSIVE, Menu.Property.CACHEABLE)
 						.setTitle("&0&l» " + (clan.getPalette().isGradient() ? clan.getPalette().toGradient().context(clan.getName()).translate() : clan.getPalette().toString() + clan.getName()) + " claim titles")
-						.setKey("ClansPro:titles-" + clan.getName())
+						.setKey("Clans:titles-" + clan.getName())
 						.setSize(Menu.Rows.THREE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -1627,15 +1587,11 @@ public Menu get(Clan clan) {
 
 										}).open(p);
 							}));
-						}).orGet(m -> m instanceof SingularMenu && m.getKey().isPresent() && m.getKey().get().equals("ClansPro:titles-" + clan.getName())).addAction(c -> c.setCancelled(true));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof SingularMenu && m.getKey().isPresent() && m.getKey().get().equals("Clans:titles-" + clan.getName())).addAction(c -> c.setCancelled(true));
 			case CLAIM_LIST:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.PAGINATED.build()
 						.setHost(api.getPlugin())
-						.setKey("ClansPro:" + clan.getName() + "-claims")
+						.setKey("Clans:" + clan.getName() + "-claims")
 						.setSize(getSize())
 						.setProperty(Menu.Property.LIVE_META)
 						.setTitle("&3&lCLAIMS &0&l»")
@@ -1699,9 +1655,7 @@ public Menu get(Clan clan) {
 								});
 							});
 							i.addItem(list);
-						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("ClansPro:" + clan.getName() + "-claims")::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("Clans:" + clan.getName() + "-claims")::equals).orElse(false));
 			case HOLOGRAM_LIST:
 				return MenuType.PAGINATED.build()
 						.setHost(api.getPlugin())
@@ -1767,9 +1721,7 @@ public Menu get(Clan clan) {
 								});
 							});
 							i.addItem(list);
-						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("ClansPro:" + clan.getName() + "-holograms")::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"; where is the key set?? possible FIXME
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("Clans:" + clan.getName() + "-holograms")::equals).orElse(false));
 			case SETTINGS_CLAN:
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setTitle("&0&l» " + (clan.getPalette().isGradient() ? clan.getPalette().toGradient().context(clan.getName()).translate() : clan.getPalette().toString() + clan.getName()) + " settings")
@@ -2092,11 +2044,9 @@ public Menu get(Clan clan) {
 
 						}).join().addAction(c -> c.setCancelled(true));
 			case SETTINGS_MEMBER_LIST:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.PAGINATED.build()
 						.setHost(api.getPlugin())
-						.setKey("ClansPro:" + clan.getName() + "-members-edit")
+						.setKey("Clans:" + clan.getName() + "-members-edit")
 						.setSize(getSize())
 						.setTitle(Clan.ACTION.color("Members"))
 						.setStock(i -> {
@@ -2149,9 +2099,8 @@ public Menu get(Clan clan) {
 								c.setCancelled(true);
 								SETTINGS_MEMBER.get(value).open(c.getElement());
 							})));
-						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("ClansPro:" + clan.getName() + "-members-edit")::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						}).orGet(m -> m instanceof PaginatedMenu && m.getKey().map(("Clans:" + clan.getName() + "-members-edit")::equals).orElse(false));
+
 			case RESERVOIR:
 				MemoryDocket docket = new MemoryDocket<>(ClansAPI.getDataInstance().getMessages().getRoot().getNode("menu.home.reservoir"));
 				docket.setUniqueDataConverter(clan, Clan.memoryDocketReplacer());
@@ -2170,12 +2119,10 @@ public Menu get(Clan clan) {
 	public Menu get(War war) {
 		switch (this) {
 			case ARENA_SPAWN:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&2&oTeleport to &a" + war.getId() + " &0&l»")
-						.setKey("ClansPro:war-" + war.getId())
+						.setKey("Clans:war-" + war.getId())
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -2194,16 +2141,12 @@ public Menu get(War war) {
 								});
 							}));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map(("ClansPro:war-" + war.getId())::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map(("Clans:war-" + war.getId())::equals).orElse(false));
 			case ARENA_TRUCE:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&2&oTruce Vote &0&l»")
-						.setKey("ClansPro:war-" + war.getId() + "-truce")
+						.setKey("Clans:war-" + war.getId() + "-truce")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -2260,16 +2203,12 @@ public Menu get(War war) {
 								c.getElement().closeInventory();
 							}));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map(("ClansPro:war-" + war.getId() + "-truce")::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map(("Clans:war-" + war.getId() + "-truce")::equals).orElse(false));
 			case ARENA_SURRENDER:
-				// FIXME change key to start with "Clans"
-				// -not doing change right now so i don't break anything
 				return MenuType.SINGULAR.build().setHost(api.getPlugin())
 						.setSize(Menu.Rows.ONE)
 						.setTitle("&2&oSurrender Vote &0&l»")
-						.setKey("ClansPro:war-" + war.getId() + "-surrender")
+						.setKey("Clans:war-" + war.getId() + "-surrender")
 						.setProperty(Menu.Property.CACHEABLE)
 						.setStock(i -> {
 							FillerElement filler = new FillerElement<>(i);
@@ -2330,9 +2269,7 @@ public Menu get(War war) {
 								c.getElement().closeInventory();
 							}));
 						})
-						.orGet(m -> m instanceof SingularMenu && m.getKey().map(("ClansPro:war-" + war.getId() + "-surrender")::equals).orElse(false));
-						// ^FIXME change key to start with "Clans"
-						// -not doing change right now so i don't break anything
+						.orGet(m -> m instanceof SingularMenu && m.getKey().map(("Clans:war-" + war.getId() + "-surrender")::equals).orElse(false));
 
 			default:
 				throw new IllegalArgumentException("GUI type " + name() + " not valid, contact developers.");
diff --git a/src/main/java/com/github/sanctum/clans/construct/impl/DefaultRespawnCooldown.java b/src/main/java/com/github/sanctum/clans/construct/impl/DefaultRespawnCooldown.java
index cf47304e..4a7c857c 100644
--- a/src/main/java/com/github/sanctum/clans/construct/impl/DefaultRespawnCooldown.java
+++ b/src/main/java/com/github/sanctum/clans/construct/impl/DefaultRespawnCooldown.java
@@ -15,9 +15,7 @@ public DefaultRespawnCooldown(UUID player) {
 
 	@Override
 	public String getId() {
-		return "ClansPro-war-respawn-" + id.toString();
-		// ^FIXME change to start with "Clans"
-		// -not doing change right now so i don't break anything
+		return "Clans-war-respawn-" + id.toString();
 	}
 
 	@Override
diff --git a/src/main/java/com/github/sanctum/clans/construct/util/AsynchronousLoanableTask.java b/src/main/java/com/github/sanctum/clans/construct/util/AsynchronousLoanableTask.java
index 7081df99..2fdfa14c 100644
--- a/src/main/java/com/github/sanctum/clans/construct/util/AsynchronousLoanableTask.java
+++ b/src/main/java/com/github/sanctum/clans/construct/util/AsynchronousLoanableTask.java
@@ -19,9 +19,7 @@
 
 public final class AsynchronousLoanableTask {
 
-	public static final String KEY = "ClansPro:CONCURRENT";
-	// ^FIXME change key to start with "Clans"
-	// -not doing change right now so i don't break anything
+	public static final String KEY = "Clans:CONCURRENT";
 	private final PantherCollection players = new PantherSet<>();
 	private final Logic logic;
 
diff --git a/src/main/java/com/github/sanctum/clans/construct/util/SphericalParticleDisplay.java b/src/main/java/com/github/sanctum/clans/construct/util/SphericalParticleDisplay.java
index 2ad09a56..c6b3806e 100644
--- a/src/main/java/com/github/sanctum/clans/construct/util/SphericalParticleDisplay.java
+++ b/src/main/java/com/github/sanctum/clans/construct/util/SphericalParticleDisplay.java
@@ -36,9 +36,7 @@ public SphericalParticleDisplay require(BukkitTaskPredicate... flags) {
 	public boolean shutdown() {
 		boolean result = false;
 		for (Player online : Bukkit.getOnlinePlayers()) {
-			String taskId = "ClansPro:particle-display;sphere:" + online.getUniqueId();
-			// ^FIXME change to start with "Clans:"
-			// -not doing change right now so i don't break anything
+			String taskId = "Clans:particle-display;sphere:" + online.getUniqueId();
 			Task task = monitor.get(taskId);
 			if (task != null) {
 				task.cancel();
@@ -51,9 +49,7 @@ public boolean shutdown() {
 	}
 
 	public boolean hide(Player target) {
-		String taskId = "ClansPro:particle-display;sphere:" + target.getUniqueId();
-		// ^FIXME change to start with "Clans:"
-		// -not doing change right now so i don't break anything
+		String taskId = "Clans:particle-display;sphere:" + target.getUniqueId();
 		Task task = monitor.get(taskId);
 		if (task == null) return false;
 		task.cancel();
@@ -72,9 +68,7 @@ public boolean show(@NotNull Player target, @Nullable Location location, int rad
 			}
 		}
 
-		String taskId = "ClansPro:particle-display;sphere:" + target.getUniqueId();
-		// ^FIXME change to start with "Clans:"
-		// -not doing change right now so i don't break anything
+		String taskId = "Clans:particle-display;sphere:" + target.getUniqueId();
 		if (monitor.get(taskId) != null) {
 			return false;
 		}
diff --git a/src/main/java/com/github/sanctum/clans/construct/util/StartProcedure.java b/src/main/java/com/github/sanctum/clans/construct/util/StartProcedure.java
index 6b5ce8d6..181ae3f7 100644
--- a/src/main/java/com/github/sanctum/clans/construct/util/StartProcedure.java
+++ b/src/main/java/com/github/sanctum/clans/construct/util/StartProcedure.java
@@ -457,10 +457,8 @@ void n() {
 					"make a group", "create a group", "start a group", "start group", "make group", "create group"
 			)) {
 				player.closeInventory();
-				String message = "To make a clan you require the permission clanspro." + DataManager.Security.getPermission("create") + ", if you have permission this message will be white.";
-				// FIXME change perm to start with "clans." and/or make it configurable
-				// -not doing change right now so i don't break anything
-				if (!player.hasPermission("clanspro." + DataManager.Security.getPermission("create"))) {
+				String message = "To make a clan you require the permission clans." + DataManager.Security.getPermission("create") + ", if you have permission this message will be white.";
+				if (!player.hasPermission("clans." + DataManager.Security.getPermission("create"))) {
 					Clan.ACTION.sendMessage(player, "&c" + message);
 				} else {
 					Clan.ACTION.sendMessage(player, message);
diff --git a/src/main/java/com/github/sanctum/clans/listener/BlockEventListener.java b/src/main/java/com/github/sanctum/clans/listener/BlockEventListener.java
index add88aa6..b0f4cd80 100644
--- a/src/main/java/com/github/sanctum/clans/listener/BlockEventListener.java
+++ b/src/main/java/com/github/sanctum/clans/listener/BlockEventListener.java
@@ -231,9 +231,7 @@ public void onClaimInteract(ClaimInteractEvent e) {
 					if (e.getBlock().getType().isInteractable()) {
 						if (!e.getClaim().getOwner().getTag().getId().equals(associate.getClan().getId().toString())) {
 							// not in the same clan
-							// FIXME change permissions to start with "clans." and/or make configurable
-							// -not doing change right now so i don't break anything
-							if (!e.getPlayer().hasPermission("clanspro.admin")) {
+							if (!e.getPlayer().hasPermission("clans.admin")) {
 								if (f != null && f.isEnabled()) {
 									// only deny if not ally.
 									if (!((Clan) e.getClaim().getHolder()).getRelation().getAlliance().has(associate.getClan())) {
@@ -255,9 +253,7 @@ public void onClaimInteract(ClaimInteractEvent e) {
 					}
 					if (!e.isCancelled() && StringUtils.use(e.getPlayer().getInventory().getItemInMainHand().getType().name()).containsIgnoreCase("bucket")) {
 						if (!e.getClaim().getOwner().getTag().getId().equals(associate.getClan().getId().toString())) {
-							// FIXME change permissions to start with "clans." and/or make configurable
-							// -not doing change right now so i don't break anything
-							if (!e.getPlayer().hasPermission("clanspro.admin")) {
+							if (!e.getPlayer().hasPermission("clans.admin")) {
 								if (f != null && f.isEnabled()) {
 									// only deny if not ally.
 									if (!((Clan) e.getClaim().getHolder()).getRelation().getAlliance().has(associate.getClan())) {
@@ -281,9 +277,7 @@ public void onClaimInteract(ClaimInteractEvent e) {
 				case BREAK:
 				case BUILD:
 					if (!e.getClaim().getOwner().getTag().getId().equals(associate.getClan().getId().toString())) {
-						// FIXME change permissions to start with "clans." and/or make configurable
-						// -not doing change right now so i don't break anything
-						if (!e.getPlayer().hasPermission("clanspro.admin")) {
+						if (!e.getPlayer().hasPermission("clans.admin")) {
 							if (f != null && f.isEnabled()) {
 								// only deny if not ally.
 								if (!((Clan) e.getClaim().getHolder()).getRelation().getAlliance().has(associate.getClan())) {
@@ -309,17 +303,13 @@ public void onClaimInteract(ClaimInteractEvent e) {
 			switch (e.getInteraction()) {
 				case USE:
 					if (e.getBlock().getType().isInteractable()) {
-						// FIXME change permissions to start with "clans." and/or make configurable
-						// -not doing change right now so i don't break anything
-						if (!e.getPlayer().hasPermission("clanspro.admin")) {
+						if (!e.getPlayer().hasPermission("clans.admin")) {
 							e.getUtil().sendMessage(e.getPlayer(), MessageFormat.format(e.getUtil().notClaimOwner(((Clan) e.getClaim().getHolder()).getName()), ((Clan) e.getClaim().getHolder()).getName()));
 							e.setCancelled(true);
 						}
 					}
 					if (!e.isCancelled() && StringUtils.use(e.getPlayer().getInventory().getItemInMainHand().getType().name()).containsIgnoreCase("bucket")) {
-						// FIXME change permissions to start with "clans." and/or make configurable
-						// -not doing change right now so i don't break anything
-						if (!e.getPlayer().hasPermission("clanspro.admin")) {
+						if (!e.getPlayer().hasPermission("clans.admin")) {
 							e.getUtil().sendMessage(e.getPlayer(), MessageFormat.format(e.getUtil().notClaimOwner(((Clan) e.getClaim().getHolder()).getName()), ((Clan) e.getClaim().getHolder()).getName()));
 							e.setCancelled(true);
 						}
@@ -327,9 +317,7 @@ public void onClaimInteract(ClaimInteractEvent e) {
 					break;
 				case BREAK:
 				case BUILD:
-					// FIXME change permissions to start with "clans." and/or make configurable
-					// -not doing change right now so i don't break anything
-					if (!e.getPlayer().hasPermission("clanspro.admin")) {
+					if (!e.getPlayer().hasPermission("clans.admin")) {
 						e.getUtil().sendMessage(e.getPlayer(), MessageFormat.format(e.getUtil().notClaimOwner(((Clan) e.getClaim().getHolder()).getName()), ((Clan) e.getClaim().getHolder()).getName()));
 						e.setCancelled(true);
 					}
diff --git a/src/main/java/com/github/sanctum/clans/listener/ClanEventListener.java b/src/main/java/com/github/sanctum/clans/listener/ClanEventListener.java
index ec61c07f..895fb7a0 100644
--- a/src/main/java/com/github/sanctum/clans/listener/ClanEventListener.java
+++ b/src/main/java/com/github/sanctum/clans/listener/ClanEventListener.java
@@ -587,9 +587,7 @@ public void onWarStart(WarStartEvent e) {
 	public void onResidency(ClaimResidencyEvent e) {
 		Clan owner = e.getClan();
 		if (owner.getMember(m -> m.getName().equals(e.getResident().getPlayer().getName())) == null) {
-			// FIXME change permissions to start with "clans." and/or make configurable
-			// -not doing change right now so i don't break anything
-			if (!e.getResident().getPlayer().hasPermission("clanspro.claim.bypass")) {
+			if (!e.getResident().getPlayer().hasPermission("clans.claim.bypass")) {
 				e.getResident().getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING, 225, -1, false, false));
 			}
 		} else {
diff --git a/src/main/java/com/github/sanctum/clans/listener/EntityEventListener.java b/src/main/java/com/github/sanctum/clans/listener/EntityEventListener.java
index 5b3b64c7..85869ef2 100644
--- a/src/main/java/com/github/sanctum/clans/listener/EntityEventListener.java
+++ b/src/main/java/com/github/sanctum/clans/listener/EntityEventListener.java
@@ -48,9 +48,7 @@ public void onSpawn(EntitySpawnEvent e) {
 				AssociateBuildReservoirEvent event = ClanVentBus.call(new AssociateBuildReservoirEvent(data));
 				if (!event.isCancelled()) {
 					PersistentDataContainer container = data.getEnderCrystal().getPersistentDataContainer();
-					container.set(new NamespacedKey(ClansAPI.getInstance().getPlugin(), "clanspro_reservoir"), PersistentDataType.STRING, data.getAssociateWhoSpawned().getClan().getId().toString());
-					// ^FIXME change key to start with "clans_"
-					// -not doing change right now so i don't break anything
+					container.set(new NamespacedKey(ClansAPI.getInstance().getPlugin(), "clans_reservoir"), PersistentDataType.STRING, data.getAssociateWhoSpawned().getClan().getId().toString());
 					Reservoir r = Reservoir.of(data.getEnderCrystal());
 					r.adapt(data.getAssociateWhoSpawned().getClan());
 				} else {
diff --git a/src/main/java/com/github/sanctum/clans/listener/PlayerEventListener.java b/src/main/java/com/github/sanctum/clans/listener/PlayerEventListener.java
index 371b257b..047ea1c4 100644
--- a/src/main/java/com/github/sanctum/clans/listener/PlayerEventListener.java
+++ b/src/main/java/com/github/sanctum/clans/listener/PlayerEventListener.java
@@ -263,9 +263,7 @@ public void onViewReservoir(TimerEvent e) {
 			EnderCrystal test = Clan.ACTION.getEnderCrystalInSight(p, 5);
 			if (test != null) {
 				PersistentDataContainer container = test.getPersistentDataContainer();
-				NamespacedKey key = new NamespacedKey(e.getApi().getPlugin(), "clanspro_reservoir");
-				// ^FIXME change key to start with "clans_"
-				// -not doing change right now so i don't break anything
+				NamespacedKey key = new NamespacedKey(e.getApi().getPlugin(), "clans_reservoir");
 				if (container.has(key, PersistentDataType.STRING)) {
 					String owner = container.get(key, PersistentDataType.STRING);
 					Clan c = e.getApi().getClanManager().getClan(HUID.parseID(owner).toID());
@@ -442,9 +440,7 @@ public void onReservoirDeath(AssociateHitReservoirEvent e) {
 					e.setCancelled(true);
 					return;
 				}
-				Task test = TaskMonitor.getLocalInstance().get("ClansPro;reservoir_power_loss:" + victim.getId());
-				// ^FIXME change key to start with "Clans;"
-				// -not doing change right now so i don't break anything
+				Task test = TaskMonitor.getLocalInstance().get("Clans;reservoir_power_loss:" + victim.getId());
 				if (test == null) {
 					attacking.broadcast("&aAssociate &5" + e.getAssociate().getNickname() + " &apowered down " + victim.getPalette().toString(victim.getName()) + "'s &areservoir! Hurry and collect the power its leaking!");
 					PantherCollection drain = new PantherList<>();
@@ -452,9 +448,7 @@ public void onReservoirDeath(AssociateHitReservoirEvent e) {
 						drain.add(1);
 					}
 					Integer[] ar = drain.stream().toArray(Integer[]::new);
-					Task t = CollectionTask.processSilent(ar, "ClansPro;reservoir_power_loss:" + victim.getId(), 1, integer -> {
-						// ^FIXME change table to start with "Clans;"
-						// -not doing change right now so i don't break anything
+					Task t = CollectionTask.processSilent(ar, "Clans;reservoir_power_loss:" + victim.getId(), 1, integer -> {
 						victim.takePower(integer);
 						attacking.givePower(integer);
 						e.getPlayer().getWorld().playSound(r.getEntity().getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 10, 1);
@@ -541,9 +535,7 @@ public void onClaim(AssociateClaimEvent e) {
 	public void onPunch(PlayerPunchPlayerEvent e) {
 
 		Player attacker = e.getPlayer();
-		Cooldown test = LabyrinthProvider.getService(Service.COOLDOWNS).getCooldown("ClansPro-war-respawn-" + e.getVictim().getUniqueId());
-		// ^FIXME change key to start with "Clans-"
-		// -not doing change right now so i don't break anything
+		Cooldown test = LabyrinthProvider.getService(Service.COOLDOWNS).getCooldown("Clans-war-respawn-" + e.getVictim().getUniqueId());
 		if (test != null) {
 			if (!test.isComplete()) {
 				if (test.getSeconds() == 0) {
@@ -965,9 +957,7 @@ public void onRespawn(PlayerRespawnEvent e) {
 			if (war != null && war.isRunning()) {
 				War.Team t = war.getTeam(associate.getClan());
 				if (t.getSpawn() != null) {
-					Cooldown test = LabyrinthProvider.getService(Service.COOLDOWNS).getCooldown("ClansPro-war-respawn-" + p.getUniqueId().toString());
-					// ^FIXME change key to start with "Clans-"
-					// -not doing change right now so i don't break anything
+					Cooldown test = LabyrinthProvider.getService(Service.COOLDOWNS).getCooldown("Clans-war-respawn-" + p.getUniqueId());
 					if (test != null) {
 						LabyrinthProvider.getInstance().remove(test);
 					}
diff --git a/src/main/resources/config/Config_es.yml b/src/main/resources/config/Config_es.yml
index 697a7b9c..f45e6940 100644
--- a/src/main/resources/config/Config_es.yml
+++ b/src/main/resources/config/Config_es.yml
@@ -306,7 +306,7 @@ Formatting:
     rank-style: WORDLESS
     # NEW! This option enabled allows you to provide your own custom formatting using placeholders! Customize in the 'Channel' section.
     # Enabling this option removes the default formatting all together, allowing you to customize your chat similar to a chat control plugin.
-    # Normal placeholders will work from either PlaceholderAPI or Labyrinth such as %player_name% or ones from plugins like ClansPro including %clanspro_clan_name%
+    # Normal placeholders will work from either PlaceholderAPI or Labyrinth such as %player_name% or ones from plugins like Clans including %clans_clan_name%
     standalone: false
     Channel:
       # {0} = Clan rank formatting, {1} = Clan name w/ color
diff --git a/src/main/resources/config/Config_pt_br.yml b/src/main/resources/config/Config_pt_br.yml
index c26dd95c..a44e89f6 100644
--- a/src/main/resources/config/Config_pt_br.yml
+++ b/src/main/resources/config/Config_pt_br.yml
@@ -304,7 +304,7 @@ Formatting:
     rank-style: WORDLESS
     # NEW! This option enabled allows you to provide your own custom formatting using placeholders! Customize in the 'Channel' section.
     # Enabling this option removes the default formatting all together, allowing you to customize your chat similar to a chat control plugin.
-    # Normal placeholders will work from either PlaceholderAPI or Labyrinth such as %player_name% or ones from plugins like ClansPro including %clanspro_clan_name%
+    # Normal placeholders will work from either PlaceholderAPI or Labyrinth such as %player_name% or ones from plugins like Clans including %clans_clan_name%
     standalone: false
     Channel:
       # {0} = Clan rank formatting, {1} = Clan name w/ color
diff --git a/src/main/resources/config/Messages.yml b/src/main/resources/config/Messages.yml
index 975df341..3ed8f71b 100644
--- a/src/main/resources/config/Messages.yml
+++ b/src/main/resources/config/Messages.yml
@@ -23,8 +23,8 @@ Title: '&r- Command help. (&7{label} help #page&r)'
 Border: '&7&m▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬'
 Lines: 7
 Commands:
-  # Make sure users have access to the base permission "clanspro" if allotting only specific permissions.
-  # When you give access to individual perms use "clanspro.your.configured.nodename"
+  # Make sure users have access to the base permission "clans" if allotting only specific permissions.
+  # When you give access to individual perms use "clans.your.configured.nodename"
   create:
     text: '&7|&e) &6{label} &fcreate <&7clanName&f> <&7password&f>'
     permission: 'create'
@@ -506,9 +506,7 @@ menu:
     # Allowed types are: [SINGULAR, PAGINATED, PRINTABLE]
     type: PAGINATED
     # Set this menu's unique identifier, this option is optional but without it the menu cannot cache itself.
-    id: 'ClansPro::clan_name:-members'
-    # ^FIXME change key to start with "Clans::"
-    # -not doing change right now so i don't break anything
+    id: 'Clans::clan_name:-members'
     # Setup an optional filler item for blank slots. (Comment out or remove to not use)
     filler:
       name: ' '
@@ -591,9 +589,7 @@ menu:
           name: '&cExit'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster'
           type: enderpearl
           lore: [ "&f&oClick to escape." ]
         previous:
@@ -623,9 +619,7 @@ menu:
     title: '&3&oComplete Roster &0&l» &0{0}/{1}'
     rows: THREE
     type: PAGINATED
-    id: 'ClansPro:Roster'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster'
     # =======================
     filler:
       name: ' '
@@ -650,9 +644,7 @@ menu:
       lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
       type: clan
       locked: true
-      open: 'ClansPro::clan_name:-members'
-      # ^FIXME change key to start with "Clans:"
-      # -not doing change right now so i don't break anything
+      open: 'Clans::clan_name:-members'
       # =========================
       replacements:
         ':clan_money:': getBalanceDouble
@@ -668,9 +660,7 @@ menu:
           name: '&cExit'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster:Select'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster:Select'
           type: enderpearl
           lore: [ "&f&oClick to escape." ]
         previous:
@@ -684,9 +674,7 @@ menu:
     title: '&3&oTop Clans &0&l» &0{0}/{1}'
     rows: THREE
     type: PAGINATED
-    id: 'ClansPro:Roster:Top'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster:Top'
     # =======================
     filler:
       name: ' '
@@ -711,9 +699,7 @@ menu:
       lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
       type: clan
       locked: true
-      open: 'ClansPro::clan_name:-members'
-      # ^FIXME change key to start with "Clans:"
-      # -not doing change right now so i don't break anything
+      open: 'Clans::clan_name:-members'
       # =========================
       replacements:
         ':clan_money:': getBalanceDouble
@@ -729,9 +715,7 @@ menu:
           name: '&cExit'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster:Select'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster:Select'
           type: enderpearl
           lore: [ "&f&oClick to escape." ]
         previous:
@@ -745,9 +729,7 @@ menu:
     title: '&3Select'
     rows: ONE
     type: SINGULAR
-    id: 'ClansPro:Roster:Select'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster:Select'
     filler:
       name: ' '
       locked: true
@@ -757,9 +739,7 @@ menu:
         slot: 3
         locked: true
         type: goldblock
-        open: 'ClansPro:Roster:Top'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster:Top'
       '&cBack':
         slot: 4
         locked: true
@@ -770,9 +750,7 @@ menu:
         slot: 5
         locked: true
         type: clan
-        open: 'ClansPro:Roster'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster'
   # A clan associates gui screen. Normal placeholders work here as-well.
   # Associate provided placeholders work here:
   # :member_name:  "Get the associates name"
@@ -836,9 +814,7 @@ menu:
         slot: 19
         locked: true
         type: barrier
-        open: 'ClansPro::clan_name:-members'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans::clan_name:-members'
         lore: [ "&c&oClick to go back a step." ]
       '&9Message':
         slot: 22
@@ -868,16 +844,12 @@ menu:
         locked: true
         close: true
         type: goldingot
-        open: 'ClansPro:head-library'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:head-library'
   # A paginated menu containing all loaded heads on the server. NEW!
   head-library:
     title: 'Browse {0}/{1}'
     rows: THREE
-    id: 'ClansPro:head-library'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:head-library'
     type: PAGINATED
     filler:
       name: ' '
@@ -1017,9 +989,7 @@ menu:
           lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
           type: clan
           locked: true
-          open: 'ClansPro::clan_name:-members'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans::clan_name:-members'
           # =========================
           replacements:
             ':clan_money:': getBalanceDouble
@@ -1175,9 +1145,7 @@ menu:
           lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
           type: clan
           locked: true
-          open: 'ClansPro::clan_name:-members'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans::clan_name:-members'
           # =========================
           replacements:
             ':clan_money:': getBalanceDouble
@@ -1434,9 +1402,7 @@ menu:
       '&6Clan Roster':
         slot: 13
         locked: true
-        open: 'ClansPro:Roster:Select'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster:Select'
         type: goldblock
         lore: [ "&fView the clan roster." ]
       '&eCommands':
diff --git a/src/main/resources/config/Messages_es.yml b/src/main/resources/config/Messages_es.yml
index 907ff2ee..630eec80 100644
--- a/src/main/resources/config/Messages_es.yml
+++ b/src/main/resources/config/Messages_es.yml
@@ -23,8 +23,8 @@ Title: '&r- Comandos de ayuda. (&7{label} help #page&r)'
 Border: '&7&m▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬'
 Lines: 5
 Commands:
-  # Make sure users have access to the base permission "clanspro" if allotting only specific permissions.
-  # When you give access to individual perms use "clanspro.your.configured.nodename"
+  # Make sure users have access to the base permission "clans" if allotting only specific permissions.
+  # When you give access to individual perms use "clans.your.configured.nodename"
   create:
     text: '&7|&e) &6{label} &fcreate <&7clanName&f> <&7password&f>'
     permission: 'create'
@@ -508,9 +508,7 @@ menu:
     # Allowed types are: [SINGULAR, PAGINATED, PRINTABLE]
     type: PAGINATED
     # Set this menu's unique identifier, this option is optional but without it the menu cannot cache itself.
-    id: 'ClansPro::clan_name:-members'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans::clan_name:-members'
     # Setup an optional filler item for blank slots. (Comment out or remove to not use)
     filler:
       name: ' '
@@ -593,9 +591,7 @@ menu:
           name: '&cSalir'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster'
           type: enderpearl
           lore: [ "&f&oHaz clic para salir." ]
         previous:
@@ -625,9 +621,7 @@ menu:
     title: '&3&oLista completa &0&l» &0{0}/{1}'
     rows: THREE
     type: PAGINATED
-    id: 'ClansPro:Roster'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster'
     # =======================
     filler:
       name: ' '
@@ -652,9 +646,7 @@ menu:
       lore: [ "&f&m,----------", "Haga clic para los miembros.", "&f&m----------" ]
       type: clan
       locked: true
-      open: 'ClansPro::clan_name:-members'
-      # ^FIXME change key to start with "Clans:"
-      # -not doing change right now so i don't break anything
+      open: 'Clans::clan_name:-members'
       # =========================
       replacements:
         ':clan_money:': getBalanceDouble
@@ -670,9 +662,7 @@ menu:
           name: '&cSalir'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster:Select'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster:Select'
           type: enderpearl
           lore: [ "&f&oClic para salir." ]
         previous:
@@ -686,9 +676,7 @@ menu:
     title: '&3&oLos mejores clanes &0&l» &0{0}/{1}'
     rows: THREE
     type: PAGINATED
-    id: 'ClansPro:Roster:Top'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster:Top'
     # =======================
     filler:
       name: ' '
@@ -713,9 +701,7 @@ menu:
       lore: [ "&f&m,----------", "Haga clic para los miembros.", "&f&m----------" ]
       type: clan
       locked: true
-      open: 'ClansPro::clan_name:-members'
-      # ^FIXME change key to start with "Clans:"
-      # -not doing change right now so i don't break anything
+      open: 'Clans::clan_name:-members'
       # =========================
       replacements:
         ':clan_money:': getBalanceDouble
@@ -731,9 +717,7 @@ menu:
           name: '&cSalir'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster:Select'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster:Select'
           type: enderpearl
           lore: [ "&f&oClic para salir." ]
         previous:
@@ -747,9 +731,7 @@ menu:
     title: '&3Seleccione'
     rows: ONE
     type: SINGULAR
-    id: 'ClansPro:Roster:Select'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster:Select'
     filler:
       name: ' '
       locked: true
@@ -759,9 +741,7 @@ menu:
         slot: 3
         locked: true
         type: goldblock
-        open: 'ClansPro:Roster:Top'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster:Top'
       '&cVolver':
         slot: 4
         locked: true
@@ -772,9 +752,7 @@ menu:
         slot: 5
         locked: true
         type: clan
-        open: 'ClansPro:Roster'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster'
   # A clan associates gui screen. Normal placeholders work here as-well.
   # Associate provided placeholders work here:
   # :member_name:  "Get the associates name"
@@ -838,9 +816,7 @@ menu:
         slot: 19
         locked: true
         type: barrier
-        open: 'ClansPro::clan_name:-members'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans::clan_name:-members'
         lore: [ "&c&oClick para retroceder un paso." ]
       '&9Mensaje':
         slot: 22
@@ -873,9 +849,7 @@ menu:
   head-library:
     title: 'Browse {0}/{1}'
     rows: THREE
-    id: 'ClansPro:head-library'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:head-library'
     type: PAGINATED
     filler:
       name: ' '
@@ -1015,9 +989,7 @@ menu:
           lore: [ "&f&m,----------", "Haga clic para los miembros.", "&f&m----------" ]
           type: clan
           locked: true
-          open: 'ClansPro::clan_name:-members'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans::clan_name:-members'
           # =========================
           replacements:
             ':clan_money:': getBalanceDouble
@@ -1173,9 +1145,7 @@ menu:
           lore: [ "&f&m,----------", "Haga clic para los miembros.", "&f&m----------" ]
           type: clan
           locked: true
-          open: 'ClansPro::clan_name:-members'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans::clan_name:-members'
           # =========================
           replacements:
             ':clan_money:': getBalanceDouble
@@ -1432,9 +1402,7 @@ menu:
       '&6Clan Lista':
         slot: 13
         locked: true
-        open: 'ClansPro:Roster:Select'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster:Select'
         type: goldblock
         lore: [ "&fVer la lista del clan." ]
       '&eComandos':
diff --git a/src/main/resources/config/Messages_pt_br.yml b/src/main/resources/config/Messages_pt_br.yml
index 235be70a..b20b0af3 100644
--- a/src/main/resources/config/Messages_pt_br.yml
+++ b/src/main/resources/config/Messages_pt_br.yml
@@ -23,8 +23,8 @@ Title: '&r- Command help. (&7{label} help #page&r)'
 Border: '&7&m▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬'
 Lines: 5
 Commands:
-  # Make sure users have access to the base permission "clanspro" if allotting only specific permissions.
-  # When you give access to individual perms use "clanspro.your.configured.nodename"
+  # Make sure users have access to the base permission "clans" if allotting only specific permissions.
+  # When you give access to individual perms use "clans.your.configured.nodename"
   create:
     text: '&7|&e) &6{label} &fcreate <&7clanName&f> <&7password&f>'
     permission: 'create'
@@ -504,9 +504,7 @@ menu:
     # Allowed types are: [SINGULAR, PAGINATED, PRINTABLE]
     type: PAGINATED
     # Set this menu's unique identifier, this option is optional but without it the menu cannot cache itself.
-    id: 'ClansPro::clan_name:-members'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans::clan_name:-members'
     # Setup an optional filler item for blank slots. (Comment out or remove to not use)
     filler:
       name: ' '
@@ -589,9 +587,7 @@ menu:
           name: '&cExit'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster'
           type: enderpearl
           lore: [ "&f&oClick to escape." ]
         previous:
@@ -621,9 +617,7 @@ menu:
     title: '&3&oComplete Roster &0&l» &0{0}/{1}'
     rows: THREE
     type: PAGINATED
-    id: 'ClansPro:Roster'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster'
     # =======================
     filler:
       name: ' '
@@ -648,9 +642,7 @@ menu:
       lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
       type: clan
       locked: true
-      open: 'ClansPro::clan_name:-members'
-      # ^FIXME change key to start with "Clans:"
-      # -not doing change right now so i don't break anything
+      open: 'Clans::clan_name:-members'
       # =========================
       replacements:
         ':clan_money:': getBalanceDouble
@@ -666,9 +658,7 @@ menu:
           name: '&cExit'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster:Select'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster:Select'
           type: enderpearl
           lore: [ "&f&oClick to escape." ]
         previous:
@@ -682,9 +672,7 @@ menu:
     title: '&3&oTop Clans &0&l» &0{0}/{1}'
     rows: THREE
     type: PAGINATED
-    id: 'ClansPro:Roster:Top'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster:Top'
     # =======================
     filler:
       name: ' '
@@ -709,9 +697,7 @@ menu:
       lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
       type: clan
       locked: true
-      open: 'ClansPro::clan_name:-members'
-      # ^FIXME change key to start with "Clans:"
-      # -not doing change right now so i don't break anything
+      open: 'Clans::clan_name:-members'
       # =========================
       replacements:
         ':clan_money:': getBalanceDouble
@@ -727,9 +713,7 @@ menu:
           name: '&cExit'
           slot: 22
           locked: true
-          open: 'ClansPro:Roster:Select'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans:Roster:Select'
           type: enderpearl
           lore: [ "&f&oClick to escape." ]
         previous:
@@ -743,9 +727,7 @@ menu:
     title: '&3Select'
     rows: ONE
     type: SINGULAR
-    id: 'ClansPro:Roster:Select'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:Roster:Select'
     filler:
       name: ' '
       locked: true
@@ -755,9 +737,7 @@ menu:
         slot: 3
         locked: true
         type: goldblock
-        open: 'ClansPro:Roster:Top'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster:Top'
       '&cBack':
         slot: 4
         locked: true
@@ -768,9 +748,7 @@ menu:
         slot: 5
         locked: true
         type: clan
-        open: 'ClansPro:Roster'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster'
   # A clan associates gui screen. Normal placeholders work here as-well.
   # Associate provided placeholders work here:
   # :member_name:  "Get the associates name"
@@ -834,9 +812,7 @@ menu:
         slot: 19
         locked: true
         type: barrier
-        open: 'ClansPro::clan_name:-members'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans::clan_name:-members'
         lore: [ "&c&oClick to go back a step." ]
       '&9Message':
         slot: 22
@@ -869,9 +845,7 @@ menu:
   head-library:
     title: 'Browse {0}/{1}'
     rows: THREE
-    id: 'ClansPro:head-library'
-    # ^FIXME change key to start with "Clans:"
-    # -not doing change right now so i don't break anything
+    id: 'Clans:head-library'
     type: PAGINATED
     filler:
       name: ' '
@@ -1011,9 +985,7 @@ menu:
           lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
           type: clan
           locked: true
-          open: 'ClansPro::clan_name:-members'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans::clan_name:-members'
           # =========================
           replacements:
             ':clan_money:': getBalanceDouble
@@ -1169,9 +1141,7 @@ menu:
           lore: [ "&f&m,----------", "Click for members.", "&f&m----------" ]
           type: clan
           locked: true
-          open: 'ClansPro::clan_name:-members'
-          # ^FIXME change key to start with "Clans:"
-          # -not doing change right now so i don't break anything
+          open: 'Clans::clan_name:-members'
           # =========================
           replacements:
             ':clan_money:': getBalanceDouble
@@ -1374,9 +1344,7 @@ menu:
       '&6Clan Roster':
         slot: 13
         locked: true
-        open: 'ClansPro:Roster:Select'
-        # ^FIXME change key to start with "Clans:"
-        # -not doing change right now so i don't break anything
+        open: 'Clans:Roster:Select'
         type: goldblock
         lore: [ "&fView the clan roster." ]
       '&eCommands':
diff --git a/src/main/resources/config/heads.json b/src/main/resources/config/heads.json
index f333a91a..ce30bc84 100644
--- a/src/main/resources/config/heads.json
+++ b/src/main/resources/config/heads.json
@@ -3,19 +3,19 @@
     "1": {
       "custom": true,
       "name": "Clan",
-      "category": "ClansPro",
+      "category": "Clans",
       "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjg1YThiYTRkZThlYjdlMjgzNzRlMDJiMDNjZmRiZTIyYmRjNjAzMWMzNmFjYjJlZWEyZGVkN2RkZWQ4MzE5NCJ9fX0"
     },
     "2": {
       "custom": true,
       "name": "Left_Button",
-      "category": "ClansPro",
+      "category": "Clans",
       "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0"
     },
     "3": {
       "custom": true,
       "name": "Right_Button",
-      "category": "ClansPro",
+      "category": "Clans",
       "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgyYWQxYjljYjRkZDIxMjU5YzBkNzVhYTMxNWZmMzg5YzNjZWY3NTJiZTM5NDkzMzgxNjRiYWM4NGE5NmUifX19"
     }
   }