Rework events
This commit is contained in:
parent
21ab16c11e
commit
1e922c93a8
4 changed files with 46 additions and 36 deletions
|
@ -1,13 +1,34 @@
|
|||
package gent.zeus.mc13dtl.events;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scoreboard.Team;
|
||||
|
||||
public interface Event {
|
||||
public String getMessage();
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
|
||||
public int getScore();
|
||||
public abstract class Event {
|
||||
protected Team team;
|
||||
|
||||
public int getDifficultyThreshold();
|
||||
|
||||
public void run(Player player);
|
||||
public Event(Team team) {
|
||||
this.team = team;
|
||||
for (Player player : getPlayers()) {
|
||||
player.sendMessage(ChatColor.GRAY + "" + ChatColor.ITALIC + getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
protected List<Player> getPlayers() {
|
||||
List<Player> players = new ArrayList<>();
|
||||
for (String entry : team.getEntries()) {
|
||||
Player player = Bukkit.getPlayer(entry);
|
||||
if (player != null) {
|
||||
players.add(player);
|
||||
}
|
||||
}
|
||||
return players;
|
||||
}
|
||||
|
||||
protected abstract String getMessage();
|
||||
}
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
package gent.zeus.mc13dtl.events;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scoreboard.Team;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Arrays;
|
||||
import gent.zeus.mc13dtl.events.catalog.TestEvent;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
|
||||
public class RandomEventExecutor {
|
||||
static List<Event> events = Arrays.asList(new TestEvent());
|
||||
static List<Class<? extends Event>> events = Arrays.asList(TestEvent.class);
|
||||
|
||||
public static void executeRandomEvent(Player player) {
|
||||
public static void executeRandomEvent(Team team) {
|
||||
Random random = new Random();
|
||||
int i = random.nextInt(events.size());
|
||||
Event event = events.get(i);
|
||||
player.sendMessage(ChatColor.ITALIC + event.getMessage());
|
||||
event.run(player);
|
||||
Class<? extends Event> event = events.get(i);
|
||||
try {
|
||||
event.getConstructor(Team.class).newInstance(team);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@ package gent.zeus.mc13dtl.events;
|
|||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.bukkit.scoreboard.Team;
|
||||
|
||||
import gent.zeus.mc13dtl.MC13DTL;
|
||||
|
||||
|
@ -16,12 +16,8 @@ public class RandomEventRunner implements Runnable {
|
|||
long lastRunDay = world.getPersistentDataContainer().get(eventKey, PersistentDataType.LONG);
|
||||
long day = Bukkit.getWorld("world").getFullTime() / 24000;
|
||||
if (day > lastRunDay && Bukkit.getWorld("world").getTime() >= 14000) {
|
||||
for (OfflinePlayer i : Bukkit.getOfflinePlayers()) {
|
||||
if (i.isOnline()) {
|
||||
RandomEventExecutor.executeRandomEvent(i.getPlayer());
|
||||
} else {
|
||||
// TODO: Punishment
|
||||
}
|
||||
for (Team i : MC13DTL.scoreboard.getTeams()) {
|
||||
RandomEventExecutor.executeRandomEvent(i);
|
||||
}
|
||||
world.getPersistentDataContainer().set(eventKey, PersistentDataType.LONG, day);
|
||||
}
|
||||
|
|
|
@ -1,26 +1,17 @@
|
|||
package gent.zeus.mc13dtl.events.catalog;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scoreboard.Team;
|
||||
|
||||
import gent.zeus.mc13dtl.events.Event;
|
||||
|
||||
public class TestEvent implements Event {
|
||||
public class TestEvent extends Event {
|
||||
public TestEvent(Team team) {
|
||||
super(team);
|
||||
System.err.println("test");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
protected String getMessage() {
|
||||
return "test";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getScore() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDifficultyThreshold() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(Player player) {
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue