Créer un plugin qui change le message de connexion avec Sponge

0.00 avg. rating (0% score) - 0 votes
Partager:

Dans ce nouveau tuto sur l’API Sponge de Minecraft, on va voir comment personnaliser les messages de connexion et de déconnexion et ainsi y mettre ce que l’on veut. Les messages par défauts sont comme ça:

Message par défaut

Message par défaut

Une fois modifié:

Message modifié

Message modifié

Attention, tout les joueurs verront le même messages.

Comment on fait ? Il faut savoir quand un joueur se connecte et quand un joueur se déconnecte. Pour cela on va devoir utiliser les événements « ClientConnectionEvent.Join » et « ClientConnectionEvent.Disconnect« . Je pense que leur nom est assez évocateur ?

Donc le code de nos deux fonctions va ressembler à ça:


	@Listener
	//Quand un joueur se connecte:
	public void onPlayerJoin(ClientConnectionEvent.Join event) {
	}
	
	@Listener
	//Quand un joueur se déconnecte:
	public void onPlayerJoin(ClientConnectionEvent.Disconnect event) {
	}

Ensuite on doit récupérer le joueur qui c’est connecté ou déconnecté autrement ça ne sert à rien^^. Pour cela on fait:


Player player = (Player) event.getTargetEntity();

Pour avoir le nom du joueur on fait: « player.getName()« . Il ne reste plus qu’a envoyer le message dans la console ou aux joueurs.

Le code:


	@Listener
	//Quand un joueur se connecte:
	public void onPlayerJoin(ClientConnectionEvent.Join event) {
		Player player = (Player) event.getTargetEntity();
		event.setMessage( Texts.of("Bienvenue sur mon serveur " + player.getName() ) );
		logger.info(player.getName() + " c'est connecté" ); 
	}
	
	@Listener
	//Quand un joueur se déconnecte:
	public void onPlayerJoin(ClientConnectionEvent.Disconnect event) {
		Player player = (Player) event.getTargetEntity();
		event.setMessage( Texts.of("A la prochaine " + player.getName() ) );
		logger.info(player.getName() + " c'est déconnecté" ); 
	}

EDIT:

On peut aussi rajouter un truck du genre:

Un motd ?

Un motd ?

On peut ainsi complété en mettant des commandes utile pour les nouveaux, afficher les règles…

Code:


		PaginationService paginationService = event.getGame().getServiceManager().provide(PaginationService.class).get();

		paginationService.builder()
			.title(Texts.of("Bienvenue"+ player.getName()))
			.contents(
					Texts.of("Il y a " + game.getServer().getOnlinePlayers().size() + " joueur(s) sur " + game.getServer().getMaxPlayers() + " connecté(s) sur le serveur."))
			.header(Texts.of("Info:"))
			.paddingString("*")
			.sendTo(player);
			// .footer(Texts.of("Merci"))

Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
0.00 avg. rating (0% score) - 0 votes

Vous aimerez aussi...

Laisser un commentaire