|
2 | 2 |
|
3 | 3 | import java.util.ArrayList; |
4 | 4 | import java.util.List; |
| 5 | +import java.util.regex.Pattern; |
5 | 6 |
|
6 | 7 | import org.bukkit.Bukkit; |
7 | 8 | import org.bukkit.ChatColor; |
@@ -44,16 +45,23 @@ public void alEntrarARegion(WorldGuardAPIRegionEnterEvent event) { |
44 | 45 | List<EntradaCodex> entradas = categoria.getEntradas(); |
45 | 46 | for(final EntradaCodex entrada : entradas) { |
46 | 47 | String nombreRegion = entrada.getDiscoveredOnRegion(); |
47 | | - if(nombreRegion != null && region.equals(nombreRegion)) { |
48 | | - plugin.getJugadorDataManager().agregarEntrada(jugador, categoria.getPath(), entrada.getId(), new AgregarEntradaCallback() { |
49 | | - @Override |
50 | | - public void onDone(boolean agrega) { |
51 | | - if(agrega) { |
52 | | - plugin.getCodexManager().desbloquearEntrada(jugador, categoria, entrada); |
| 48 | + if(nombreRegion != null) { |
| 49 | + boolean matches = region.equals(nombreRegion); |
| 50 | + if (!matches && nombreRegion.length() > 2 && nombreRegion.charAt(0) == '/' && nombreRegion.charAt(nombreRegion.length() - 1) == '/') { |
| 51 | + Pattern pattern = Pattern.compile(nombreRegion.substring(1, nombreRegion.length() - 1)); |
| 52 | + matches = pattern.matcher(region).matches(); |
| 53 | + } |
| 54 | + if (matches) { |
| 55 | + plugin.getJugadorDataManager().agregarEntrada(jugador, categoria.getPath(), entrada.getId(), new AgregarEntradaCallback() { |
| 56 | + @Override |
| 57 | + public void onDone(boolean agrega) { |
| 58 | + if (agrega) { |
| 59 | + plugin.getCodexManager().desbloquearEntrada(jugador, categoria, entrada); |
| 60 | + } |
53 | 61 | } |
54 | | - } |
55 | | - }); |
56 | | - return; |
| 62 | + }); |
| 63 | + return; |
| 64 | + } |
57 | 65 | } |
58 | 66 | } |
59 | 67 | } |
|
0 commit comments