mirror of
https://github.com/sekwah41/Advanced-Portals.git
synced 2025-02-28 18:21:11 +01:00
tweak: Show common trigger blocks for tag, then all if none match (#468)
This commit is contained in:
parent
d8c8aa408a
commit
a9ff2b5a69
@ -16,12 +16,6 @@ public interface PlayerContainer extends EntityContainer, HasPermission {
|
||||
|
||||
void sendActionBar(String message);
|
||||
|
||||
/**
|
||||
* @param blockPos
|
||||
* @param material
|
||||
*/
|
||||
void sendFakeBlock(BlockLocation blockPos, String material);
|
||||
|
||||
void giveItem(String material, String itemName, String... itemDescription);
|
||||
|
||||
/**
|
||||
|
@ -11,7 +11,9 @@ public interface ServerContainer {
|
||||
|
||||
PlayerContainer getPlayer(UUID name);
|
||||
|
||||
List<String> getTriggerBlocks();
|
||||
List<String> getAllTriggerBlocks();
|
||||
|
||||
List<String> getCommonTriggerBlocks();
|
||||
|
||||
PlayerContainer[] getPlayers();
|
||||
|
||||
|
@ -37,7 +37,16 @@ public class TriggerBlockTag implements Tag.AutoComplete, Tag.Split {
|
||||
|
||||
@Override
|
||||
public List<String> autoComplete(String argData) {
|
||||
return serverContainer.getTriggerBlocks();
|
||||
System.out.println("Auto complete");
|
||||
System.out.println(argData);
|
||||
|
||||
var triggerBlocks = serverContainer.getCommonTriggerBlocks().stream().filter(block -> block.contains(argData)).toList();
|
||||
|
||||
if(triggerBlocks.isEmpty()) {
|
||||
return serverContainer.getAllTriggerBlocks();
|
||||
}
|
||||
|
||||
return triggerBlocks;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
@ -72,14 +72,6 @@ public class SpigotPlayerContainer
|
||||
return this.player.hasPermission(permission);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param blockPos
|
||||
* @param material
|
||||
*/
|
||||
@Override
|
||||
public void sendFakeBlock(BlockLocation blockPos, String material) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void giveItem(String material, String itemName,
|
||||
String... itemDescription) {
|
||||
|
@ -19,11 +19,14 @@ public class SpigotServerContainer implements ServerContainer {
|
||||
@Inject
|
||||
private CoreListeners coreListeners;
|
||||
private final Server server;
|
||||
private final List<String> triggerBlockList =
|
||||
Arrays.stream(Material.values())
|
||||
.filter(this::isAdvancedPortalBlock)
|
||||
.map(Enum::name)
|
||||
.toList();
|
||||
// Create an array of items
|
||||
private final List<String> commonTriggerBlockList = Arrays.asList(
|
||||
Material.WATER, Material.LAVA, Material.AIR, Material.NETHER_PORTAL, Material.END_GATEWAY, Material.END_PORTAL).stream().map(Enum::name).toList();
|
||||
|
||||
private final List<String> fullTriggerBlockList =
|
||||
Arrays.stream(Material.values())
|
||||
.map(Enum::name)
|
||||
.toList();
|
||||
|
||||
public SpigotServerContainer(Server server) {
|
||||
this.server = server;
|
||||
@ -60,8 +63,13 @@ public class SpigotServerContainer implements ServerContainer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTriggerBlocks() {
|
||||
return this.triggerBlockList;
|
||||
public List<String> getAllTriggerBlocks() {
|
||||
return this.fullTriggerBlockList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getCommonTriggerBlocks() {
|
||||
return this.commonTriggerBlockList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -87,14 +95,6 @@ public class SpigotServerContainer implements ServerContainer {
|
||||
new SpigotPlayerContainer(player), s, bytes));
|
||||
}
|
||||
|
||||
// Check if it's a material compatible with making portals
|
||||
private boolean isAdvancedPortalBlock(Material material) {
|
||||
return switch (material) {
|
||||
case WATER, LAVA, AIR, NETHER_PORTAL, END_GATEWAY, END_PORTAL -> true;
|
||||
default -> false;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchCommand(UUID uuid, String command, CommandTag.CommandLevel commandLevel) {
|
||||
Player player = server.getPlayer(uuid);
|
||||
|
Loading…
Reference in New Issue
Block a user