mirror of
https://github.com/ChestShop-authors/ChestShop-3.git
synced 2024-11-23 02:25:25 +01:00
Ignore signs and transactions made by players with invalid names
This commit is contained in:
parent
9bf6e1abc1
commit
fd81bc143e
@ -373,6 +373,7 @@ public class ChestShop extends JavaPlugin {
|
||||
registerEvent(new AmountAndPriceChecker());
|
||||
}
|
||||
|
||||
registerEvent(new InvalidNameIgnorer());
|
||||
registerEvent(new CreativeModeIgnorer());
|
||||
registerEvent(new ErrorMessageSender());
|
||||
registerEvent(new PermissionChecker());
|
||||
|
@ -0,0 +1,26 @@
|
||||
package com.Acrobot.ChestShop.Listeners.PreTransaction;
|
||||
|
||||
import com.Acrobot.ChestShop.Events.PreTransactionEvent;
|
||||
import com.Acrobot.ChestShop.Signs.ChestShopSign;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class InvalidNameIgnorer implements Listener {
|
||||
|
||||
private final static Pattern USERNAME_PATTERN = Pattern.compile("^\\w+$");
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public static void onPreTransaction(PreTransactionEvent event) {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String name = event.getClient().getName();
|
||||
if (ChestShopSign.isAdminShop(name) || !USERNAME_PATTERN.matcher(name).matches()) {
|
||||
event.setCancelled(PreTransactionEvent.TransactionOutcome.CLIENT_DOES_NOT_HAVE_PERMISSION);
|
||||
}
|
||||
}
|
||||
}
|
@ -32,10 +32,10 @@ public class ChestShopSign {
|
||||
public static final byte ITEM_LINE = 3;
|
||||
|
||||
public static final Pattern[] SHOP_SIGN_PATTERN = {
|
||||
Pattern.compile("^?[\\w -.:]*$"),
|
||||
Pattern.compile("^?[\\w \\-.:]*$"),
|
||||
Pattern.compile("^[1-9][0-9]{0,5}$|^Q [1-9][0-9]{0,4} : C [0-9]{0,5}$"),
|
||||
Pattern.compile("(?i)^[\\d.bs(free) :]+$"),
|
||||
Pattern.compile("^[\\w? #:-]+$")
|
||||
Pattern.compile("^[\\w? #:\\-]+$")
|
||||
};
|
||||
public static final String AUTOFILL_CODE = "?";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user