Pour créer une commande tu as ce tutoriel sur MFF :
https://www.minecraftforgefrance.fr/topic/4471/créer-une-commande
Bon après je n'utilise pas Forge donc faudra sûrement changer des trucs, mais normalement l'idée est là.
Pour le bannissement permanent :
Java:
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if(args.length == 0) {
throw new WrongUsageException(this.getUsage(sender));
}
final String playerName = args[0];
final EntityPlayerMP player = CommandBase.getPlayer(server, sender, playerName);
final GameProfile playerProfile = player.getGameProfile();
final PlayerList playerList = server.getPlayerList();
final UserListBans userBans = playerList.getBannedPlayers();
final UserListIPBans ipBans = playerList.getBannedIPs();
final Date startDate = new Date(); // now
final Date endDate = null;
final String banner = sender.getName();
final String reason = "unspecified";
if(!userBans.hasEntry(playerProfile)) {
userBans.addEntry(new UserListBansEntry(playerProfile, startDate, banner, endDate, reason));
// FIXME: kick player
}
try {
userBans.writeChanges();
}
catch(IOException e) {
throw new CommandException("save to disk failed", e);
}
}
Je n'ai pas vraiment trouvé comment faire un BanIP ni comment le jeu déconnecte le joueur à l'activation du
/ban
standard, après puisque toi tu as le code source le plus simple est d'ouvrir les deux commandes vanilla et de regarder comment ils font ça.
Sur IntelliJ il faut faire
CTRL
+
N
, sur Eclipse il faut faire
CTRL
+
SHIFT
+
T
, puis dans les deux cas rentrer le nom de la classe à rechercher (
CommandBanPlayer
et
CommandBanIp
).
La plupart du temps, développer un mod c'est surtout copier-coller le code source vanilla en l'adaptant à nos besoins, donc là si tu veux réunir deux commandes, le mieux est de regarder comment elles sont faites en vanilla.