Better tab completion for internal entities

This commit is contained in:
Magnus Ulf 2019-01-27 18:02:32 +01:00
parent 442e90759d
commit 216dd14bf8
2 changed files with 26 additions and 0 deletions

View File

@ -59,6 +59,7 @@ import com.massivecraft.factions.entity.migrator.MigratorMConf002CleanInactivity
import com.massivecraft.factions.entity.migrator.MigratorMConf003CleanInactivity;
import com.massivecraft.factions.entity.migrator.MigratorMConf004Rank;
import com.massivecraft.factions.entity.migrator.MigratorMConf005Warps;
import com.massivecraft.factions.entity.migrator.MigratorMPerm001Warps;
import com.massivecraft.factions.entity.migrator.MigratorMPlayer001Ranks;
import com.massivecraft.factions.event.EventFactionsChunkChangeType;
import com.massivecraft.factions.integration.V18.IntegrationV18;
@ -147,6 +148,7 @@ public class Factions extends MassivePlugin
MigratorMConf003CleanInactivity.class,
MigratorMConf004Rank.class,
MigratorMConf005Warps.class,
MigratorMPerm001Warps.class,
MigratorMPlayer001Ranks.class
);
}

View File

@ -1,12 +1,15 @@
package com.massivecraft.factions.cmd.type;
import com.massivecraft.factions.entity.Faction;
import com.massivecraft.factions.entity.MPlayer;
import com.massivecraft.massivecore.collections.MassiveSet;
import com.massivecraft.massivecore.command.type.TypeAbstractChoice;
import com.massivecraft.massivecore.store.EntityInternal;
import org.bukkit.command.CommandSender;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
public abstract class TypeEntityInternalFaction<E extends EntityInternal<E>> extends TypeAbstractChoice<E>
{
@ -53,4 +56,25 @@ public abstract class TypeEntityInternalFaction<E extends EntityInternal<E>> ext
else return super.isValid(arg, sender);
}
@Override
public Collection<String> getTabList(CommandSender sender, String arg)
{
if (this.getFaction() != null) return super.getTabList(sender, arg);
// Default to tab list for the sender
Faction faction = MPlayer.get(sender).getFaction();
// Create
Set<String> ret = new MassiveSet<>();
// Fill
for (E value : this.getAll(faction))
{
ret.addAll(this.createTabs(value));
}
// Return
return ret;
}
}