Check permission for shop name again after querying it
This protects people that use valid player names as admin shop names from people with the same username as well as other cases where the API is used to manage access to shops with certain special names.
This commit is contained in:
parent
cbbdaf0bbf
commit
2305c759b8
|
@ -4,6 +4,7 @@ import com.Acrobot.Breeze.Utils.MaterialUtil;
|
|||
import com.Acrobot.Breeze.Utils.PriceUtil;
|
||||
import com.Acrobot.ChestShop.Events.PreShopCreationEvent;
|
||||
import com.Acrobot.ChestShop.Permission;
|
||||
import com.Acrobot.ChestShop.UUIDs.NameManager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -12,6 +13,7 @@ import org.bukkit.inventory.ItemStack;
|
|||
import static com.Acrobot.ChestShop.Events.PreShopCreationEvent.CreationOutcome.NO_PERMISSION;
|
||||
import static com.Acrobot.ChestShop.Permission.*;
|
||||
import static com.Acrobot.ChestShop.Signs.ChestShopSign.ITEM_LINE;
|
||||
import static com.Acrobot.ChestShop.Signs.ChestShopSign.NAME_LINE;
|
||||
import static com.Acrobot.ChestShop.Signs.ChestShopSign.PRICE_LINE;
|
||||
import static org.bukkit.event.EventPriority.HIGH;
|
||||
|
||||
|
@ -24,6 +26,12 @@ public class PermissionChecker implements Listener {
|
|||
public static void onPreShopCreation(PreShopCreationEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!NameManager.canUseName(player, event.getSignLine(NAME_LINE))) {
|
||||
event.setSignLine(NAME_LINE, "");
|
||||
event.setOutcome(NO_PERMISSION);
|
||||
return;
|
||||
}
|
||||
|
||||
String priceLine = event.getSignLine(PRICE_LINE);
|
||||
String itemLine = event.getSignLine(ITEM_LINE);
|
||||
|
||||
|
|
Loading…
Reference in New Issue