Ajout de la commande /coeur qui permet au joueur de générer des coeurs au dessus de leur tête

This commit is contained in:
Marc Baloup 2015-02-14 03:17:33 -05:00
parent b51eb89f8d
commit 7c25ebc2ae
6 changed files with 127 additions and 0 deletions

View File

@ -73,6 +73,11 @@ commands:
description: Gestion des propriétaire des animaux apprivoisable
usage: /animal [donner <Pseudo>]
permission: pandacraft.animal
coeur:
description: Faire apparaitre des coeurs
usage: /coeur
permission: pandacraft.coeur
aliases: [heart, love]
@ -159,6 +164,11 @@ permissions:
description: Utiliser la commande animal pour tout les animaux
default: op
#### à ajouter
pandacraft.coeur:
description: Utiliser la commande animal pour tout les animaux
default: op
pandacraft.antispam.exempt:
description: Ignoré par le système anti-spam

View File

@ -6,6 +6,7 @@ import net.mc_pandacraft.java.plugin.pandacraftutils.modules.AutoMessagesManager
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.CalculatorManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.ChatAnalysisManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.CommandAliasManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.HeartThrowManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.LoginLogoutMessageManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.PacketOutServerInfoListener;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.SpawnTimeManager;
@ -51,6 +52,7 @@ public class PandacraftUtils extends JavaPlugin {
public EntitySpamManager entitySpamManager;
public TamedEntityProtectManager tamedEntityProtectManager;
public WorldBorderManager worldBorderManager;
public HeartThrowManager heartThrowManager;
@ -97,6 +99,7 @@ public class PandacraftUtils extends JavaPlugin {
entitySpamManager = new EntitySpamManager();
tamedEntityProtectManager = new TamedEntityProtectManager();
worldBorderManager = new WorldBorderManager();
heartThrowManager = new HeartThrowManager();
NetworkAPI.loadNewInstance();
@ -128,6 +131,7 @@ public class PandacraftUtils extends JavaPlugin {
entitySpamManager = null;
tamedEntityProtectManager = null;
worldBorderManager = null;
heartThrowManager = null;
instance = null;

View File

@ -0,0 +1,62 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.commands;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CommandCoeur extends AbstractCommandExecutor {
public CommandCoeur() {
super("coeur");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED+"seul un joueur en ligne peut effectuer cette commande");
return true;
}
Player p = (Player) sender;
OnlinePlayer op = OnlinePlayerManager.get(p);
boolean heartEnabled = op.toggleHeartThrow();
if (heartEnabled)
p.sendMessage(ChatColor.GREEN+"Activation des coeurs (au dessus de votre tête)");
else
p.sendMessage(ChatColor.GREEN+"Désactivation des coeurs");
if (heartEnabled && op.isVanished()) {
p.sendMessage(ChatColor.GOLD+"Attention : vous êtes vanish, mais les coeurs sont quand même visible pour les autres joueurs");
}
// cadeau spécial pour MissElwing
// TODO effacer du code après qu'elle l'aie vue une fois
if (heartEnabled && (p.getName().equals("MissElwing") || p.getName().equals("marcbal"))) {
String[] messages = {
ChatColor.GREEN+"",
ChatColor.GREEN+"♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥",
ChatColor.GREEN+"Coucou ma chérie <3 J'ai fait ce petit message rien que pour toi (personne d'autre peut le lire)", // sauf les devs qui auront accès au github x)
ChatColor.GREEN+"On dit que la St-Valentin est une fête commerciale, mais est-ce vraiment nécessaire de dépenser de l'argent pour prouver notre amour ?",
ChatColor.GREEN+"Moi, c'est autre chose que je dépense pour toi : c'est du temps et de l'énergie, et c'est presque gratuit :3 et en plus, je prends plaisir à ça :D",
ChatColor.GREEN+"J'ai pensé à toi en créant la commande /"+label+", permettant à un joueur de lancer des coeurs à volonté (tu sais, on a vu ça sur Mineplex ;) )",
ChatColor.GREEN+"En tout cas, sache que je t'aime fort fort fort, et j'espère que ce petit message à ton attention te fais plaisir :)",
ChatColor.GREEN+" (signé Marc, ton chéri d'amour)",
ChatColor.GREEN+"♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥",
};
p.sendMessage(messages);
}
return true;
}
}

View File

@ -53,6 +53,7 @@ public class CommandsManager {
add(new CommandStaff());
add(new CommandSystem());
add(new CommandAnimal());
add(new CommandCoeur());
}

View File

@ -0,0 +1,32 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.modules;
import java.util.Collection;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
import net.mc_pandacraft.java.util.bukkit.protocol.ParticleEffect;
import org.bukkit.scheduler.BukkitRunnable;
public class HeartThrowManager extends BukkitRunnable {
private final PandacraftUtils plugin = PandacraftUtils.getInstance();
public HeartThrowManager() {
plugin.getServer().getScheduler().runTaskTimer(plugin, this, 1L, 10L);
}
@Override
public void run() {
Collection<OnlinePlayer> players = OnlinePlayerManager.getAll();
for(OnlinePlayer op : players) {
if (!op.getHeartThrowEnabled()) continue;
ParticleEffect.HEART.display(0, 0, 0, 0, 1, op.getPlayer().getLocation().add(0, 1.8, 0), 20);
}
}
}

View File

@ -258,6 +258,24 @@ public class OnlinePlayer {
/*
* Spécial st valentin : apparition de coeur autour du joueur
*/
private boolean enableHeartThrow = false;
public boolean getHeartThrowEnabled() { return enableHeartThrow; }
public boolean toggleHeartThrow() {
enableHeartThrow = !enableHeartThrow;
return enableHeartThrow;
}