mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 13:16:45 +01:00
Merge pull request #2892 from TimonMi/v5
[Bugfix] No chat message confirmation on /p add /p trust, etc.
This commit is contained in:
commit
b2ac67692e
@ -35,11 +35,11 @@ import com.plotsquared.core.util.Permissions;
|
||||
import com.plotsquared.core.util.TabCompletions;
|
||||
import com.plotsquared.core.util.task.RunnableVal2;
|
||||
import com.plotsquared.core.util.task.RunnableVal3;
|
||||
import com.plotsquared.core.uuid.UUIDMapping;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@ -79,44 +79,49 @@ public class Add extends Command {
|
||||
} else {
|
||||
try {
|
||||
checkTrue(!uuids.isEmpty(), Captions.INVALID_PLAYER, args[0]);
|
||||
Iterator<UUID> iterator = uuids.iterator();
|
||||
|
||||
Iterator<UUIDMapping> iterator = uuids.iterator();
|
||||
int size = plot.getTrusted().size() + plot.getMembers().size();
|
||||
while (iterator.hasNext()) {
|
||||
UUID uuid = iterator.next();
|
||||
if (uuid == DBFunc.EVERYONE && !(
|
||||
UUIDMapping uuidMapping = iterator.next();
|
||||
if (uuidMapping.getUuid() == DBFunc.EVERYONE && !(
|
||||
Permissions.hasPermission(player, Captions.PERMISSION_TRUST_EVERYONE) || Permissions
|
||||
.hasPermission(player, Captions.PERMISSION_ADMIN_COMMAND_TRUST))) {
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, MainUtil.getName(uuid));
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, uuidMapping.getUsername());
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
if (plot.isOwner(uuid)) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, MainUtil.getName(uuid));
|
||||
if (plot.isOwner(uuidMapping.getUuid())) {
|
||||
new Thread(() ->
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, uuidMapping.getUsername())
|
||||
).start();
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
if (plot.getMembers().contains(uuid)) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, MainUtil.getName(uuid));
|
||||
if (plot.getMembers().contains(uuidMapping.getUuid())) {
|
||||
new Thread(() ->
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, uuidMapping.getUsername())
|
||||
).start();
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
size += plot.getTrusted().contains(uuid) ? 0 : 1;
|
||||
size += plot.getTrusted().contains(uuidMapping.getUuid()) ? 0 : 1;
|
||||
}
|
||||
checkTrue(!uuids.isEmpty(), null);
|
||||
checkTrue(size <= plot.getArea().getMaxPlotMembers() || Permissions.hasPermission(player, Captions.PERMISSION_ADMIN_COMMAND_TRUST),
|
||||
Captions.PLOT_MAX_MEMBERS);
|
||||
// Success
|
||||
confirm.run(this, () -> {
|
||||
for (UUID uuid : uuids) {
|
||||
if (uuid != DBFunc.EVERYONE) {
|
||||
if (!plot.removeTrusted(uuid)) {
|
||||
if (plot.getDenied().contains(uuid)) {
|
||||
plot.removeDenied(uuid);
|
||||
for (UUIDMapping uuidMapping : uuids) {
|
||||
if (uuidMapping.getUuid() != DBFunc.EVERYONE) {
|
||||
if (!plot.removeTrusted(uuidMapping.getUuid())) {
|
||||
if (plot.getDenied().contains(uuidMapping.getUuid())) {
|
||||
plot.removeDenied(uuidMapping.getUuid());
|
||||
}
|
||||
}
|
||||
}
|
||||
plot.addMember(uuid);
|
||||
PlotSquared.get().getEventDispatcher().callMember(player, plot, uuid, true);
|
||||
plot.addMember(uuidMapping.getUuid());
|
||||
PlotSquared.get().getEventDispatcher().callMember(player, plot, uuidMapping.getUuid(), true);
|
||||
MainUtil.sendMessage(player, Captions.MEMBER_ADDED);
|
||||
}
|
||||
}, null);
|
||||
|
@ -35,11 +35,11 @@ import com.plotsquared.core.util.MainUtil;
|
||||
import com.plotsquared.core.util.Permissions;
|
||||
import com.plotsquared.core.util.TabCompletions;
|
||||
import com.plotsquared.core.util.WorldUtil;
|
||||
import com.plotsquared.core.uuid.UUIDMapping;
|
||||
import com.sk89q.worldedit.world.gamemode.GameModes;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@CommandDeclaration(command = "deny",
|
||||
@ -77,26 +77,26 @@ public class Deny extends SubCommand {
|
||||
} else if (throwable != null || uuids.isEmpty()) {
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, args[0]);
|
||||
} else {
|
||||
for (UUID uuid : uuids) {
|
||||
if (uuid == DBFunc.EVERYONE && !(
|
||||
for (UUIDMapping uuidMapping : uuids) {
|
||||
if (uuidMapping.getUuid() == DBFunc.EVERYONE && !(
|
||||
Permissions.hasPermission(player, Captions.PERMISSION_DENY_EVERYONE) || Permissions
|
||||
.hasPermission(player, Captions.PERMISSION_ADMIN_COMMAND_DENY))) {
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, MainUtil.getName(uuid));
|
||||
} else if (plot.isOwner(uuid)) {
|
||||
MainUtil.sendMessage(player, Captions.CANT_REMOVE_OWNER, MainUtil.getName(uuid));
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, uuidMapping.getUsername());
|
||||
} else if (plot.isOwner(uuidMapping.getUuid())) {
|
||||
MainUtil.sendMessage(player, Captions.CANT_REMOVE_OWNER, uuidMapping.getUsername());
|
||||
return;
|
||||
} else if (plot.getDenied().contains(uuid)) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, MainUtil.getName(uuid));
|
||||
} else if (plot.getDenied().contains(uuidMapping.getUuid())) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, uuidMapping.getUsername());
|
||||
return;
|
||||
} else {
|
||||
if (uuid != DBFunc.EVERYONE) {
|
||||
plot.removeMember(uuid);
|
||||
plot.removeTrusted(uuid);
|
||||
if (uuidMapping.getUuid() != DBFunc.EVERYONE) {
|
||||
plot.removeMember(uuidMapping.getUuid());
|
||||
plot.removeTrusted(uuidMapping.getUuid());
|
||||
}
|
||||
plot.addDenied(uuid);
|
||||
PlotSquared.get().getEventDispatcher().callDenied(player, plot, uuid, true);
|
||||
if (!uuid.equals(DBFunc.EVERYONE)) {
|
||||
handleKick(PlotSquared.imp().getPlayerManager().getPlayerIfExists(uuid), plot);
|
||||
plot.addDenied(uuidMapping.getUuid());
|
||||
PlotSquared.get().getEventDispatcher().callDenied(player, plot, uuidMapping.getUuid(), true);
|
||||
if (!uuidMapping.equals(DBFunc.EVERYONE)) {
|
||||
handleKick(PlotSquared.imp().getPlayerManager().getPlayerIfExists(uuidMapping.getUuid()), plot);
|
||||
} else {
|
||||
for (PlotPlayer plotPlayer : plot.getPlayersInPlot()) {
|
||||
// Ignore plot-owners
|
||||
|
@ -35,12 +35,12 @@ import com.plotsquared.core.util.MainUtil;
|
||||
import com.plotsquared.core.util.Permissions;
|
||||
import com.plotsquared.core.util.TabCompletions;
|
||||
import com.plotsquared.core.util.WorldUtil;
|
||||
import com.plotsquared.core.uuid.UUIDMapping;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@CommandDeclaration(command = "kick",
|
||||
@ -75,8 +75,8 @@ public class Kick extends SubCommand {
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, args[0]);
|
||||
} else {
|
||||
Set<PlotPlayer<?>> players = new HashSet<>();
|
||||
for (UUID uuid : uuids) {
|
||||
if (uuid == DBFunc.EVERYONE) {
|
||||
for (UUIDMapping uuidMapping : uuids) {
|
||||
if (uuidMapping.getUuid() == DBFunc.EVERYONE) {
|
||||
for (PlotPlayer<?> pp : plot.getPlayersInPlot()) {
|
||||
if (pp == player || Permissions
|
||||
.hasPermission(pp, Captions.PERMISSION_ADMIN_ENTRY_DENIED)) {
|
||||
@ -86,7 +86,7 @@ public class Kick extends SubCommand {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
PlotPlayer<?> pp = PlotSquared.imp().getPlayerManager().getPlayerIfExists(uuid);
|
||||
PlotPlayer<?> pp = PlotSquared.imp().getPlayerManager().getPlayerIfExists(uuidMapping.getUuid());
|
||||
if (pp != null) {
|
||||
players.add(pp);
|
||||
}
|
||||
|
@ -34,10 +34,10 @@ import com.plotsquared.core.plot.Plot;
|
||||
import com.plotsquared.core.util.MainUtil;
|
||||
import com.plotsquared.core.util.Permissions;
|
||||
import com.plotsquared.core.util.TabCompletions;
|
||||
import com.plotsquared.core.uuid.UUIDMapping;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@CommandDeclaration(command = "remove",
|
||||
@ -78,37 +78,37 @@ public class Remove extends SubCommand {
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, args[0]);
|
||||
return;
|
||||
} else if (!uuids.isEmpty()) {
|
||||
for (UUID uuid : uuids) {
|
||||
if (plot.getTrusted().contains(uuid)) {
|
||||
if (plot.removeTrusted(uuid)) {
|
||||
for (UUIDMapping uuidMapping : uuids) {
|
||||
if (plot.getTrusted().contains(uuidMapping.getUuid())) {
|
||||
if (plot.removeTrusted(uuidMapping.getUuid())) {
|
||||
PlotSquared.get().getEventDispatcher()
|
||||
.callTrusted(player, plot, uuid, false);
|
||||
.callTrusted(player, plot, uuidMapping.getUuid(), false);
|
||||
count++;
|
||||
}
|
||||
} else if (plot.getMembers().contains(uuid)) {
|
||||
if (plot.removeMember(uuid)) {
|
||||
} else if (plot.getMembers().contains(uuidMapping.getUuid())) {
|
||||
if (plot.removeMember(uuidMapping.getUuid())) {
|
||||
PlotSquared.get().getEventDispatcher()
|
||||
.callMember(player, plot, uuid, false);
|
||||
.callMember(player, plot, uuidMapping.getUuid(), false);
|
||||
count++;
|
||||
}
|
||||
} else if (plot.getDenied().contains(uuid)) {
|
||||
if (plot.removeDenied(uuid)) {
|
||||
} else if (plot.getDenied().contains(uuidMapping.getUuid())) {
|
||||
if (plot.removeDenied(uuidMapping.getUuid())) {
|
||||
PlotSquared.get().getEventDispatcher()
|
||||
.callDenied(player, plot, uuid, false);
|
||||
.callDenied(player, plot, uuidMapping.getUuid(), false);
|
||||
count++;
|
||||
}
|
||||
} else if (uuid == DBFunc.EVERYONE) {
|
||||
if (plot.removeTrusted(uuid)) {
|
||||
} else if (uuidMapping.getUuid() == DBFunc.EVERYONE) {
|
||||
if (plot.removeTrusted(uuidMapping.getUuid())) {
|
||||
PlotSquared.get().getEventDispatcher()
|
||||
.callTrusted(player, plot, uuid, false);
|
||||
.callTrusted(player, plot, uuidMapping.getUuid(), false);
|
||||
count++;
|
||||
} else if (plot.removeMember(uuid)) {
|
||||
} else if (plot.removeMember(uuidMapping.getUuid())) {
|
||||
PlotSquared.get().getEventDispatcher()
|
||||
.callMember(player, plot, uuid, false);
|
||||
.callMember(player, plot, uuidMapping.getUuid(), false);
|
||||
count++;
|
||||
} else if (plot.removeDenied(uuid)) {
|
||||
} else if (plot.removeDenied(uuidMapping.getUuid())) {
|
||||
PlotSquared.get().getEventDispatcher()
|
||||
.callDenied(player, plot, uuid, false);
|
||||
.callDenied(player, plot, uuidMapping.getUuid(), false);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
@ -35,11 +35,11 @@ import com.plotsquared.core.util.Permissions;
|
||||
import com.plotsquared.core.util.TabCompletions;
|
||||
import com.plotsquared.core.util.task.RunnableVal2;
|
||||
import com.plotsquared.core.util.task.RunnableVal3;
|
||||
import com.plotsquared.core.uuid.UUIDMapping;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@ -81,28 +81,28 @@ public class Trust extends Command {
|
||||
return;
|
||||
} else {
|
||||
checkTrue(!uuids.isEmpty(), Captions.INVALID_PLAYER, args[0]);
|
||||
Iterator<UUID> iterator = uuids.iterator();
|
||||
Iterator<UUIDMapping> iterator = uuids.iterator();
|
||||
int size = currentPlot.getTrusted().size() + currentPlot.getMembers().size();
|
||||
while (iterator.hasNext()) {
|
||||
UUID uuid = iterator.next();
|
||||
if (uuid == DBFunc.EVERYONE && !(
|
||||
UUIDMapping uuidMapping = iterator.next();
|
||||
if (uuidMapping.getUuid() == DBFunc.EVERYONE && !(
|
||||
Permissions.hasPermission(player, Captions.PERMISSION_TRUST_EVERYONE) || Permissions
|
||||
.hasPermission(player, Captions.PERMISSION_ADMIN_COMMAND_TRUST))) {
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, MainUtil.getName(uuid));
|
||||
MainUtil.sendMessage(player, Captions.INVALID_PLAYER, uuidMapping.getUsername());
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
if (currentPlot.isOwner(uuid)) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, MainUtil.getName(uuid));
|
||||
if (currentPlot.isOwner(uuidMapping.getUuid())) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, uuidMapping.getUsername());
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
if (currentPlot.getTrusted().contains(uuid)) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, MainUtil.getName(uuid));
|
||||
if (currentPlot.getTrusted().contains(uuidMapping.getUuid())) {
|
||||
MainUtil.sendMessage(player, Captions.ALREADY_ADDED, uuidMapping.getUsername());
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
size += currentPlot.getMembers().contains(uuid) ? 0 : 1;
|
||||
size += currentPlot.getMembers().contains(uuidMapping.getUuid()) ? 0 : 1;
|
||||
}
|
||||
checkTrue(!uuids.isEmpty(), null);
|
||||
checkTrue(size <= currentPlot.getArea().getMaxPlotMembers() || Permissions
|
||||
@ -110,16 +110,16 @@ public class Trust extends Command {
|
||||
Captions.PLOT_MAX_MEMBERS);
|
||||
// Success
|
||||
confirm.run(this, () -> {
|
||||
for (UUID uuid : uuids) {
|
||||
if (uuid != DBFunc.EVERYONE) {
|
||||
if (!currentPlot.removeMember(uuid)) {
|
||||
if (currentPlot.getDenied().contains(uuid)) {
|
||||
currentPlot.removeDenied(uuid);
|
||||
for (UUIDMapping uuidMapping : uuids) {
|
||||
if (uuidMapping.getUuid() != DBFunc.EVERYONE) {
|
||||
if (!currentPlot.removeMember(uuidMapping.getUuid())) {
|
||||
if (currentPlot.getDenied().contains(uuidMapping.getUuid())) {
|
||||
currentPlot.removeDenied(uuidMapping.getUuid());
|
||||
}
|
||||
}
|
||||
}
|
||||
currentPlot.addTrusted(uuid);
|
||||
PlotSquared.get().getEventDispatcher().callTrusted(player, currentPlot, uuid, true);
|
||||
currentPlot.addTrusted(uuidMapping.getUuid());
|
||||
PlotSquared.get().getEventDispatcher().callTrusted(player, currentPlot, uuidMapping.getUuid(), true);
|
||||
MainUtil.sendMessage(player, Captions.TRUSTED_ADDED);
|
||||
}
|
||||
}, null);
|
||||
|
@ -748,10 +748,9 @@ public class MainUtil {
|
||||
return ratings;
|
||||
}
|
||||
|
||||
public static void getUUIDsFromString(final String list, final BiConsumer<Collection<UUID>, Throwable> consumer) {
|
||||
public static void getUUIDsFromString(final String list, final BiConsumer<Collection<UUIDMapping>, Throwable> consumer) {
|
||||
String[] split = list.split(",");
|
||||
|
||||
final Set<UUID> result = new HashSet<>();
|
||||
final Set<UUIDMapping> result = new HashSet<>();
|
||||
final List<String> request = new LinkedList<>();
|
||||
|
||||
for (final String name : split) {
|
||||
@ -759,10 +758,10 @@ public class MainUtil {
|
||||
consumer.accept(Collections.emptySet(), null);
|
||||
return;
|
||||
} else if ("*".equals(name)) {
|
||||
result.add(DBFunc.EVERYONE);
|
||||
result.add(new UUIDMapping(DBFunc.EVERYONE, "*"));
|
||||
} else if (name.length() > 16) {
|
||||
try {
|
||||
result.add(UUID.fromString(name));
|
||||
result.add(new UUIDMapping(UUID.fromString(name), name));
|
||||
} catch (IllegalArgumentException ignored) {
|
||||
consumer.accept(Collections.emptySet(), null);
|
||||
return;
|
||||
@ -776,16 +775,14 @@ public class MainUtil {
|
||||
consumer.accept(result, null);
|
||||
} else {
|
||||
PlotSquared.get().getImpromptuUUIDPipeline().getUUIDs(request, Settings.UUID.NON_BLOCKING_TIMEOUT)
|
||||
.whenComplete((uuids, throwable) -> {
|
||||
if (throwable != null) {
|
||||
consumer.accept(null, throwable);
|
||||
} else {
|
||||
for (final UUIDMapping uuid : uuids) {
|
||||
result.add(uuid.getUuid());
|
||||
}
|
||||
consumer.accept(result, null);
|
||||
}
|
||||
});
|
||||
.whenComplete((uuids, throwable) -> {
|
||||
if (throwable != null) {
|
||||
consumer.accept(null, throwable);
|
||||
} else {
|
||||
result.addAll(uuids);
|
||||
consumer.accept(result, null);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user