mirror of
https://github.com/LuckPerms/LuckPerms.git
synced 2024-11-24 11:38:40 +01:00
Refactor bulkupdate comparisons
This commit is contained in:
parent
0adf85746d
commit
794455d728
@ -47,4 +47,11 @@ public interface Comparison {
|
|||||||
*/
|
*/
|
||||||
boolean matches(String str, String expr);
|
boolean matches(String str, String expr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the comparison operator in SQL form
|
||||||
|
*
|
||||||
|
* @return a sql form of this comparison
|
||||||
|
*/
|
||||||
|
String getAsSql();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of LuckPerms, licensed under the MIT License.
|
|
||||||
*
|
|
||||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
|
||||||
* Copyright (c) contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package me.lucko.luckperms.common.bulkupdate.comparisons;
|
|
||||||
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.impl.ComparisonEqual;
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.impl.ComparisonNotEqual;
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.impl.ComparisonNotSimilar;
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.impl.ComparisonSimilar;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An enumeration of all {@link Comparison}s.
|
|
||||||
*/
|
|
||||||
public enum ComparisonType {
|
|
||||||
|
|
||||||
EQUAL("==", new ComparisonEqual()),
|
|
||||||
NOT_EQUAL("!=", new ComparisonNotEqual()),
|
|
||||||
SIMILAR("~~", new ComparisonSimilar()),
|
|
||||||
NOT_SIMILAR("!~", new ComparisonNotSimilar());
|
|
||||||
|
|
||||||
private final String symbol;
|
|
||||||
private final Comparison instance;
|
|
||||||
|
|
||||||
ComparisonType(String symbol, Comparison instance) {
|
|
||||||
this.symbol = symbol;
|
|
||||||
this.instance = instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSymbol() {
|
|
||||||
return this.symbol;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Comparison getComparison() {
|
|
||||||
return this.instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ComparisonType parseComparison(String s) {
|
|
||||||
for (ComparisonType t : values()) {
|
|
||||||
if (t.getSymbol().equals(s)) {
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,104 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of LuckPerms, licensed under the MIT License.
|
||||||
|
*
|
||||||
|
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
||||||
|
* Copyright (c) contributors
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package me.lucko.luckperms.common.bulkupdate.comparisons;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An enumeration of standard {@link Comparison}s.
|
||||||
|
*/
|
||||||
|
public enum StandardComparison implements Comparison {
|
||||||
|
|
||||||
|
EQUAL("==", "=") {
|
||||||
|
@Override
|
||||||
|
public boolean matches(String str, String expr) {
|
||||||
|
return str.equalsIgnoreCase(expr);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
NOT_EQUAL("!=", "!=") {
|
||||||
|
@Override
|
||||||
|
public boolean matches(String str, String expr) {
|
||||||
|
return !str.equalsIgnoreCase(expr);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
SIMILAR("~~", "LIKE") {
|
||||||
|
@Override
|
||||||
|
public boolean matches(String str, String expr) {
|
||||||
|
// form expression
|
||||||
|
expr = expr.toLowerCase();
|
||||||
|
expr = expr.replace(".", "\\.");
|
||||||
|
|
||||||
|
// convert from SQL LIKE syntax to regex
|
||||||
|
expr = expr.replace("_", ".");
|
||||||
|
expr = expr.replace("%", ".*");
|
||||||
|
|
||||||
|
return str.toLowerCase().matches(expr);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
NOT_SIMILAR("!~", "NOT LIKE") {
|
||||||
|
@Override
|
||||||
|
public boolean matches(String str, String expr) {
|
||||||
|
// form expression
|
||||||
|
expr = expr.toLowerCase();
|
||||||
|
expr = expr.replace(".", "\\.");
|
||||||
|
|
||||||
|
// convert from SQL LIKE syntax to regex
|
||||||
|
expr = expr.replace("_", ".");
|
||||||
|
expr = expr.replace("%", ".*");
|
||||||
|
|
||||||
|
return !str.toLowerCase().matches(expr);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private final String symbol;
|
||||||
|
private final String asSql;
|
||||||
|
|
||||||
|
StandardComparison(String symbol, String asSql) {
|
||||||
|
this.symbol = symbol;
|
||||||
|
this.asSql = asSql;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSymbol() {
|
||||||
|
return this.symbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAsSql() {
|
||||||
|
return this.asSql;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static StandardComparison parseComparison(String s) {
|
||||||
|
for (StandardComparison t : values()) {
|
||||||
|
if (t.getSymbol().equals(s)) {
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of LuckPerms, licensed under the MIT License.
|
|
||||||
*
|
|
||||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
|
||||||
* Copyright (c) contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package me.lucko.luckperms.common.bulkupdate.comparisons.impl;
|
|
||||||
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.Comparison;
|
|
||||||
|
|
||||||
public class ComparisonEqual implements Comparison {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSymbol() {
|
|
||||||
return "==";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean matches(String str, String expr) {
|
|
||||||
return str.equalsIgnoreCase(expr);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of LuckPerms, licensed under the MIT License.
|
|
||||||
*
|
|
||||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
|
||||||
* Copyright (c) contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package me.lucko.luckperms.common.bulkupdate.comparisons.impl;
|
|
||||||
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.Comparison;
|
|
||||||
|
|
||||||
public class ComparisonNotEqual implements Comparison {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSymbol() {
|
|
||||||
return "!=";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean matches(String str, String expr) {
|
|
||||||
return !str.equalsIgnoreCase(expr);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of LuckPerms, licensed under the MIT License.
|
|
||||||
*
|
|
||||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
|
||||||
* Copyright (c) contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package me.lucko.luckperms.common.bulkupdate.comparisons.impl;
|
|
||||||
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.Comparison;
|
|
||||||
|
|
||||||
public class ComparisonNotSimilar implements Comparison {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSymbol() {
|
|
||||||
return "!~";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean matches(String str, String expr) {
|
|
||||||
// form expression
|
|
||||||
expr = expr.toLowerCase();
|
|
||||||
expr = expr.replace(".", "\\.");
|
|
||||||
|
|
||||||
// convert from SQL LIKE syntax to regex
|
|
||||||
expr = expr.replace("_", ".");
|
|
||||||
expr = expr.replace("%", ".*");
|
|
||||||
|
|
||||||
return !str.toLowerCase().matches(expr);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of LuckPerms, licensed under the MIT License.
|
|
||||||
*
|
|
||||||
* Copyright (c) lucko (Luck) <luck@lucko.me>
|
|
||||||
* Copyright (c) contributors
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in all
|
|
||||||
* copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package me.lucko.luckperms.common.bulkupdate.comparisons.impl;
|
|
||||||
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.Comparison;
|
|
||||||
|
|
||||||
public class ComparisonSimilar implements Comparison {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSymbol() {
|
|
||||||
return "~~";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean matches(String str, String expr) {
|
|
||||||
// form expression
|
|
||||||
expr = expr.toLowerCase();
|
|
||||||
expr = expr.replace(".", "\\.");
|
|
||||||
|
|
||||||
// convert from SQL LIKE syntax to regex
|
|
||||||
expr = expr.replace("_", ".");
|
|
||||||
expr = expr.replace("%", ".*");
|
|
||||||
|
|
||||||
return str.toLowerCase().matches(expr);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -26,7 +26,7 @@
|
|||||||
package me.lucko.luckperms.common.bulkupdate.constraint;
|
package me.lucko.luckperms.common.bulkupdate.constraint;
|
||||||
|
|
||||||
import me.lucko.luckperms.common.bulkupdate.BulkUpdate;
|
import me.lucko.luckperms.common.bulkupdate.BulkUpdate;
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.ComparisonType;
|
import me.lucko.luckperms.common.bulkupdate.comparisons.Comparison;
|
||||||
import me.lucko.luckperms.common.node.NodeModel;
|
import me.lucko.luckperms.common.node.NodeModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -34,22 +34,22 @@ import me.lucko.luckperms.common.node.NodeModel;
|
|||||||
*/
|
*/
|
||||||
public class Constraint {
|
public class Constraint {
|
||||||
|
|
||||||
public static Constraint of(QueryField field, ComparisonType comparisonType, String value) {
|
public static Constraint of(QueryField field, Comparison comparison, String value) {
|
||||||
return new Constraint(field, comparisonType, value);
|
return new Constraint(field, comparison, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// the field this constraint is comparing against
|
// the field this constraint is comparing against
|
||||||
private final QueryField field;
|
private final QueryField field;
|
||||||
|
|
||||||
// the comparison type being used in this constraint
|
// the comparison type being used in this constraint
|
||||||
private final ComparisonType comparisonType;
|
private final Comparison comparison;
|
||||||
|
|
||||||
// the expression being compared against
|
// the expression being compared against
|
||||||
private final String value;
|
private final String value;
|
||||||
|
|
||||||
private Constraint(QueryField field, ComparisonType comparisonType, String value) {
|
private Constraint(QueryField field, Comparison comparison, String value) {
|
||||||
this.field = field;
|
this.field = field;
|
||||||
this.comparisonType = comparisonType;
|
this.comparison = comparison;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,37 +62,26 @@ public class Constraint {
|
|||||||
public boolean isSatisfiedBy(NodeModel node) {
|
public boolean isSatisfiedBy(NodeModel node) {
|
||||||
switch (this.field) {
|
switch (this.field) {
|
||||||
case PERMISSION:
|
case PERMISSION:
|
||||||
return this.comparisonType.getComparison().matches(node.getPermission(), this.value);
|
return this.comparison.matches(node.getPermission(), this.value);
|
||||||
case SERVER:
|
case SERVER:
|
||||||
return this.comparisonType.getComparison().matches(node.getServer(), this.value);
|
return this.comparison.matches(node.getServer(), this.value);
|
||||||
case WORLD:
|
case WORLD:
|
||||||
return this.comparisonType.getComparison().matches(node.getWorld(), this.value);
|
return this.comparison.matches(node.getWorld(), this.value);
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException();
|
throw new RuntimeException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAsSql() {
|
public String getAsSql() {
|
||||||
switch (this.comparisonType) {
|
return this.field.getSqlName() + " " + this.comparison.getAsSql() + " " + BulkUpdate.escapeStringForSql(this.value);
|
||||||
case EQUAL:
|
|
||||||
return this.field.getSqlName() + " = " + BulkUpdate.escapeStringForSql(this.value);
|
|
||||||
case NOT_EQUAL:
|
|
||||||
return this.field.getSqlName() + " != " + BulkUpdate.escapeStringForSql(this.value);
|
|
||||||
case SIMILAR:
|
|
||||||
return this.field.getSqlName() + " LIKE " + BulkUpdate.escapeStringForSql(this.value);
|
|
||||||
case NOT_SIMILAR:
|
|
||||||
return this.field.getSqlName() + " NOT LIKE " + BulkUpdate.escapeStringForSql(this.value);
|
|
||||||
default:
|
|
||||||
throw new RuntimeException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryField getField() {
|
public QueryField getField() {
|
||||||
return this.field;
|
return this.field;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComparisonType getComparisonType() {
|
public Comparison getComparison() {
|
||||||
return this.comparisonType;
|
return this.comparison;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getValue() {
|
public String getValue() {
|
||||||
|
@ -33,7 +33,8 @@ import me.lucko.luckperms.common.bulkupdate.BulkUpdateBuilder;
|
|||||||
import me.lucko.luckperms.common.bulkupdate.DataType;
|
import me.lucko.luckperms.common.bulkupdate.DataType;
|
||||||
import me.lucko.luckperms.common.bulkupdate.action.DeleteAction;
|
import me.lucko.luckperms.common.bulkupdate.action.DeleteAction;
|
||||||
import me.lucko.luckperms.common.bulkupdate.action.UpdateAction;
|
import me.lucko.luckperms.common.bulkupdate.action.UpdateAction;
|
||||||
import me.lucko.luckperms.common.bulkupdate.comparisons.ComparisonType;
|
import me.lucko.luckperms.common.bulkupdate.comparisons.Comparison;
|
||||||
|
import me.lucko.luckperms.common.bulkupdate.comparisons.StandardComparison;
|
||||||
import me.lucko.luckperms.common.bulkupdate.constraint.Constraint;
|
import me.lucko.luckperms.common.bulkupdate.constraint.Constraint;
|
||||||
import me.lucko.luckperms.common.bulkupdate.constraint.QueryField;
|
import me.lucko.luckperms.common.bulkupdate.constraint.QueryField;
|
||||||
import me.lucko.luckperms.common.commands.CommandException;
|
import me.lucko.luckperms.common.commands.CommandException;
|
||||||
@ -133,7 +134,7 @@ public class BulkUpdateCommand extends SingleCommand {
|
|||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
ComparisonType comparison = ComparisonType.parseComparison(parts[1]);
|
Comparison comparison = StandardComparison.parseComparison(parts[1]);
|
||||||
if (comparison == null) {
|
if (comparison == null) {
|
||||||
Message.BULK_UPDATE_INVALID_COMPARISON.send(sender, parts[1]);
|
Message.BULK_UPDATE_INVALID_COMPARISON.send(sender, parts[1]);
|
||||||
return CommandResult.INVALID_ARGS;
|
return CommandResult.INVALID_ARGS;
|
||||||
|
@ -64,17 +64,6 @@ public class User extends PermissionHolder implements Identifiable<UserIdentifie
|
|||||||
|
|
||||||
private final BufferedRequest<Void> refreshBuffer;
|
private final BufferedRequest<Void> refreshBuffer;
|
||||||
|
|
||||||
public User(UUID uuid, LuckPermsPlugin plugin) {
|
|
||||||
super(uuid.toString(), plugin);
|
|
||||||
this.uuid = uuid;
|
|
||||||
|
|
||||||
this.refreshBuffer = new UserRefreshBuffer(plugin, this);
|
|
||||||
this.primaryGroup = plugin.getConfiguration().get(ConfigKeys.PRIMARY_GROUP_CALCULATION).apply(this);
|
|
||||||
|
|
||||||
this.cachedData = new UserCachedData(this);
|
|
||||||
getPlugin().getEventFactory().handleUserCacheLoad(this, this.cachedData);
|
|
||||||
}
|
|
||||||
|
|
||||||
public User(UUID uuid, String name, LuckPermsPlugin plugin) {
|
public User(UUID uuid, String name, LuckPermsPlugin plugin) {
|
||||||
super(uuid.toString(), plugin);
|
super(uuid.toString(), plugin);
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
@ -87,6 +76,10 @@ public class User extends PermissionHolder implements Identifiable<UserIdentifie
|
|||||||
getPlugin().getEventFactory().handleUserCacheLoad(this, this.cachedData);
|
getPlugin().getEventFactory().handleUserCacheLoad(this, this.cachedData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public User(UUID uuid, LuckPermsPlugin plugin) {
|
||||||
|
this(uuid, null, plugin);
|
||||||
|
}
|
||||||
|
|
||||||
public UUID getUuid() {
|
public UUID getUuid() {
|
||||||
return this.uuid;
|
return this.uuid;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user