mirror of
				https://github.com/CodeMC/WorldGuardWrapper.git
				synced 2025-10-31 15:02:36 +01:00 
			
		
		
		
	Support flag query by flag name
This commit is contained in:
		
							parent
							
								
									7e0ba6d8e7
								
							
						
					
					
						commit
						ad9ff41b7b
					
				|  | @ -43,6 +43,17 @@ public interface IWorldGuardImplementation { | ||||||
|      */ |      */ | ||||||
|     boolean registerStateFlag(@NonNull String flagName, @NonNull Boolean defaultValue); |     boolean registerStateFlag(@NonNull String flagName, @NonNull Boolean defaultValue); | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Query a flag's value for a given player at a given location. | ||||||
|  |      *  | ||||||
|  |      * @param player   The player | ||||||
|  |      * @param location The location | ||||||
|  |      * @param flagName The name of the flag | ||||||
|  |      * @param type     The type of the flag's value | ||||||
|  |      * @return The flag's value | ||||||
|  |      */ | ||||||
|  |     <T> Optional<T> queryFlag(Player player, @NonNull Location location, @NonNull String flagName, Class<T> type); | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * Query a flag's value for a given player at a given location. |      * Query a flag's value for a given player at a given location. | ||||||
|      *  |      *  | ||||||
|  | @ -51,7 +62,9 @@ public interface IWorldGuardImplementation { | ||||||
|      * @param flag     The flag |      * @param flag     The flag | ||||||
|      * @return The flag's value |      * @return The flag's value | ||||||
|      */ |      */ | ||||||
|     <T> Optional<T> queryFlag(Player player, @NonNull Location location, @NonNull AbstractFlag<T> flag); |     default <T> Optional<T> queryFlag(Player player, @NonNull Location location, @NonNull AbstractFlag<T> flag) { | ||||||
|  |         return queryFlag(player, location, flag.getName(), flag.getType()); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * Register a flag to WorldGuard's flag registry. |      * Register a flag to WorldGuard's flag registry. | ||||||
|  |  | ||||||
|  | @ -83,10 +83,10 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     @SuppressWarnings("unchecked") |     @SuppressWarnings("unchecked") | ||||||
|     public <T> Optional<T> queryFlag(Player player, Location location, AbstractFlag<T> flag) {         |     public <T> Optional<T> queryFlag(Player player, Location location, String flagName, Class<T> type) { | ||||||
|         Flag<?> wgFlag = flagRegistry.get(flag.getName()); |         Flag<?> flag = flagRegistry.get(flagName); | ||||||
|         Object value = queryValue(player, location, wgFlag).orElse(null); |         Object value = queryValue(player, location, flag).orElse(null); | ||||||
|         if (flag.getType().isInstance(value)) { |         if (type.isInstance(value)) { | ||||||
|             return Optional.of((T) value); |             return Optional.of((T) value); | ||||||
|         } |         } | ||||||
|         return Optional.empty(); |         return Optional.empty(); | ||||||
|  |  | ||||||
|  | @ -96,10 +96,10 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     @SuppressWarnings("unchecked") |     @SuppressWarnings("unchecked") | ||||||
|     public <T> Optional<T> queryFlag(Player player, Location location, AbstractFlag<T> flag) {         |     public <T> Optional<T> queryFlag(Player player, Location location, String flagName, Class<T> type) { | ||||||
|         Flag<?> wgFlag = flagRegistry.get(flag.getName()); |         Flag<?> flag = flagRegistry.get(flagName); | ||||||
|         Object value = queryValue(player, location, wgFlag).orElse(null); |         Object value = queryValue(player, location, flag).orElse(null); | ||||||
|         if (flag.getType().isInstance(value)) { |         if (type.isInstance(value)) { | ||||||
|             return Optional.of((T) value); |             return Optional.of((T) value); | ||||||
|         } |         } | ||||||
|         return Optional.empty(); |         return Optional.empty(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user