diff --git a/resources/plugin.yml b/resources/plugin.yml index 1e38e0f..62db503 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -73,6 +73,11 @@ commands: description: Gestion des propriétaire des animaux apprivoisable usage: /animal [donner ] 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 diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/PandacraftUtils.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/PandacraftUtils.java index a8e8949..8d12bef 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/PandacraftUtils.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/PandacraftUtils.java @@ -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; diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandCoeur.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandCoeur.java new file mode 100644 index 0000000..7e497ca --- /dev/null +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandCoeur.java @@ -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; + } + +} diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandsManager.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandsManager.java index 76adab5..7163351 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandsManager.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandsManager.java @@ -53,6 +53,7 @@ public class CommandsManager { add(new CommandStaff()); add(new CommandSystem()); add(new CommandAnimal()); + add(new CommandCoeur()); } diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/modules/HeartThrowManager.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/modules/HeartThrowManager.java new file mode 100644 index 0000000..4c75fd4 --- /dev/null +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/modules/HeartThrowManager.java @@ -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 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); + } + + } + +} diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java index 31641b5..863d1d9 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/players/OnlinePlayer.java @@ -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; + } + + + + +