HAN1110
대표칭호 없음
HAN1110 9899e780ba984d89824a90ee8deb7cb2
이해도 | 플러그인 |
---|---|
게임버전 (JE) | 버킷 |
대충 제가 구현하는게 뭐냐면 그 Watchdog 밴 맞아요
package watchdog.command; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; import watchdog.utilities.Timer; import java.util.List; import org.bukkit.ChatColor; public class CommandMain implements CommandExecutor, TabExecutor { public Timer timer = new Timer(); @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (label.equalsIgnoreCase("watchdog")) { if (sender.isOp()) { sender.sendMessage(ChatColor.DARK_PURPLE + "[Watchdog] " + ChatColor.AQUA + ">> " + ChatColor.WHITE + "Not Making. Wait for Update"); } else { sender.sendMessage(ChatColor.DARK_PURPLE + "[Watchdog] " + ChatColor.AQUA + ">> " + ChatColor.WHITE + "Not Op user can't use AntiCheat Command"); } return true; } else if (label.equalsIgnoreCase("ban")) { } return false; } @Override public List<String> onTabComplete(CommandSender sender, Command cmd, String alias, String[] args) { return null; } }
현재 소스가 이정도인데
이제 여기서 ban 에서
/ban 플레이어_닉네임 시간 사유
순서로 만드려하거든요?
이제 딴건 다 알겠어요
근데 저기 뒤쪽에 커맨드 붙이는걸 못하곘어요
어떻게 하나요?
윈초
2022.03.19파라미터에 있는 args변수가 명령어에 argument를 담고있습니다
HAN1110
2022.03.20혹시 그럼 플레이어 닉네임 목록은 어떻게 arg 에 담나요?
윈초
2022.03.20arg에 담는다는건, 탭컴플리터 말씀이신가요?
HAN1110
2022.03.20tabcompleter 는 이미 할수있고
/ban <유저 이름> <시간> <사유>
순서인데 여기서 사유는 할수 있게됬지만
유저이름과 시간을 설정을 못하겠네요.
윈초
2022.03.20args[0]은 유저이름이구요, Bukkit.getPlayer(닉네임)으로 Player,받아올수 있어요
시간은 args[1]을 int로 바꾸시면 되죠
HAN1110
2022.03.21args[0] 을 어떻게 int 로 바꾸나요?
HAN1110
2022.03.21그 ban 을 할때 플레이어 닉네임을 어떻게 가져오는지 모르겠어요
윈초
2022.03.21밴할때 플레이어 닉네임이 필요한가요?
player.banPlayer("사유") 로 밴할수 있는데요.
HAN1110
2022.03.22자기 자신은 할수 있어도
다른 유저를 밴해야하잖아요
윈초
2022.03.22Bukkit.getPlayer(닉네임)으로 가져올수 있다고 위에 적어뒀는데요,
윈초
2022.03.21Integer.parseInt(String)
구글에 java string to int 만 검색해도 나오는내용인데요,
코코냐
2022.03.20답변의 경우 이미 다른 답변이 있어 생략하지만, 약간의 팁을 드리자면 기간밴은 타이머로 관리하는 것 보다는 접속 시도시에만 확인하는 것이 효율 면에서 더 좋습니다. 지금 방식으로는 100명을 기간밴 해버리면 타이머도 100개가 돌아가버리니까요..
HAN1110
2022.03.20그 문제는 해결됬습니다
banPlayer("reason",time) 으로 해결했네요