Timer done !

This commit is contained in:
BunSLaPatate
2018-09-13 19:07:52 +02:00
parent f99f46212b
commit 9acff617c0
13 changed files with 213 additions and 14 deletions

View File

@@ -3,6 +3,13 @@
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<userChosenTypes>
<map>
<entry key="PAPER" value="false" />
<entry key="SPIGOT" value="true" />
<entry key="BUKKIT" value="false" />
</map>
</userChosenTypes>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>

View File

@@ -7,11 +7,22 @@ version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
repositories {
mavenCentral()
maven {
name 'Sonatype'
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
maven {
name 'Spigot'
url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
}
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compileOnly 'org.spigotmc:spigot-api:1.12.2-R0.1-SNAPSHOT'
}

View File

@@ -88,6 +88,11 @@ public class WitchPlayer {
return WitchPlayer.witchMap;
}
public void removePlayer(){
if (WitchPlayer.witchMap.get(player) == null) return;
witchMap.remove(player);
}
static {
WitchPlayer.witchMap = new HashMap<>();
}

View File

@@ -3,12 +3,11 @@ package net.berrygames.witchrush;
import net.berrygames.witchrush.commands.CommandsManager;
import net.berrygames.witchrush.game.GameState;
import net.berrygames.witchrush.listeners.ListenersManager;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.List;
public class WitchRush extends JavaPlugin {
private static WitchRush instance;
@@ -17,7 +16,9 @@ public class WitchRush extends JavaPlugin {
@Override
public void onEnable() {
gameState = GameState.WAITING;
instance = this;
this.gameState = GameState.WAITING;
new CommandsManager().register(this);
new ListenersManager().register(this);
@@ -38,6 +39,10 @@ public class WitchRush extends JavaPlugin {
System.out.println("Desactive");
System.out.println("*-*-*-*-*-*-*-*");
super.onDisable();
for(Player pls : Bukkit.getOnlinePlayers()){
pls.kickPlayer(ChatColor.RED+"Le serveur redémarre");
}
}
public void setState(GameState state){
@@ -48,10 +53,10 @@ public class WitchRush extends JavaPlugin {
}
public static WitchRush get() {
return WitchRush.instance;
return instance;
}
public static String prefix(){
return "&5&lWitchRush &8&l| &d";
return "§5§lWitchRush §8§l| §d";
}
}

View File

@@ -1,11 +1,12 @@
package net.berrygames.witchrush.commands;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.commands.admins.GameCMD;
public class CommandsManager {
public void register(WitchRush main){
main.getCommand("game").setExecutor(new GameCMD());
System.out.println("Commandes register");
}

View File

@@ -0,0 +1,31 @@
package net.berrygames.witchrush.commands.admins;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.GameState;
import net.berrygames.witchrush.game.StartTask;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class GameCMD implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(!(sender instanceof Player)) return false;
Player player = (Player) sender;
WitchPlayer witchPlayer = WitchPlayer.get(player);
if(args.length == 1 && args[0].equals("start")){
if(!player.isOp())return false;
new StartTask().runTaskTimer(WitchRush.get(), 0, 20);
WitchRush.get().setState(GameState.STARTING);
Bukkit.broadcastMessage(WitchRush.prefix()+"§c"+player.getName()+" a forcé le démarrage de la partie !");
}
return false;
}
}

View File

@@ -0,0 +1,16 @@
package net.berrygames.witchrush.game;
import net.berrygames.witchrush.WitchRush;
import org.bukkit.scheduler.BukkitRunnable;
public class NoPVPTask extends BukkitRunnable {
private int timer = 60 * 3;
@Override
public void run() {
WitchRush.get().setState(GameState.NOPVP);
timer--;
}
}

View File

@@ -0,0 +1,36 @@
package net.berrygames.witchrush.game;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.WitchRush;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
public class StartTask extends BukkitRunnable {
private int timer = 120;
@Override
public void run() {
if(timer == 0){
new NoPVPTask().runTaskTimer(WitchRush.get(), 0, 20);
Bukkit.broadcastMessage(WitchRush.prefix()+"§CLa partie commence ! Vous avez 3minutes pour vous preparer !");
cancel();
}
if(timer == 120 || timer == 60 || timer == 30 || timer == 15
|| timer == 10 || timer == 5 || timer == 4 || timer == 3 || timer == 2){
Bukkit.broadcastMessage(WitchRush.prefix()+"Lancement de la partie dans §5"+timer+" §dsecondes");
}
if(timer == 1){
Bukkit.broadcastMessage(WitchRush.prefix()+"Lancement de la partie dans §5"+timer+" §dseconde");
}
for(Player pls : Bukkit.getOnlinePlayers()){
pls.setLevel(timer);
}
timer--;
}
}

View File

@@ -2,6 +2,7 @@ package net.berrygames.witchrush.listeners;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.listeners.players.PlayerJoin;
import net.berrygames.witchrush.listeners.players.PlayerQuit;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
@@ -12,6 +13,7 @@ public class ListenersManager {
// --- PLAYERS ---//
pm.registerEvents(new PlayerJoin(), main);
pm.registerEvents(new PlayerQuit(), main);
// --- WORLD ---//

View File

@@ -3,6 +3,8 @@ package net.berrygames.witchrush.listeners.players;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.GameState;
import net.berrygames.witchrush.game.StartTask;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -14,20 +16,25 @@ public class PlayerJoin implements Listener {
@EventHandler
public void join(PlayerJoinEvent e){
Player player = e.getPlayer();
WitchPlayer witchPlayer = new WitchPlayer(player);
WitchPlayer witchPlayer = WitchPlayer.get(player);
if(WitchRush.get().getState().equals(GameState.WAITING) ||
WitchRush.get().getState().equals(GameState.STARTING)){
if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){
e.setJoinMessage(
WitchRush.prefix()+player.getName()
+" a rejoint la partie §7(§d"
+WitchPlayer.getwitchMap().size()
+"§8/§d16§7)");
WitchRush.prefix()+player.getName()+
" a rejoint la partie §7(§d"+
WitchPlayer.getwitchMap().size()+
"§8/§d16§7)");
player.setGameMode(GameMode.ADVENTURE);
player.setLevel(0);
player.setHealth(20);
player.setFoodLevel(20);
witchPlayer.teleportPlayer();
witchPlayer.sendGameScoreboard();
if(WitchPlayer.getwitchMap().size() >= 4){
new StartTask().runTaskTimer(WitchRush.get(), 0, 20);
WitchRush.get().setState(GameState.STARTING);
}
}
}
}

View File

@@ -0,0 +1,27 @@
package net.berrygames.witchrush.listeners.players;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.StartTask;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
public class PlayerQuit implements Listener {
@EventHandler
public void quit(PlayerQuitEvent e){
Player player = e.getPlayer();
WitchPlayer witchPlayer = WitchPlayer.get(player);
witchPlayer.removePlayer();
if(WitchPlayer.getwitchMap().size() < 4){
Bukkit.broadcastMessage(WitchRush.prefix()+"§CLe lancement de la partie est annulé. Il n'y a pas assez de joueurs !");
new StartTask().cancel();
}
}
}

View File

@@ -0,0 +1,43 @@
package net.berrygames.witchrush.tools;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
public enum Locations {
//PLAYERS
PLAYER_SPAWN_WAITING_ROOM(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
PLAYER_SPAWN_BLEU(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
PLAYER_SPAWN_ROUGE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
PLAYER_SPAWN_JAUNE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
PLAYER_SPAWN_VERT(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
SPAWN_SPECTATORS(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
//WITCH
WITCH_BLEU(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
WITCH_ROUGE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
WITCH_JAUNE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
WITCH_ERT(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
//PNJ SHOP
SHOP_BLEU(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
SHOP_ROUGE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
SHOP_JAUNE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
SHOP_VERT(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
//PNJ SOLO UPGRADE
UPGRADE_BLEU(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
UPGRADE_ROUGE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
UPGRADE_JAUNE(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
UPGRADE_VERT(new Location(Bukkit.getWorld("world"), 0, 0, 0)),
;
private Location location;
Locations(Location location) {
this.location = location;
}
}

View File

@@ -0,0 +1,8 @@
name: WitchRush
version: 1.0
author: BunSLaPatate
main: net.berrygames.witchrush.WitchRush
website: berrygames.net
commands:
game: