added trident handling
This commit is contained in:
parent
7301908ea8
commit
42e537e4cb
5
.gitignore
vendored
5
.gitignore
vendored
@ -1 +1,4 @@
|
|||||||
.idea
|
.idea
|
||||||
|
out
|
||||||
|
target
|
||||||
|
Tridentwar.iml
|
@ -1,5 +1,5 @@
|
|||||||
name: TridentWar
|
name: TridentWar
|
||||||
main: de.steev.tridentwar.main
|
main: de.steev.Tridentwar.Tridentwar
|
||||||
version: 0.1
|
version: 0.1
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
commands:
|
commands:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package de.steev.Tridentwar;
|
package de.steev.Tridentwar;
|
||||||
|
|
||||||
import de.steev.Tridentwar.commands.TridentwarCommand;
|
import de.steev.Tridentwar.commands.TridentwarCommand;
|
||||||
|
import de.steev.Tridentwar.listeners.PlayerDeathListener;
|
||||||
import de.steev.Tridentwar.listeners.ProjectileHitListener;
|
import de.steev.Tridentwar.listeners.ProjectileHitListener;
|
||||||
import de.steev.Tridentwar.listeners.ProjectileLaunchListener;
|
import de.steev.Tridentwar.listeners.ProjectileLaunchListener;
|
||||||
import de.steev.Tridentwar.manager.GameManager;
|
import de.steev.Tridentwar.manager.GameManager;
|
||||||
@ -15,6 +16,7 @@ public class Tridentwar extends JavaPlugin {
|
|||||||
this.gameManager = new GameManager(this);
|
this.gameManager = new GameManager(this);
|
||||||
getServer().getPluginManager().registerEvents(new ProjectileLaunchListener(this.gameManager, this), this);
|
getServer().getPluginManager().registerEvents(new ProjectileLaunchListener(this.gameManager, this), this);
|
||||||
getServer().getPluginManager().registerEvents(new ProjectileHitListener(this.gameManager), this);
|
getServer().getPluginManager().registerEvents(new ProjectileHitListener(this.gameManager), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new PlayerDeathListener(this.gameManager), this);
|
||||||
getCommand("tw").setExecutor(new TridentwarCommand(gameManager));
|
getCommand("tw").setExecutor(new TridentwarCommand(gameManager));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package de.steev.Tridentwar.listeners;
|
||||||
|
|
||||||
|
import de.steev.Tridentwar.manager.GameManager;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
|
|
||||||
|
public class PlayerDeathListener implements Listener {
|
||||||
|
private GameManager gameManager;
|
||||||
|
|
||||||
|
public PlayerDeathListener(GameManager gameManager) {
|
||||||
|
this.gameManager = gameManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerDeath(PlayerDeathEvent event) {
|
||||||
|
this.gameManager.getPlayerManager().playerDeath();
|
||||||
|
}
|
||||||
|
}
|
@ -25,14 +25,24 @@ public class GameManager {
|
|||||||
switch (gameState){
|
switch (gameState){
|
||||||
case ACTIVE:
|
case ACTIVE:
|
||||||
Bukkit.broadcastMessage("Active!");
|
Bukkit.broadcastMessage("Active!");
|
||||||
|
this.playerManager.setAlive(Bukkit.getOnlinePlayers().size());
|
||||||
this.playerManager.giveKits();
|
this.playerManager.giveKits();
|
||||||
break;
|
break;
|
||||||
case STARTING:
|
case STARTING:
|
||||||
|
if(Bukkit.getOnlinePlayers().size() < 2) return; // TODO: Message about minimal player count not beeing reached
|
||||||
Bukkit.broadcastMessage("Starting!");
|
Bukkit.broadcastMessage("Starting!");
|
||||||
this.gameStartCountdownTask = new GameStartCountdownTask(this);
|
this.gameStartCountdownTask = new GameStartCountdownTask(this);
|
||||||
this.gameStartCountdownTask.runTaskTimer(plugin, 0 , 20);
|
this.gameStartCountdownTask.runTaskTimer(plugin, 0 , 20);
|
||||||
// teleport players
|
// teleport players
|
||||||
// clear inventories
|
break;
|
||||||
|
case WON:
|
||||||
|
Bukkit.broadcastMessage("WON");
|
||||||
|
break;
|
||||||
|
case STOPPING:
|
||||||
|
Bukkit.broadcastMessage("Stopping Game");
|
||||||
|
break;
|
||||||
|
case ABORTING:
|
||||||
|
Bukkit.broadcastMessage("No Player Alive game aborts");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package de.steev.Tridentwar.manager;
|
package de.steev.Tridentwar.manager;
|
||||||
|
|
||||||
public enum GameState {
|
public enum GameState {
|
||||||
LOBBY, STARTING, ACTIVE, WON, RESTARTING, STOPPING;
|
LOBBY, STARTING, ACTIVE, WON, RESTARTING, STOPPING, ABORTING;
|
||||||
}
|
}
|
||||||
|
@ -8,16 +8,26 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
public class PlayerManager {
|
public class PlayerManager {
|
||||||
private GameManager gameManager;
|
private GameManager gameManager;
|
||||||
|
private int alive = 0;
|
||||||
|
|
||||||
public PlayerManager(GameManager gameManager) {
|
public PlayerManager(GameManager gameManager) {
|
||||||
this.gameManager = gameManager;
|
this.gameManager = gameManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void giveKits() {
|
public void giveKits() { Bukkit.getOnlinePlayers().stream().filter(player -> player.getGameMode() == GameMode.SURVIVAL).forEach(this::giveKit); }
|
||||||
Bukkit.getOnlinePlayers().stream().filter(player -> player.getGameMode() == GameMode.SURVIVAL).forEach(this::giveKit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void giveKit(Player player){
|
public void giveKit(Player player){
|
||||||
player.getInventory().addItem(new ItemStack(Material.TRIDENT));
|
player.getInventory().addItem(new ItemStack(Material.TRIDENT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void playerDeath(){
|
||||||
|
this.alive--;
|
||||||
|
if(this.alive == 1) {
|
||||||
|
this.gameManager.setGameState(GameState.WON);
|
||||||
|
} else if(this.alive == 0) {
|
||||||
|
this.gameManager.setGameState(GameState.ABORTING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAlive() { return alive; }
|
||||||
|
public void setAlive(int alive) { this.alive = alive; }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user