Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/main/java/net/zyuiop/rpmachine/RPMachine.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import net.zyuiop.rpmachine.cities.commands.CommandRuntaxes;
import net.zyuiop.rpmachine.cities.commands.PlotCommand;
import net.zyuiop.rpmachine.cities.listeners.CitiesListener;
import net.zyuiop.rpmachine.claims.Claims;
import net.zyuiop.rpmachine.claims.ClaimsListener;
import net.zyuiop.rpmachine.commands.*;
import net.zyuiop.rpmachine.common.PlayerHeadCraft;
import net.zyuiop.rpmachine.common.listeners.PlayerListener;
Expand Down Expand Up @@ -53,6 +55,7 @@ public class RPMachine extends JavaPlugin {
private ShopsManager shopsManager;
private MultiverseManager multiverseManager;
private DiscordManager discordManager;
private Claims claims;

public static RPMachine getInstance() {
return instance;
Expand Down Expand Up @@ -132,6 +135,8 @@ private void start() {
this.multiverseManager = new MultiverseManager();
this.discordManager = new DiscordManager(getConfig().getString("discord.token"));

this.claims = new Claims(this);

// Load DB
if (!loadDatabase()) {
getLogger().severe("Cannot load DB, shutting down.");
Expand Down Expand Up @@ -170,6 +175,7 @@ private void start() {
Bukkit.getPluginManager().registerEvents(new SignsListener(), this);
Bukkit.getPluginManager().registerEvents(new CitiesListener(citiesManager), this);
Bukkit.getPluginManager().registerEvents(new PlayerHeadCraft(), this);
Bukkit.getPluginManager().registerEvents(new ClaimsListener(claims), this);
// Bukkit.getPluginManager().registerEvents(new MendingListener(), this);


Expand Down Expand Up @@ -285,10 +291,8 @@ public void onDisable() {
super.onDisable();
}

public static Plot getPlotHere(Location location) {
City c = instance.citiesManager.getCityHere(location.getChunk());

return c == null ? instance.projectsManager.getZoneHere(location) : c.getPlotHere(location);
public Claims getClaims() {
return claims;
}

public ScoreboardManager getScoreboardManager() {
Expand Down
55 changes: 9 additions & 46 deletions src/main/java/net/zyuiop/rpmachine/cities/CitiesManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import com.google.common.collect.ImmutableSet;
import net.zyuiop.rpmachine.RPMachine;
import net.zyuiop.rpmachine.claims.Claim;
import net.zyuiop.rpmachine.claims.ClaimCollectionRegistry;
import net.zyuiop.rpmachine.claims.ClaimRegistry;
import net.zyuiop.rpmachine.common.VirtualChunk;
import net.zyuiop.rpmachine.database.filestorage.FileEntityStore;
import net.zyuiop.rpmachine.entities.LegalEntityRepository;
Expand All @@ -19,7 +22,7 @@
import java.util.function.DoubleFunction;
import java.util.stream.Collectors;

public class CitiesManager extends FileEntityStore<City> implements LegalEntityRepository<City> {
public class CitiesManager extends FileEntityStore<City> implements LegalEntityRepository<City>, ClaimCollectionRegistry {
public static final Set<ChatColor> ALLOWED_COLORS = ImmutableSet.of(
ChatColor.YELLOW, ChatColor.DARK_AQUA, ChatColor.AQUA, ChatColor.GREEN, ChatColor.DARK_GREEN, ChatColor.LIGHT_PURPLE, ChatColor.DARK_PURPLE, ChatColor.DARK_GRAY, ChatColor.GRAY,
ChatColor.BLUE, ChatColor.GOLD
Expand Down Expand Up @@ -133,51 +136,6 @@ public City getCityHere(Chunk chunk) {
return null;
}

public boolean canBuild(Player player, Location location) {
if (bypass.contains(player.getUniqueId()))
return true;

if (location.getWorld().getName().equals("world")) {
City city = getCityHere(location.getChunk());

if (city == null) {
return RPMachine.getInstance().getProjectsManager().canBuild(player, location);
}
return city.canBuild(player, location);
} else {
return RPMachine.getInstance().getProjectsManager().canBuild(player, location);
}
}

public boolean isProtected(Location location) {
if (location.getWorld().getName().equals("world")) {
City city = getCityHere(location.getChunk());

if (city == null) {
return RPMachine.getInstance().getProjectsManager().isProtected(location);
}
return true;
} else {
return false;
}
}

public boolean canInteractWithBlock(Player player, Location location) {
if (bypass.contains(player.getUniqueId()))
return true;

if (location.getWorld().getName().equals("world")) {
City city = getCityHere(location.getChunk());

if (city == null) {
return RPMachine.getInstance().getProjectsManager().canInteractWithBlock(player, location);
}
return city.canInteractWithBlock(player, location);
} else {
return RPMachine.getInstance().getProjectsManager().canInteractWithBlock(player, location);
}
}

public double getCreationPrice() {
return f.roundedPrice(cities.size());
}
Expand Down Expand Up @@ -240,6 +198,11 @@ public void saveCity(City city) {
super.saveEntity(city);
}

@Override
public Collection<? extends Claim> getClaims() {
return getCities();
}

public class CreationPriceFunction {
final DoubleFunction<Double> baseFunc;
final double ROUND_NEAREST = 100D;
Expand Down
Loading