mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-09-04 00:32:42 +02:00
Replace RunnableVal with java Consumer
Signed-off-by: matt <4009945+MattBDev@users.noreply.github.com>
This commit is contained in:
parent
2e22dfe056
commit
b7aeeb151d
|
@ -2,6 +2,8 @@ package com.github.intellectualsites.plotsquared.commands;
|
|||
|
||||
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public abstract class Argument<T> {
|
||||
|
||||
public static final Argument<Integer> Integer = new Argument<Integer>("int", 16) {
|
||||
|
@ -17,11 +19,9 @@ public abstract class Argument<T> {
|
|||
public static final Argument<Boolean> Boolean = new Argument<Boolean>("boolean", true) {
|
||||
@Override public Boolean parse(String in) {
|
||||
Boolean value = null;
|
||||
if (in.equalsIgnoreCase("true") || in.equalsIgnoreCase("Yes") || in
|
||||
.equalsIgnoreCase("1")) {
|
||||
if (Stream.of("true", "Yes", "1").anyMatch(in::equalsIgnoreCase)) {
|
||||
value = true;
|
||||
} else if (in.equalsIgnoreCase("false") || in.equalsIgnoreCase("No") || in
|
||||
.equalsIgnoreCase("0")) {
|
||||
} else if (Stream.of("false", "No", "0").anyMatch(in::equalsIgnoreCase)) {
|
||||
value = false;
|
||||
}
|
||||
return value;
|
||||
|
|
|
@ -30,7 +30,6 @@ import lombok.Getter;
|
|||
import lombok.NonNull;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.*;
|
||||
import java.net.MalformedURLException;
|
||||
|
@ -342,12 +341,10 @@ import java.util.zip.ZipInputStream;
|
|||
debug("Starting UUID caching");
|
||||
UUIDHandler.startCaching(() -> {
|
||||
UUIDHandler.add(new StringWrapper("*"), DBFunc.EVERYONE);
|
||||
foreachPlotRaw(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot plot) {
|
||||
if (plot.hasOwner() && plot.temp != -1) {
|
||||
if (UUIDHandler.getName(plot.owner) == null) {
|
||||
UUIDHandler.implementation.unknown.add(plot.owner);
|
||||
}
|
||||
forEachPlotRaw(plot -> {
|
||||
if (plot.hasOwner() && plot.temp != -1) {
|
||||
if (UUIDHandler.getName(plot.owner) == null) {
|
||||
UUIDHandler.implementation.unknown.add(plot.owner);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -516,14 +513,12 @@ import java.util.zip.ZipInputStream;
|
|||
public Set<Plot> getBasePlots() {
|
||||
int size = getPlotCount();
|
||||
final Set<Plot> result = new HashSet<>(size);
|
||||
foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
for (Plot plot : value.getPlots()) {
|
||||
if (!plot.isBasePlot()) {
|
||||
continue;
|
||||
}
|
||||
result.add(plot);
|
||||
forEachPlotArea(value -> {
|
||||
for (Plot plot : value.getPlots()) {
|
||||
if (!plot.isBasePlot()) {
|
||||
continue;
|
||||
}
|
||||
result.add(plot);
|
||||
}
|
||||
});
|
||||
return Collections.unmodifiableSet(result);
|
||||
|
@ -784,23 +779,21 @@ import java.util.zip.ZipInputStream;
|
|||
*/
|
||||
public Set<Plot> getPlots(final PlotFilter... filters) {
|
||||
final HashSet<Plot> set = new HashSet<>();
|
||||
foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
forEachPlotArea(value -> {
|
||||
for (PlotFilter filter : filters) {
|
||||
if (!filter.allowsArea(value)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
loop:
|
||||
for (Entry<PlotId, Plot> entry2 : value.getPlotEntries()) {
|
||||
Plot plot = entry2.getValue();
|
||||
for (PlotFilter filter : filters) {
|
||||
if (!filter.allowsArea(value)) {
|
||||
return;
|
||||
if (!filter.allowsPlot(plot)) {
|
||||
continue loop;
|
||||
}
|
||||
}
|
||||
loop:
|
||||
for (Entry<PlotId, Plot> entry2 : value.getPlotEntries()) {
|
||||
Plot plot = entry2.getValue();
|
||||
for (PlotFilter filter : filters) {
|
||||
if (!filter.allowsPlot(plot)) {
|
||||
continue loop;
|
||||
}
|
||||
}
|
||||
set.add(plot);
|
||||
}
|
||||
set.add(plot);
|
||||
}
|
||||
});
|
||||
return set;
|
||||
|
@ -814,11 +807,7 @@ import java.util.zip.ZipInputStream;
|
|||
public Set<Plot> getPlots() {
|
||||
int size = getPlotCount();
|
||||
final Set<Plot> result = new HashSet<>(size);
|
||||
foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
result.addAll(value.getPlots());
|
||||
}
|
||||
});
|
||||
forEachPlotArea(value -> result.addAll(value.getPlots()));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -935,11 +924,7 @@ import java.util.zip.ZipInputStream;
|
|||
|
||||
public Collection<Plot> getPlots(String world) {
|
||||
final Set<Plot> set = new HashSet<>();
|
||||
foreachPlotArea(world, new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
set.addAll(value.getPlots());
|
||||
}
|
||||
});
|
||||
forEachPlotArea(world, value -> set.addAll(value.getPlots()));
|
||||
return set;
|
||||
}
|
||||
|
||||
|
@ -973,11 +958,9 @@ import java.util.zip.ZipInputStream;
|
|||
*/
|
||||
public Set<Plot> getPlots(final UUID uuid) {
|
||||
final Set<Plot> plots = new HashSet<>();
|
||||
foreachPlot(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot value) {
|
||||
if (value.isOwnerAbs(uuid)) {
|
||||
plots.add(value);
|
||||
}
|
||||
forEachPlot(value -> {
|
||||
if (value.isOwnerAbs(uuid)) {
|
||||
plots.add(value);
|
||||
}
|
||||
});
|
||||
return Collections.unmodifiableSet(plots);
|
||||
|
@ -990,11 +973,9 @@ import java.util.zip.ZipInputStream;
|
|||
|
||||
public Set<Plot> getBasePlots(final UUID uuid) {
|
||||
final Set<Plot> plots = new HashSet<>();
|
||||
foreachBasePlot(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot value) {
|
||||
if (value.isOwner(uuid)) {
|
||||
plots.add(value);
|
||||
}
|
||||
forEachBasePlot(value -> {
|
||||
if (value.isOwner(uuid)) {
|
||||
plots.add(value);
|
||||
}
|
||||
});
|
||||
return Collections.unmodifiableSet(plots);
|
||||
|
@ -1008,11 +989,9 @@ import java.util.zip.ZipInputStream;
|
|||
*/
|
||||
public Set<Plot> getPlotsAbs(final UUID uuid) {
|
||||
final Set<Plot> plots = new HashSet<>();
|
||||
foreachPlot(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot value) {
|
||||
if (value.isOwnerAbs(uuid)) {
|
||||
plots.add(value);
|
||||
}
|
||||
forEachPlot(value -> {
|
||||
if (value.isOwnerAbs(uuid)) {
|
||||
plots.add(value);
|
||||
}
|
||||
});
|
||||
return Collections.unmodifiableSet(plots);
|
||||
|
@ -1538,11 +1517,7 @@ import java.util.zip.ZipInputStream;
|
|||
// Validate that all data in the db is correct
|
||||
final HashSet<Plot> plots = new HashSet<>();
|
||||
try {
|
||||
foreachPlotRaw(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot value) {
|
||||
plots.add(value);
|
||||
}
|
||||
});
|
||||
forEachPlotRaw(plots::add);
|
||||
} catch (final Exception ignored) {
|
||||
}
|
||||
DBFunc.validatePlots(plots);
|
||||
|
@ -1824,43 +1799,36 @@ import java.util.zip.ZipInputStream;
|
|||
}
|
||||
}
|
||||
|
||||
public void foreachPlotArea(@Nonnull final RunnableVal<PlotArea> runnable) {
|
||||
for (final PlotArea area : this.plotAreaManager.getAllPlotAreas()) {
|
||||
runnable.run(area);
|
||||
}
|
||||
}
|
||||
|
||||
public void foreachPlotArea(@NonNull final String world,
|
||||
@NonNull final RunnableVal<PlotArea> runnable) {
|
||||
public void forEachPlotArea(@NonNull final String world, Consumer<PlotArea> runnable) {
|
||||
final PlotArea[] array = this.plotAreaManager.getPlotAreas(world, null);
|
||||
if (array == null) {
|
||||
return;
|
||||
}
|
||||
for (final PlotArea area : array) {
|
||||
runnable.run(area);
|
||||
runnable.accept(area);
|
||||
}
|
||||
}
|
||||
|
||||
public void foreachPlot(@NonNull final RunnableVal<Plot> runnable) {
|
||||
public void forEachPlot(Consumer<Plot> runnable) {
|
||||
for (final PlotArea area : this.plotAreaManager.getAllPlotAreas()) {
|
||||
area.getPlots().forEach(runnable::run);
|
||||
area.getPlots().forEach(runnable);
|
||||
}
|
||||
}
|
||||
|
||||
public void foreachPlotRaw(@NonNull final RunnableVal<Plot> runnable) {
|
||||
public void forEachPlotRaw(Consumer<Plot> runnable) {
|
||||
for (final PlotArea area : this.plotAreaManager.getAllPlotAreas()) {
|
||||
area.getPlots().forEach(runnable::run);
|
||||
area.getPlots().forEach(runnable);
|
||||
}
|
||||
if (this.plots_tmp != null) {
|
||||
for (final HashMap<PlotId, Plot> entry : this.plots_tmp.values()) {
|
||||
entry.values().forEach(runnable::run);
|
||||
entry.values().forEach(runnable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void foreachBasePlot(@NonNull final RunnableVal<Plot> run) {
|
||||
public void forEachBasePlot(Consumer<Plot> run) {
|
||||
for (final PlotArea area : this.plotAreaManager.getAllPlotAreas()) {
|
||||
area.foreachBasePlot(run);
|
||||
area.forEachBasePlot(run);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,27 +46,23 @@ import java.util.Set;
|
|||
final double price = flag.get();
|
||||
checkTrue(player.getMoney() >= price, C.CANNOT_AFFORD_PLOT);
|
||||
player.withdraw(price);
|
||||
confirm.run(this, new Runnable() {
|
||||
@Override // Success
|
||||
public void run() {
|
||||
C.REMOVED_BALANCE.send(player, price);
|
||||
EconHandler.manager
|
||||
.depositMoney(UUIDHandler.getUUIDWrapper().getOfflinePlayer(plot.owner), price);
|
||||
PlotPlayer owner = UUIDHandler.getPlayer(plot.owner);
|
||||
if (owner != null) {
|
||||
C.PLOT_SOLD.send(owner, plot.getId(), player.getName(), price);
|
||||
}
|
||||
plot.removeFlag(Flags.PRICE);
|
||||
plot.setOwner(player.getUUID());
|
||||
C.CLAIMED.send(player);
|
||||
whenDone.run(Buy.this, CommandResult.SUCCESS);
|
||||
}
|
||||
}, new Runnable() {
|
||||
@Override // Failure
|
||||
public void run() {
|
||||
player.deposit(price);
|
||||
whenDone.run(Buy.this, CommandResult.FAILURE);
|
||||
// Failure
|
||||
// Success
|
||||
confirm.run(this, () -> {
|
||||
C.REMOVED_BALANCE.send(player, price);
|
||||
EconHandler.manager
|
||||
.depositMoney(UUIDHandler.getUUIDWrapper().getOfflinePlayer(plot.owner), price);
|
||||
PlotPlayer owner = UUIDHandler.getPlayer(plot.owner);
|
||||
if (owner != null) {
|
||||
C.PLOT_SOLD.send(owner, plot.getId(), player.getName(), price);
|
||||
}
|
||||
plot.removeFlag(Flags.PRICE);
|
||||
plot.setOwner(player.getUUID());
|
||||
C.CLAIMED.send(player);
|
||||
whenDone.run(Buy.this, CommandResult.SUCCESS);
|
||||
}, () -> {
|
||||
player.deposit(price);
|
||||
whenDone.run(Buy.this, CommandResult.FAILURE);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.github.intellectualsites.plotsquared.plot.util.*;
|
|||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@CommandDeclaration(command = "setowner", permission = "plots.set.owner",
|
||||
description = "Set the plot owner", usage = "/plot setowner <player>",
|
||||
|
@ -31,8 +32,7 @@ import java.util.UUID;
|
|||
name = name == null ? value : name;
|
||||
}
|
||||
if (uuid == null || value.equalsIgnoreCase("-")) {
|
||||
if (value.equalsIgnoreCase("none") || value.equalsIgnoreCase("null") || value
|
||||
.equalsIgnoreCase("-")) {
|
||||
if (Stream.of("none", "null", "-").anyMatch(value::equalsIgnoreCase)) {
|
||||
if (!Permissions
|
||||
.hasPermission(player, C.PERMISSION_ADMIN_COMMAND_SETOWNER.s(), true)) {
|
||||
return false;
|
||||
|
|
|
@ -6,9 +6,7 @@ import com.github.intellectualsites.plotsquared.configuration.MemorySection;
|
|||
import com.github.intellectualsites.plotsquared.configuration.file.YamlConfiguration;
|
||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||
import com.github.intellectualsites.plotsquared.plot.config.C;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.PlotArea;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -24,53 +22,51 @@ import java.util.Objects;
|
|||
// loaded during startup unfortunately.
|
||||
PlotSquared.get().setupConfigs();
|
||||
C.load(PlotSquared.get().translationFile);
|
||||
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea area) {
|
||||
ConfigurationSection worldSection = PlotSquared.get().worlds
|
||||
.getConfigurationSection("worlds." + area.worldname);
|
||||
if (worldSection == null) {
|
||||
return;
|
||||
PlotSquared.get().forEachPlotArea(area -> {
|
||||
ConfigurationSection worldSection =
|
||||
PlotSquared.get().worlds.getConfigurationSection("worlds." + area.worldname);
|
||||
if (worldSection == null) {
|
||||
return;
|
||||
}
|
||||
if (area.TYPE != 2 || !worldSection.contains("areas")) {
|
||||
area.saveConfiguration(worldSection);
|
||||
area.loadDefaultConfiguration(worldSection);
|
||||
} else {
|
||||
ConfigurationSection areaSection = worldSection.getConfigurationSection(
|
||||
"areas." + area.id + "-" + area.getMin() + "-" + area.getMax());
|
||||
YamlConfiguration clone = new YamlConfiguration();
|
||||
for (String key : areaSection.getKeys(true)) {
|
||||
if (areaSection.get(key) instanceof MemorySection) {
|
||||
continue;
|
||||
}
|
||||
if (!clone.contains(key)) {
|
||||
clone.set(key, areaSection.get(key));
|
||||
}
|
||||
}
|
||||
if (area.TYPE != 2 || !worldSection.contains("areas")) {
|
||||
area.saveConfiguration(worldSection);
|
||||
area.loadDefaultConfiguration(worldSection);
|
||||
} else {
|
||||
ConfigurationSection areaSection = worldSection.getConfigurationSection(
|
||||
"areas." + area.id + "-" + area.getMin() + "-" + area.getMax());
|
||||
YamlConfiguration clone = new YamlConfiguration();
|
||||
for (String key : areaSection.getKeys(true)) {
|
||||
if (areaSection.get(key) instanceof MemorySection) {
|
||||
continue;
|
||||
}
|
||||
if (!clone.contains(key)) {
|
||||
clone.set(key, areaSection.get(key));
|
||||
}
|
||||
for (String key : worldSection.getKeys(true)) {
|
||||
if (worldSection.get(key) instanceof MemorySection) {
|
||||
continue;
|
||||
}
|
||||
for (String key : worldSection.getKeys(true)) {
|
||||
if (worldSection.get(key) instanceof MemorySection) {
|
||||
continue;
|
||||
}
|
||||
if (!key.startsWith("areas") && !clone.contains(key)) {
|
||||
clone.set(key, worldSection.get(key));
|
||||
}
|
||||
if (!key.startsWith("areas") && !clone.contains(key)) {
|
||||
clone.set(key, worldSection.get(key));
|
||||
}
|
||||
area.saveConfiguration(clone);
|
||||
// netSections is the combination of
|
||||
for (String key : clone.getKeys(true)) {
|
||||
if (clone.get(key) instanceof MemorySection) {
|
||||
continue;
|
||||
}
|
||||
if (!worldSection.contains(key)) {
|
||||
worldSection.set(key, clone.get(key));
|
||||
} else {
|
||||
Object value = worldSection.get(key);
|
||||
if (Objects.equals(value, clone.get(key))) {
|
||||
areaSection.set(key, clone.get(key));
|
||||
}
|
||||
}
|
||||
}
|
||||
area.loadDefaultConfiguration(clone);
|
||||
}
|
||||
area.saveConfiguration(clone);
|
||||
// netSections is the combination of
|
||||
for (String key : clone.getKeys(true)) {
|
||||
if (clone.get(key) instanceof MemorySection) {
|
||||
continue;
|
||||
}
|
||||
if (!worldSection.contains(key)) {
|
||||
worldSection.set(key, clone.get(key));
|
||||
} else {
|
||||
Object value = worldSection.get(key);
|
||||
if (Objects.equals(value, clone.get(key))) {
|
||||
areaSection.set(key, clone.get(key));
|
||||
}
|
||||
}
|
||||
}
|
||||
area.loadDefaultConfiguration(clone);
|
||||
}
|
||||
});
|
||||
PlotSquared.get().worlds.save(PlotSquared.get().worldsFile);
|
||||
|
|
|
@ -61,21 +61,19 @@ import java.util.UUID;
|
|||
checkTrue(!uuids.isEmpty(), null);
|
||||
checkTrue(size <= plot.getArea().MAX_PLOT_MEMBERS || Permissions
|
||||
.hasPermission(player, C.PERMISSION_ADMIN_COMMAND_TRUST), C.PLOT_MAX_MEMBERS);
|
||||
confirm.run(this, new Runnable() {
|
||||
@Override // Success
|
||||
public void run() {
|
||||
for (UUID uuid : uuids) {
|
||||
if (uuid != DBFunc.EVERYONE) {
|
||||
if (!plot.removeMember(uuid)) {
|
||||
if (plot.getDenied().contains(uuid)) {
|
||||
plot.removeDenied(uuid);
|
||||
}
|
||||
// Success
|
||||
confirm.run(this, () -> {
|
||||
for (UUID uuid : uuids) {
|
||||
if (uuid != DBFunc.EVERYONE) {
|
||||
if (!plot.removeMember(uuid)) {
|
||||
if (plot.getDenied().contains(uuid)) {
|
||||
plot.removeDenied(uuid);
|
||||
}
|
||||
}
|
||||
plot.addTrusted(uuid);
|
||||
EventUtil.manager.callTrusted(player, plot, uuid, true);
|
||||
MainUtil.sendMessage(player, C.TRUSTED_ADDED);
|
||||
}
|
||||
plot.addTrusted(uuid);
|
||||
EventUtil.manager.callTrusted(player, plot, uuid, true);
|
||||
MainUtil.sendMessage(player, C.TRUSTED_ADDED);
|
||||
}
|
||||
}, null);
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
package com.github.intellectualsites.plotsquared.plot.flag;
|
||||
|
||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.PlotArea;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.MathMan;
|
||||
import com.github.intellectualsites.plotsquared.plot.util.StringMan;
|
||||
|
@ -163,42 +160,37 @@ public final class Flags {
|
|||
public static void registerFlag(final Flag<?> flag) {
|
||||
final Flag<?> duplicate = flags.put(flag.getName(), flag);
|
||||
if (duplicate != null) {
|
||||
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
Object remove;
|
||||
if (value.DEFAULT_FLAGS.containsKey(duplicate)) {
|
||||
remove = value.DEFAULT_FLAGS.remove(duplicate);
|
||||
try {
|
||||
if (remove instanceof Collection
|
||||
&& remove.getClass().getMethod("toString").getDeclaringClass()
|
||||
== Object.class) {
|
||||
value.DEFAULT_FLAGS.put(flag,
|
||||
flag.parseValue(StringMan.join((Collection) remove, ',')));
|
||||
} else {
|
||||
value.DEFAULT_FLAGS.put(flag, flag.parseValue("" + remove));
|
||||
}
|
||||
} catch (NoSuchMethodException neverHappens) {
|
||||
neverHappens.printStackTrace();
|
||||
PlotSquared.get().forEachPlotArea(value -> {
|
||||
if (value.DEFAULT_FLAGS.containsKey(duplicate)) {
|
||||
Object remove = value.DEFAULT_FLAGS.remove(duplicate);
|
||||
try {
|
||||
if (remove instanceof Collection
|
||||
&& remove.getClass().getMethod("toString").getDeclaringClass()
|
||||
== Object.class) {
|
||||
value.DEFAULT_FLAGS.put(flag,
|
||||
flag.parseValue(StringMan.join((Collection) remove, ',')));
|
||||
} else {
|
||||
value.DEFAULT_FLAGS.put(flag, flag.parseValue("" + remove));
|
||||
}
|
||||
} catch (NoSuchMethodException neverHappens) {
|
||||
neverHappens.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
PlotSquared.get().foreachPlotRaw(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot value) {
|
||||
if (value.getFlags().containsKey(duplicate)) {
|
||||
Object remove = value.getFlags().remove(duplicate);
|
||||
try {
|
||||
if (remove instanceof Collection
|
||||
&& remove.getClass().getMethod("toString").getDeclaringClass()
|
||||
== Object.class) {
|
||||
value.getFlags().put(flag,
|
||||
flag.parseValue(StringMan.join((Collection) remove, ',')));
|
||||
} else {
|
||||
value.getFlags().put(flag, flag.parseValue("" + remove));
|
||||
}
|
||||
} catch (NoSuchMethodException neverHappens) {
|
||||
neverHappens.printStackTrace();
|
||||
PlotSquared.get().forEachPlotRaw(value -> {
|
||||
if (value.getFlags().containsKey(duplicate)) {
|
||||
Object remove = value.getFlags().remove(duplicate);
|
||||
try {
|
||||
if (remove instanceof Collection
|
||||
&& remove.getClass().getMethod("toString").getDeclaringClass()
|
||||
== Object.class) {
|
||||
value.getFlags().put(flag,
|
||||
flag.parseValue(StringMan.join((Collection) remove, ',')));
|
||||
} else {
|
||||
value.getFlags().put(flag, flag.parseValue("" + remove));
|
||||
}
|
||||
} catch (NoSuchMethodException neverHappens) {
|
||||
neverHappens.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -32,6 +32,7 @@ import java.util.*;
|
|||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* The plot class<br>
|
||||
|
@ -509,8 +510,7 @@ public class Plot {
|
|||
* @return is the plot merged or not
|
||||
*/
|
||||
public boolean isMerged() {
|
||||
return getSettings().getMerged(0) || getSettings().getMerged(2) || getSettings()
|
||||
.getMerged(1) || getSettings().getMerged(3);
|
||||
return IntStream.of(0, 2, 1, 3).anyMatch(i -> getSettings().getMerged(i));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,6 +22,7 @@ import javax.annotation.Nullable;
|
|||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* @author Jesse Boyd, Alexander Söderberg
|
||||
|
@ -516,11 +517,9 @@ public abstract class PlotArea {
|
|||
return Collections.emptySet();
|
||||
}
|
||||
final HashSet<Plot> myPlots = new HashSet<>();
|
||||
foreachPlotAbs(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot value) {
|
||||
if (uuid.equals(value.owner)) {
|
||||
myPlots.add(value);
|
||||
}
|
||||
forEachPlotAbs(value -> {
|
||||
if (uuid.equals(value.owner)) {
|
||||
myPlots.add(value);
|
||||
}
|
||||
});
|
||||
return myPlots;
|
||||
|
@ -664,16 +663,16 @@ public abstract class PlotArea {
|
|||
return myPlots;
|
||||
}
|
||||
|
||||
private void foreachPlotAbs(@Nonnull final RunnableVal<Plot> run) {
|
||||
private void forEachPlotAbs(Consumer<Plot> run) {
|
||||
for (final Entry<PlotId, Plot> entry : this.plots.entrySet()) {
|
||||
run.run(entry.getValue());
|
||||
run.accept(entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
public void foreachBasePlot(@Nonnull final RunnableVal<Plot> run) {
|
||||
public void forEachBasePlot(Consumer<Plot> run) {
|
||||
for (final Plot plot : getPlots()) {
|
||||
if (plot.isBasePlot()) {
|
||||
run.run(plot);
|
||||
run.accept(plot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -202,17 +202,15 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
|
|||
}
|
||||
final AtomicInteger count = new AtomicInteger(0);
|
||||
final UUID uuid = getUUID();
|
||||
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
if (!Settings.Done.COUNTS_TOWARDS_LIMIT) {
|
||||
for (Plot plot : value.getPlotsAbs(uuid)) {
|
||||
if (!plot.hasFlag(Flags.DONE)) {
|
||||
count.incrementAndGet();
|
||||
}
|
||||
PlotSquared.get().forEachPlotArea(value -> {
|
||||
if (!Settings.Done.COUNTS_TOWARDS_LIMIT) {
|
||||
for (Plot plot : value.getPlotsAbs(uuid)) {
|
||||
if (!plot.hasFlag(Flags.DONE)) {
|
||||
count.incrementAndGet();
|
||||
}
|
||||
} else {
|
||||
count.addAndGet(value.getPlotsAbs(uuid).size());
|
||||
}
|
||||
} else {
|
||||
count.addAndGet(value.getPlotsAbs(uuid).size());
|
||||
}
|
||||
});
|
||||
return count.get();
|
||||
|
@ -223,12 +221,10 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
|
|||
return getClusterCount(getLocation().getWorld());
|
||||
}
|
||||
final AtomicInteger count = new AtomicInteger(0);
|
||||
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
for (PlotCluster cluster : value.getClusters()) {
|
||||
if (cluster.isOwner(getUUID())) {
|
||||
count.incrementAndGet();
|
||||
}
|
||||
PlotSquared.get().forEachPlotArea(value -> {
|
||||
for (PlotCluster cluster : value.getClusters()) {
|
||||
if (cluster.isOwner(getUUID())) {
|
||||
count.incrementAndGet();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -519,11 +515,7 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
|
|||
*/
|
||||
public int getPlayerClusterCount() {
|
||||
final AtomicInteger count = new AtomicInteger();
|
||||
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||
@Override public void run(PlotArea value) {
|
||||
count.addAndGet(value.getClusters().size());
|
||||
}
|
||||
});
|
||||
PlotSquared.get().forEachPlotArea(value -> count.addAndGet(value.getClusters().size()));
|
||||
return count.get();
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,7 @@ import java.util.Arrays;
|
|||
public class ArrayUtil {
|
||||
public static final <T> T[] concatAll(T[] first, T[]... rest) {
|
||||
int totalLength = first.length;
|
||||
for (T[] array : rest) {
|
||||
totalLength += array.length;
|
||||
}
|
||||
totalLength += Arrays.stream(rest).mapToInt(array -> array.length).sum();
|
||||
T[] result = Arrays.copyOf(first, totalLength);
|
||||
int offset = first.length;
|
||||
for (T[] array : rest) {
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package com.github.intellectualsites.plotsquared.plot.util;
|
||||
|
||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.*;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.OfflinePlotPlayer;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.StringWrapper;
|
||||
import com.github.intellectualsites.plotsquared.plot.uuid.UUIDWrapper;
|
||||
import com.google.common.collect.BiMap;
|
||||
|
||||
|
@ -52,14 +55,12 @@ public class UUIDHandler {
|
|||
|
||||
public static HashSet<UUID> getAllUUIDS() {
|
||||
final HashSet<UUID> uuids = new HashSet<>();
|
||||
PlotSquared.get().foreachPlotRaw(new RunnableVal<Plot>() {
|
||||
@Override public void run(Plot plot) {
|
||||
if (plot.hasOwner()) {
|
||||
uuids.add(plot.owner);
|
||||
uuids.addAll(plot.getTrusted());
|
||||
uuids.addAll(plot.getMembers());
|
||||
uuids.addAll(plot.getDenied());
|
||||
}
|
||||
PlotSquared.get().forEachPlotRaw(plot -> {
|
||||
if (plot.hasOwner()) {
|
||||
uuids.add(plot.owner);
|
||||
uuids.addAll(plot.getTrusted());
|
||||
uuids.addAll(plot.getMembers());
|
||||
uuids.addAll(plot.getDenied());
|
||||
}
|
||||
});
|
||||
return uuids;
|
||||
|
|
Loading…
Reference in New Issue
Block a user