Skip to content

Commit

Permalink
Adopt plot group .id to .uuid changes. (#6139)
Browse files Browse the repository at this point in the history
* Adopt plot group .id to .uuid changes.

* Feedback from Warrior
  • Loading branch information
LlmDl authored Aug 29, 2022
1 parent f74d0bc commit 64b1bd5
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 33 deletions.
29 changes: 18 additions & 11 deletions src/com/palmergames/bukkit/towny/TownyUniverse.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public class TownyUniverse {
private final Trie nationsTrie = new Trie();

private final Map<String, TownyWorld> worlds = new ConcurrentHashMap<>();
private final Map<UUID, TownyWorld> worldIDMap = new ConcurrentHashMap<>();
private final Map<UUID, TownyWorld> worldUUIDMap = new ConcurrentHashMap<>();

private final Map<String, CustomDataField<?>> registeredMetadata = new HashMap<>();
private final Map<WorldCoord, TownBlock> townBlocks = new ConcurrentHashMap<>();
Expand Down Expand Up @@ -531,7 +531,7 @@ public void newTown(@NotNull String name) throws AlreadyRegisteredException, Inv
}

private void newTown(String name, boolean assignUUID) throws AlreadyRegisteredException, InvalidNameException {
String filteredName = NameValidation.checkAndFilterName(name);;
String filteredName = NameValidation.checkAndFilterName(name);

Town town = new Town(filteredName, assignUUID ? UUID.randomUUID() : null);
registerTown(town);
Expand Down Expand Up @@ -751,21 +751,21 @@ public void newWorld(@NotNull World world) {

public void registerTownyWorld(@NotNull TownyWorld world) {
Preconditions.checkNotNull(world, "World cannot be null!");
worldIDMap.putIfAbsent(world.getUUID(), world);
worldUUIDMap.putIfAbsent(world.getUUID(), world);
worlds.putIfAbsent(world.getName().toLowerCase(Locale.ROOT), world);
}

public Map<UUID, TownyWorld> getWorldIDMap() {
return worldIDMap;
return worldUUIDMap;
}

@Nullable
public TownyWorld getWorld(UUID uuid) {
return worldIDMap.get(uuid);
return worldUUIDMap.get(uuid);
}

public Set<UUID> getWorldUUIDs() {
return worldIDMap.keySet();
return worldUUIDMap.keySet();
}

public Map<String, TownyWorld> getWorldMap() {
Expand Down Expand Up @@ -841,19 +841,22 @@ private String getTreeDepth(int depth) {
* Used in loading only.
* @param uuid UUID to assign to the PlotGroup.
*/
public void newPlotGroupInternal(String uuid) {
PlotGroup group = new PlotGroup(UUID.fromString(uuid), null, null);
public void newPlotGroupInternal(UUID uuid) {
PlotGroup group = new PlotGroup(uuid, null, null);
registerGroup(group);
}


public void registerGroup(PlotGroup group) {
plotGroupUUIDMap.put(group.getID(), group);
plotGroupUUIDMap.put(group.getUUID(), group);
}

public void unregisterGroup(PlotGroup group) {
public void unregisterGroup(UUID uuid) {
PlotGroup group = plotGroupUUIDMap.get(uuid);
if (group == null)
return;
group.getTown().removePlotGroup(group);
plotGroupUUIDMap.remove(group.getID());
plotGroupUUIDMap.remove(uuid);
}

/**
Expand All @@ -866,6 +869,10 @@ public Collection<PlotGroup> getGroups() {
return new ArrayList<>(plotGroupUUIDMap.values());
}

public Set<UUID> getPlotGroupUUIDs() {
return plotGroupUUIDMap.keySet();
}

/**
* Gets the plot group from the town name and the plot group UUID
*
Expand Down
2 changes: 1 addition & 1 deletion src/com/palmergames/bukkit/towny/db/TownyDataSource.java
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ public boolean loadPlotGroups() {
TownyMessaging.sendDebugMsg("Loading PlotGroups");
for (PlotGroup group : universe.getGroups()) {
if (!loadPlotGroup(group)) {
plugin.getLogger().severe("Loading Error: Could not read PlotGroup data: '" + group.getID() + "'.");
plugin.getLogger().severe("Loading Error: Could not read PlotGroup data: '" + group.getUUID() + "'.");
return false;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -698,7 +698,7 @@ public void removeJail(Jail jail) {

@Override
public void removePlotGroup(PlotGroup group) {
universe.unregisterGroup(group);
universe.unregisterGroup(group.getUUID());
deletePlotGroup(group);
}

Expand Down
6 changes: 3 additions & 3 deletions src/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public String getTownBlockFilename(TownBlock townBlock) {
}

public String getPlotGroupFilename(PlotGroup group) {
return dataFolderPath + File.separator + "plotgroups" + File.separator + group.getID() + ".data";
return dataFolderPath + File.separator + "plotgroups" + File.separator + group.getUUID() + ".data";
}

public String getJailFilename(Jail jail) {
Expand Down Expand Up @@ -188,7 +188,7 @@ public boolean loadPlotGroupList() {
return true;

for (File plotGroup : plotGroupFiles)
universe.newPlotGroupInternal(plotGroup.getName().replace(".data", ""));
universe.newPlotGroupInternal(UUID.fromString(plotGroup.getName().replace(".data", "")));

return true;
}
Expand Down Expand Up @@ -2299,7 +2299,7 @@ public boolean saveTownBlock(TownBlock townBlock) {
// Group ID
StringBuilder groupID = new StringBuilder();
if (townBlock.hasPlotObjectGroup()) {
groupID.append(townBlock.getPlotObjectGroup().getID());
groupID.append(townBlock.getPlotObjectGroup().getUUID());
}

list.add("groupID=" + groupID);
Expand Down
10 changes: 5 additions & 5 deletions src/com/palmergames/bukkit/towny/db/TownySQLSource.java
Original file line number Diff line number Diff line change
Expand Up @@ -632,7 +632,7 @@ public boolean loadPlotGroupList() {
ResultSet rs = s.executeQuery("SELECT groupID FROM " + tb_prefix + "PLOTGROUPS");

while (rs.next()) {
universe.newPlotGroupInternal(rs.getString("groupID"));
universe.newPlotGroupInternal(UUID.fromString(rs.getString("groupID")));
}
}

Expand Down Expand Up @@ -1922,7 +1922,7 @@ private boolean loadPlotGroup(ResultSet rs) {
TownyMessaging.sendErrorMsg("SQL: A plot group was not registered properly on load!");
return true;
}
uuid = group.getID().toString();
uuid = group.getUUID().toString();

line = rs.getString("groupName");
if (line != null)
Expand Down Expand Up @@ -2224,7 +2224,7 @@ public synchronized boolean savePlotGroup(PlotGroup group) {
TownyMessaging.sendDebugMsg("Saving group " + group.getName());
try {
HashMap<String, Object> pltgrp_hm = new HashMap<>();
pltgrp_hm.put("groupID", group.getID());
pltgrp_hm.put("groupID", group.getUUID().toString());
pltgrp_hm.put("groupName", group.getName());
pltgrp_hm.put("groupPrice", group.getPrice());
pltgrp_hm.put("town", group.getTown().toString());
Expand Down Expand Up @@ -2424,7 +2424,7 @@ public synchronized boolean saveTownBlock(TownBlock townBlock) {
tb_hm.put("changed", townBlock.isChanged());
tb_hm.put("claimedAt", townBlock.getClaimedAt());
if (townBlock.hasPlotObjectGroup())
tb_hm.put("groupID", townBlock.getPlotObjectGroup().getID().toString());
tb_hm.put("groupID", townBlock.getPlotObjectGroup().getUUID().toString());
else
tb_hm.put("groupID", "");
if (townBlock.hasMeta())
Expand Down Expand Up @@ -2533,7 +2533,7 @@ public void deleteTownBlock(TownBlock townBlock) {
public void deletePlotGroup(PlotGroup group) {

HashMap<String, Object> pltgrp_hm = new HashMap<>();
pltgrp_hm.put("groupID", group.getID());
pltgrp_hm.put("groupID", group.getUUID());
DeleteDB("PLOTGROUPS", pltgrp_hm);
}

Expand Down
26 changes: 18 additions & 8 deletions src/com/palmergames/bukkit/towny/object/ObjectGroup.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
*
* @author Suneet Tipirneni (Siris)
*/
public abstract class ObjectGroup implements Nameable {
private UUID id;
public abstract class ObjectGroup implements Nameable, Identifiable {
private UUID uuid;
private String name;

/**
Expand All @@ -17,16 +17,26 @@ public abstract class ObjectGroup implements Nameable {
* @param name An alias for the id used for player in-game interaction via commands.
*/
public ObjectGroup(UUID id, String name) {
this.id = id;
this.uuid = id;
this.name = name;
}

@Deprecated
public UUID getID() {
return id;
return uuid;
}

@Deprecated
public void setID(UUID ID) {
this.id = ID;
this.uuid = ID;
}

public UUID getUUID() {
return uuid;
}

public void setUUID(UUID id) {
this.uuid = id;
}

@Override
Expand All @@ -45,7 +55,7 @@ public String getName() {
@Override
public boolean equals(Object obj) {
if (obj instanceof ObjectGroup) {
return ((ObjectGroup) obj).id.equals(this.id);
return ((ObjectGroup) obj).uuid.equals(this.uuid);
}
return false;
}
Expand All @@ -56,7 +66,7 @@ public boolean equals(Object obj) {
*/
@Override
public String toString() {
return name + "," + id;
return name + "," + uuid;
}

/**
Expand All @@ -67,6 +77,6 @@ public String toString() {
*/
@Override
public int hashCode() {
return id.hashCode();
return uuid.hashCode();
}
}
2 changes: 1 addition & 1 deletion src/com/palmergames/bukkit/towny/object/Town.java
Original file line number Diff line number Diff line change
Expand Up @@ -1287,7 +1287,7 @@ public void addPlotGroup(PlotGroup group) {
public void removePlotGroup(PlotGroup plotGroup) {
if (hasPlotGroups() && plotGroups.remove(plotGroup.getName()) != null) {
for (TownBlock tb : new ArrayList<>(plotGroup.getTownBlocks())) {
if (tb.hasPlotObjectGroup() && tb.getPlotObjectGroup().getID().equals(plotGroup.getID())) {
if (tb.hasPlotObjectGroup() && tb.getPlotObjectGroup().getUUID().equals(plotGroup.getUUID())) {
plotGroup.removeTownBlock(tb);
tb.removePlotObjectGroup();
tb.save();
Expand Down
6 changes: 3 additions & 3 deletions src/com/palmergames/bukkit/util/BukkitTools.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,15 +116,15 @@ public static boolean isOnline(String name) {
}

public static List<World> getWorlds() {
return getServer().getWorlds();
return getServer().getWorlds();
}

public static World getWorld(String name) {
return getServer().getWorld(name);
return getServer().getWorld(name);
}

public static World getWorld(UUID worldUID) {
return getServer().getWorld(worldUID);
return getServer().getWorld(worldUID);
}

public static Server getServer() {
Expand Down

0 comments on commit 64b1bd5

Please sign in to comment.