mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 05:06:44 +01:00
Allow visit to work when players are not the owner of the base plot
This commit is contained in:
parent
fb8e749411
commit
a8fc6662e0
@ -239,9 +239,15 @@ public class Visit extends Command {
|
||||
);
|
||||
} else {
|
||||
final UUID uuid = uuids.toArray(new UUID[0])[0];
|
||||
PlotQuery query = PlotQuery.newQuery();
|
||||
if (Settings.Teleport.VISIT_MERGED_OWNERS) {
|
||||
query.ownersInclude(uuid);
|
||||
} else {
|
||||
query.whereBasePlot().ownedBy(uuid);
|
||||
}
|
||||
this.visit(
|
||||
player,
|
||||
PlotQuery.newQuery().ownedBy(uuid).whereBasePlot(),
|
||||
query,
|
||||
finalSortByArea,
|
||||
confirm,
|
||||
whenDone,
|
||||
|
@ -567,6 +567,8 @@ public class Settings extends Config {
|
||||
public static boolean ON_DELETE = false;
|
||||
@Comment("The visit command is ordered by world instead of globally")
|
||||
public static boolean PER_WORLD_VISIT = false;
|
||||
@Comment("Search merged plots for having multiple owners when using the visit command")
|
||||
public static boolean VISIT_MERGED_OWNERS = true;
|
||||
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* _____ _ _ _____ _
|
||||
* | __ \| | | | / ____| | |
|
||||
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
|
||||
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
|
||||
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
|
||||
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
|
||||
* | |
|
||||
* |_|
|
||||
* PlotSquared plot management system for Minecraft
|
||||
* Copyright (C) 2021 IntellectualSites
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.plotsquared.core.util.query;
|
||||
|
||||
import com.plotsquared.core.plot.Plot;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
class OwnersIncludeFilter implements PlotFilter {
|
||||
|
||||
private final UUID owner;
|
||||
|
||||
OwnersIncludeFilter(final @NonNull UUID owner) {
|
||||
this.owner = owner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean accepts(final @NonNull Plot plot) {
|
||||
return plot.isBasePlot() && plot.getOwners().size() > 0 && plot.getOwners().contains(owner);
|
||||
}
|
||||
|
||||
}
|
@ -202,6 +202,28 @@ public final class PlotQuery implements Iterable<Plot> {
|
||||
return this.addFilter(new OwnerFilter(owner.getUUID()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Query for base plots where one of the merged plots is owned by a specific player
|
||||
*
|
||||
* @param owner Owner UUID
|
||||
* @return The query instance
|
||||
*/
|
||||
public @NonNull PlotQuery ownersInclude(final @NonNull UUID owner) {
|
||||
Preconditions.checkNotNull(owner, "Owner may not be null");
|
||||
return this.addFilter(new OwnersIncludeFilter(owner));
|
||||
}
|
||||
|
||||
/**
|
||||
* Query for base plots where one of the merged plots is owned by a specific player
|
||||
*
|
||||
* @param owner Owner
|
||||
* @return The query instance
|
||||
*/
|
||||
public @NonNull PlotQuery ownersInclude(final @NonNull PlotPlayer<?> owner) {
|
||||
Preconditions.checkNotNull(owner, "Owner may not be null");
|
||||
return this.addFilter(new OwnersIncludeFilter(owner.getUUID()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Query for plots with a specific alias
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user