Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
ucchyocean committed Jul 31, 2020
2 parents 9407fe9 + e3cbb59 commit 9912870
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@

import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.TabExecutor;

/**
* Tellコマンドの処理クラス(Bungee実装)
* @author ucchy
*/
public class MessageCommandBungee extends Command {
public class MessageCommandBungee extends Command implements TabExecutor {

private LunaChatMessageCommand command;

Expand All @@ -41,4 +42,15 @@ public void execute(CommandSender sender, String[] args) {
command.execute(ChannelMember.getChannelMember(sender), "m", args);
}

/**
* TABキー補完が実行されたときに呼び出されるメソッド
* @param sender 実行者
* @param args 実行されたコマンドの引数
* @return 補完候補
* @see net.md_5.bungee.api.plugin.TabExecutor#onTabComplete(net.md_5.bungee.api.CommandSender, java.lang.String[])
*/
@Override
public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
return command.onTabComplete(ChannelMember.getChannelMember(sender), "m", args);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
import com.github.ucchyocean.lc3.channel.Channel;
import com.github.ucchyocean.lc3.member.ChannelMember;

import java.util.ArrayList;
import java.util.List;

/**
* 1:1チャット送信コマンド
* @author ucchy
Expand Down Expand Up @@ -112,4 +115,37 @@ protected void sendTellMessage(ChannelMember inviter, String invitedName, String
private void printUsage(ChannelMember sender, String label) {
sender.sendMessage(Messages.usageMessage(label));
}

/**
* TABキー補完が実行されたときに呼び出されるメソッド
* @param sender TABキー補完の実行者
* @param label 実行されたコマンドのラベル
* @param args 実行されたコマンドの引数
* @return 補完候補
*/
public List<String> onTabComplete(ChannelMember sender, String label, String[] args) {
if ( args.length == 1 ) {
// プレイヤー名で補完する
String arg = args[0].toLowerCase();
return getListPlayerNames(arg);

}
return new ArrayList<>();
}

/**
* 送信者以外のオンラインプレイヤーのうち、プレイヤー名が指定された文字列と前方一致するものをリストにして返す
* @param pre 検索キー
* @return プレイヤー名リスト
*/
private List<String> getListPlayerNames(String pre) {
String prefix = pre.toLowerCase();
List<String> items = new ArrayList<String>();
for ( String pname : LunaChat.getPlugin().getOnlinePlayerNames() ) {
if ( pname.toLowerCase().startsWith(prefix) ) {
items.add(pname);
}
}
return items;
}
}

0 comments on commit 9912870

Please sign in to comment.