Source: https://www.bukkit.fr/profile/22288-frivec/
Timestamp: 2018-01-18 17:41:56+00:00

Document:
Frivec - Bukkit France
Frivec
À propos de Frivec
Bukkitorg www.bukkit.fr
Minecraft Frivec
Bug de timer
Frivec a répondu à un nouveau sujet de Frivec dans Développement
Oui c'est moi qui ai codé cela. Par ailleur, j'ai résolu mon problème. Vous pouvez lock si un modo passe par là.
D'accord, je vais changer tout cela et je te dis si ça marche J'ai testé plusieurs méthode pour faire exécuter différemment le PreGamee.start(); mais rien ne marche :/ Aurais-tu une solution s'il te plait ?
Ok, voici les deux classes alors: Join: public static int task; public static int timer = 121; @EventHandler public void join(PlayerJoinEvent e){ ItemStack r = new ItemStack(Material.WRITTEN_BOOK); BookMeta rM = (BookMeta) r.getItemMeta(); rM.setTitle("§aRègles du jeu"); rM.setAuthor("§4Supra§aCube"); List<String> pages = new ArrayList<>(); pages.add("§9Bienvenue en UPT-TPU \n\n\n\n\n\n\n\n\n §2(Il paraît que même les admins ne savent pas ce que cela veut dire)"); pages.add("§6§lRègles >> \n\n§9- Vous et 15 autres joueurs avez été dispatchés dans 4 labyrinthes. \n\n§5Votre but: \n\nVous créer un stuff durant la phase de préparation puis tuer tous les joueurs."); pages.add("§5Vous disposez d'un casque de mineur, d'une pioche, d'une hâche ainsi que d'un coffre avec du matériaux et des vivres.\n\n§6§lFonctionnement >> \n\n§9Phases: \n§3Préparation \nCombat \nDeathMatch"); pages.add("§6§lInfos >> \n\n §9Les blocs d'§eor §9vous téléportent dans un autre labyrinthe.\n\nLes blocs de §7fer §9vous téléportent non loin du centre de votre labyrinthe.\n\nLes blocs de §8roches §9vous téléportent dans une zone secrète."); pages.add("\n\n\n§c§lLe jeu est en bêta. Des bugs peuvent apparaîtres. Merci de les signaler sur le forum ou directement à Frivec"); pages.add("\n\n\n §9§lBon jeux sur \n\n	§4§lSupra§a§lCube"); rM.setPages(pages); r.setItemMeta(rM); ItemStack kit = new ItemStack(Material.NETHER_STAR); ItemMeta kitM = kit.getItemMeta(); kitM.setDisplayName("§9Kits §c(Prochainement)"); kit.setItemMeta(kitM); ItemStack bed = new ItemStack(Material.BED); ItemMeta bedM = bed.getItemMeta(); bedM.setDisplayName("§cRetour au lobby"); bed.setItemMeta(bedM); e.setJoinMessage(""); Player p = e.getPlayer(); Inventory inv = p.getInventory(); if(!States.isState(States.WAIT)){ p.teleport(new Location(Bukkit.getWorld("world"), 44, 54, 42)); p.setGameMode(GameMode.SPECTATOR); p.sendMessage("§6La partie a déjà commencée. Vous avez été passé en spectateur."); return; } if(States.isState(States.WAIT)){ if(!Main.getInstance().online.contains(p.getUniqueId())){ Main.getInstance().online.add(p); for(Player pl : Main.getInstance().online){ p.setLevel(0); Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "minecraft:clear " + p.getName()); p.setGameMode(GameMode.SURVIVAL); p.teleport(new Location(Bukkit.getWorld("world"), 44, 54, 42)); Title.sendActionBar(pl, p.getDisplayName() + " §ba rejoint la partie. §7(§6" + Main.getInstance().online.size() + "§b/§620§7)"); new Sounds(pl).playSound(Sound.BLOCK_NOTE_PLING); inv.setItem(0, r); inv.setItem(4, kit); inv.setItem(8, bed); } if(Main.getInstance().online.size() == 8){ task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable(){ @Override public void run() { timer--; for(Player players : Bukkit.getOnlinePlayers()){ if(timer == 120 || timer == 60 || timer == 30 || timer == 15 || timer == 10){ Bukkit.broadcastMessage("§7[§6UPT TPU§7] §bDémarrage dans §6" + timer + " §bsecondes !"); } if(timer == 5){; Title.sendTitle(players, "§65 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 4){ Title.sendTitle(players, "§64 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 3){ Title.sendTitle(players, "§63 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 2){ Title.sendTitle(players, "§62 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 1){ Title.sendTitle(players, "§61 §bseconde", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 0){ Locations.teleportplayers(); PreGame.start(); Bukkit.getScheduler().cancelTask(task); } } } }, 20l, 20l); } } } } @EventHandler public void quit(PlayerQuitEvent e){ Player p = e.getPlayer(); e.setQuitMessage(""); if(!Main.getInstance().online.contains(p)){ return; } if(Main.getInstance().online.contains(p)){ for(Player pl : Main.getInstance().online){ Main.getInstance().online.remove(p); Title.sendActionBar(pl, p.getDisplayName() + " §ba quitté la partie. §7(§6" + Main.getInstance().online.size() + "§b/§620§7)"); FinishEvent.checkWin(); } } } } Et ForceStart, qui reprend le même code que Join mais sous forme de commande: public static int task; static int timer = 35; @Override public boolean onCommand(CommandSender sender, Command cmd, String msg, String[] args) { Player p = (Player)sender; if(sender instanceof Player){ if(args.length == 0){ if(!p.hasPermission("forcestart.use")){ p.sendMessage("§cVous ne pouvez pas éxécuter cette commande."); }else{ States.setState(States.WAIT); p.sendMessage("§9[§cMode admin§9] §6Vous avez passé le jeu en phase démarrage !"); for(Player pl : Main.getInstance().online){ pl.sendMessage("§cDémarrage du jeu forcé par: §6" + p.getName() + "§c !"); } task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable(){ @Override public void run() { timer--; for(Player players : Main.getInstance().online){ if(timer == 30){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §630 §bsecondes !"); } if(timer == 10){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §610 §bsecondes !"); } if(timer == 5){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §65 §bsecondes !"); Title.sendTitle(players, "§65 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 4){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §64 §bsecondes !"); Title.sendTitle(players, "§64 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 3){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §63 §bsecondes !"); Title.sendTitle(players, "§63 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 2){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §62 §bsecondes !"); Title.sendTitle(players, "§62 §bsecondes", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 1){ players.sendMessage("§7[§6UPT TPU§7] §bDémarrage dans §61 §bsecondes !"); Title.sendTitle(players, "§61 §bseconde", "", 30); new Sounds(players).playSound(Sound.BLOCK_NOTE_PLING); } if(timer == 0){ PreGame.start(); Bukkit.getScheduler().cancelTask(task); } } } }, 20l, 20l); } } } return false; } } Je tiens à préciser que le timer des classes Join et ForceStart fonctionnent parfaitement. Ce que je comprends pas c'est pourquoi celui de la classe PreGame ne fonctionne pas alors que c'est le même type de timer :/
Désolé je n'y arrive pas vraiment :/ Tu m'as demandé de t'envoyer mon code, mais de quelle classe ? Ce lui où le timer ou une autre ?
Ma méthode est appelée par le timer de base (quand il y a assez de joueurs) et quand un admin fait une commande pour forcer le démarrage. Je ne sais pas si c'est cela qui est en cause. Pour le currentmillis, je vais essayer et je te dis ensuite
Frivec a posté un sujet dans Développement
Version (serveur) : 1.9.4 API utilisée : Spigot 1.9.4 Explications du problème rencontré: Le timer s'écoule plus vite que prébu en fonction du nombre de joueurs Recherches effectuées :Internet, Forum Bukkit(en/fr), Forum Spigot Code: package fr.Frivec.game; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import fr.Frivec.Main; import fr.Frivec.utils.Locations; import fr.Frivec.utils.Sounds; import fr.Frivec.utils.Title; public class PreGame { public static int task; public static int timer = 0; public static void start(){ States.setState(States.PREGAME); Locations.teleportplayers(); Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "gamerule doDaylightCycle false"); Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "gamerule doDaylightCy false"); Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "gamerule sendCommandFeedback false"); Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "gamerule commandBlockOutput false"); Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "time set 6000"); for(Player pl : Main.getInstance().online){ pl.getInventory().clear(); pl.setGameMode(GameMode.SURVIVAL); new Sounds(pl).playSound(Sound.ENTITY_ENDERDRAGON_GROWL); Title.sendTitle(pl, "§6§lGo !", "§cPhase: §bPréparation", 25); pl.getInventory().setItem(0, new ItemStack(Material.IRON_PICKAXE, 1)); pl.getInventory().setItem(1, new ItemStack(Material.IRON_AXE, 1)); pl.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET, 1)); pl.getInventory().setItem(8, new ItemStack(Material.BREAD, 32)); Title.sendActionBar(pl, "Vous avez 5 minutes pour vous préparer, miner et forger une équipe!"); } task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable(){ @Override public void run() { timer++; if(timer == 120 || timer == 60 || timer == 30 || timer == 15 || timer == 10 || timer == 5 || timer == 4 || timer == 3 || timer == 2 || timer == 1){ Bukkit.broadcastMessage("§9Fin de la préparation dans §6" + timer + " §9seconde(s)."); } if(timer == 0){ GamePvP.game(600); Bukkit.getScheduler().cancelTask(task); } } }, 20l, 20l); } }
Erreur dans le code de mon plugin
Problème résolu. Merci. Un modérateur peut fermer ce topic ?
Je vois voir pour régler ça. Merci de ta réponse
Frivec a commencé à suivre Erreur dans le code de mon plugin 16 Jan 2017
Plateforme: Spigot Version: 1.8.7 Plugin concerné: Le mien Recherches éffectuées: Google, Bukkit France et Anglais Problème: Bonjour. J'apprends à développer des plugins en Java et j'ai créer du coup un petit plugin. Je l'ai testé sur mon serveur en local, et il fonctionne mais dès que je le passe sur mon serveur héberger, il ne fonctionne plus et affiche un message d'erreur. J'ai cherché sur le web mais je n'ai rien trouver qui puisse m'aider. Mon mis spigot 1.8.7 sur mon plugin en "build path" et sur mon serveur aussi et ce sont bien les deux même. Voilà mon problème et merci de votre aide si vous pouvez m'aider Un screen de la console est mis avec la conversation. PS: Désolé si je me suis trompé de catégorie pour poster ce message, je n'utilise pas beaucoup le forum Image: http://www.noelshack.com/2017-03-1484592465-2017-01-16.jpg
Plugin de broadcast personnalisé.
Frivec a répondu à un nouveau sujet de Frivec dans Recherches & Idées de plugins
Hélas, je ne suis qu'un apprenti codeur. Je ne connais pas grand chose aux codes java pour le moment mais j'apprends. Si possible, je voudrai un plugin plus ou moins déjà fait mais que je pourrai configurer moi même. Si vous en connaissez, merci d'avance.
Frivec a posté un sujet dans Recherches & Idées de plugins
Bonjour, bonsoir. Je recherche un plugin pour faire des broadcast personnalisés un peu dans le style du /mod d'Epicube. Je suis au courant que ce plugin est sûrement privé mais je cherche un plugin similaire. J'ai fait mes recherches de mon côté et je suis tombé sur simpleboradcast mais il ne me convient pas vraiment. Pour ceux qui ne savennt pas ou plus, le /mod a une présentation comme ça: [MODERATION] pseudodumodo: message Si vous pouviez m'aider, ce serai gentil. Cordialement. Frivec.

References: §2
 §9
 §9
 §7
 §9
 §8
 §9
 §9
	§4
 §7
 §6
 §7
 §6
 §6
 §630
 §610
 §65
 §64
 §63
 §62
 §61
 §6
 §9