refactor
This commit is contained in:
@@ -11,14 +11,10 @@
|
|||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
<repository>
|
<repository>
|
||||||
<id>gitea</id>
|
<id>forgejo</id>
|
||||||
|
<name>Forgejo Maven</name>
|
||||||
<url>http://heimserver.local:36107/api/packages/minecraft/maven</url>
|
<url>http://heimserver.local:36107/api/packages/minecraft/maven</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<snapshotRepository>
|
|
||||||
<id>gitea</id>
|
|
||||||
<url>http://heimserver.local:36107/api/packages/minecraft/maven</url>
|
|
||||||
</snapshotRepository>
|
|
||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>21</maven.compiler.source>
|
<maven.compiler.source>21</maven.compiler.source>
|
||||||
|
|||||||
@@ -1,14 +1,5 @@
|
|||||||
package com.softwarerat.API.builder;
|
package com.softwarerat.API.builder;
|
||||||
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.inventory.ItemFlag;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.inventory.meta.FireworkEffectMeta;
|
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -17,11 +8,20 @@ import java.util.Objects;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.DyeColor;
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.FireworkEffect;
|
import org.bukkit.FireworkEffect;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
|
import org.bukkit.inventory.ItemFlag;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.FireworkEffectMeta;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
// Another Item Builder
|
// Another Item Builder
|
||||||
public class SpigotItem {
|
public class SpigotItem {
|
||||||
private ItemStack itemStack;
|
private ItemStack itemStack;
|
||||||
@@ -29,7 +29,7 @@ public class SpigotItem {
|
|||||||
|
|
||||||
private String colorCode(@Nonnull String message) { return ChatColor.translateAlternateColorCodes('&', message); }
|
private String colorCode(@Nonnull String message) { return ChatColor.translateAlternateColorCodes('&', message); }
|
||||||
|
|
||||||
public SpigotItem(@Nonnull Material material, @Nonnull int amount) {
|
public SpigotItem(@Nonnull Material material, int amount) {
|
||||||
this.itemStack = new ItemStack(material, amount);
|
this.itemStack = new ItemStack(material, amount);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,5 @@
|
|||||||
package com.softwarerat.API.commands;
|
package com.softwarerat.API.commands;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataOutput;
|
|
||||||
import com.google.common.io.ByteStreams;
|
|
||||||
import com.softwarerat.API.builder.SpigotInventory;
|
|
||||||
import com.softwarerat.API.builder.SpigotItem;
|
|
||||||
import com.softwarerat.API.builder.SpigotUI;
|
|
||||||
import com.softwarerat.GameAPI;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -16,6 +9,12 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import com.google.common.io.ByteArrayDataOutput;
|
||||||
|
import com.google.common.io.ByteStreams;
|
||||||
|
import com.softwarerat.API.builder.SpigotInventory;
|
||||||
|
import com.softwarerat.API.builder.SpigotItem;
|
||||||
|
import com.softwarerat.API.builder.SpigotUI;
|
||||||
|
|
||||||
//Default Navigator
|
//Default Navigator
|
||||||
public class Navigator implements CommandExecutor {
|
public class Navigator implements CommandExecutor {
|
||||||
JavaPlugin javaPlugin;
|
JavaPlugin javaPlugin;
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
package com.softwarerat.API.data;
|
package com.softwarerat.API.data;
|
||||||
|
|
||||||
import com.softwarerat.API.gameState.GameState;
|
import java.util.List;
|
||||||
import com.softwarerat.API.gameType.GameType;
|
|
||||||
import com.softwarerat.API.location.PlayerSpawnLocation;
|
|
||||||
import com.softwarerat.GameAPI;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
|
||||||
|
|
||||||
import java.util.List;
|
import com.softwarerat.API.data.gameState.GameStateManager;
|
||||||
|
import com.softwarerat.API.data.gameType.GameType;
|
||||||
|
import com.softwarerat.API.data.location.PlayerSpawnLocation;
|
||||||
|
import com.softwarerat.GameAPI;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
// Server related Data
|
// Server related Data
|
||||||
// made possible with Lombok
|
// made possible with Lombok
|
||||||
@Getter
|
@Getter
|
||||||
@@ -22,7 +22,7 @@ public class GameData {
|
|||||||
List<PlayerSpawnLocation> spawnLocations;
|
List<PlayerSpawnLocation> spawnLocations;
|
||||||
PlayerSpawnLocation defaultSpawnLocation;
|
PlayerSpawnLocation defaultSpawnLocation;
|
||||||
GameAPI gameapi;
|
GameAPI gameapi;
|
||||||
GameState currentGameState;
|
GameStateManager gameStateManager;
|
||||||
Location mapLocation;
|
Location mapLocation;
|
||||||
String primaryKit;
|
String primaryKit;
|
||||||
String secondaryKit;
|
String secondaryKit;
|
||||||
@@ -33,6 +33,7 @@ public class GameData {
|
|||||||
Scoreboard scoreboard;
|
Scoreboard scoreboard;
|
||||||
public GameData(GameAPI gameapi) {
|
public GameData(GameAPI gameapi) {
|
||||||
this.gameapi = gameapi;
|
this.gameapi = gameapi;
|
||||||
|
this.gameStateManager = new GameStateManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGameHost(JavaPlugin javaPlugin){
|
public String getGameHost(JavaPlugin javaPlugin){
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.softwarerat.API.data.gameState;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class GameStateManager {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private final IGameState[] gameStates;
|
||||||
|
|
||||||
|
private int currentStateId;
|
||||||
|
|
||||||
|
public GameStateManager(IGameState... gameStates) {
|
||||||
|
this.gameStates = gameStates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IGameState getCurrentState() {
|
||||||
|
if (this.currentStateId < 0 || this.currentStateId >= this.gameStates.length)
|
||||||
|
return null;
|
||||||
|
return this.gameStates[this.currentStateId];
|
||||||
|
}
|
||||||
|
|
||||||
|
public IGameState nextState() {
|
||||||
|
if (this.currentStateId + 1 == this.gameStates.length)
|
||||||
|
throw new IllegalStateException("No states remaining");
|
||||||
|
|
||||||
|
IGameState oldState = getCurrentState();
|
||||||
|
this.currentStateId++;
|
||||||
|
IGameState newState = getCurrentState();
|
||||||
|
oldState.Stop();
|
||||||
|
newState.Start(this);
|
||||||
|
return newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SafeVarargs
|
||||||
|
public final boolean isCurrentGameState(Class<? extends IGameState>... states) {
|
||||||
|
return Arrays.<Class<? extends IGameState>>stream(states).anyMatch(state -> state.isInstance(getCurrentState()));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.softwarerat.API.data.gameState;
|
||||||
|
|
||||||
|
public interface IGameState {
|
||||||
|
|
||||||
|
public void Start(GameStateManager manager);
|
||||||
|
public void Stop();
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.gameType;
|
package com.softwarerat.API.data.gameType;
|
||||||
|
|
||||||
public enum GameType {
|
public enum GameType {
|
||||||
GAME_TYPE_MINIGAME,
|
GAME_TYPE_MINIGAME,
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.location;
|
package com.softwarerat.API.data.location;
|
||||||
|
|
||||||
import com.softwarerat.API.data.GameData;
|
import com.softwarerat.API.data.GameData;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
+8
-6
@@ -1,12 +1,14 @@
|
|||||||
package com.softwarerat.API.location;
|
package com.softwarerat.API.data.location;
|
||||||
|
|
||||||
import com.softwarerat.API.gameType.GameType;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
|
||||||
|
import com.softwarerat.API.data.gameType.GameType;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
// Game related Player spawn Location
|
// Game related Player spawn Location
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package com.softwarerat.API.data.player;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import com.softwarerat.API.data.store.CacheManager;
|
||||||
|
import com.softwarerat.API.data.store.FlagManager;
|
||||||
|
import com.softwarerat.API.event.PlayerFlagUpdateEvent;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class GamePlayer extends CacheManager implements FlagManager<PlayerFlag> {
|
||||||
|
private static final String FLAG_KEY = "__flag__";
|
||||||
|
|
||||||
|
private final org.bukkit.entity.Player bukkitPlayer;
|
||||||
|
|
||||||
|
private Location enterSpectateLocation;
|
||||||
|
|
||||||
|
private Location leaveSpectateLocation;
|
||||||
|
|
||||||
|
GamePlayer(org.bukkit.entity.Player bukkitPlayer, Location enterSpectateLocation, Location leaveSpectateLocation) {
|
||||||
|
this.bukkitPlayer = bukkitPlayer;
|
||||||
|
this.enterSpectateLocation = enterSpectateLocation;
|
||||||
|
this.leaveSpectateLocation = leaveSpectateLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFlag(PlayerFlag flag) {
|
||||||
|
PlayerFlag currentFlag = getCurrentFlag();
|
||||||
|
PlayerFlagUpdateEvent event = new PlayerFlagUpdateEvent(this, currentFlag, flag);
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
removeFromCache("__flag__");
|
||||||
|
addToCache("__flag__", flag.getInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeFlag(PlayerFlag flag) {
|
||||||
|
setFlag(PlayerFlags.PLAYER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasFlag(PlayerFlag... flag) {
|
||||||
|
return ((Boolean)Arrays.<PlayerFlag>stream(flag)
|
||||||
|
.map(playerFlag -> Boolean.valueOf(getValueFromCache("__flag__").equals(playerFlag.getInt())))
|
||||||
|
.filter(aBoolean -> aBoolean.booleanValue())
|
||||||
|
.findFirst()
|
||||||
|
.orElse(Boolean.valueOf(false))).booleanValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSpectator() {
|
||||||
|
return hasFlag(new PlayerFlag[] { PlayerFlags.SPECTATOR, PlayerFlags.SPECTATOR_TARGET });
|
||||||
|
}
|
||||||
|
|
||||||
|
public org.bukkit.entity.Player getBukkitPlayer() {
|
||||||
|
return this.bukkitPlayer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnterSpectateLocation(Location enterSpectateLocation) {
|
||||||
|
this.enterSpectateLocation = enterSpectateLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLeaveSpectateLocation(Location leaveSpectateLocation) {
|
||||||
|
this.leaveSpectateLocation = leaveSpectateLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getEnterSpectateLocation() {
|
||||||
|
return this.enterSpectateLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getLeaveSpectateLocation() {
|
||||||
|
return this.leaveSpectateLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private PlayerFlag getCurrentFlag() {
|
||||||
|
return Arrays.<PlayerFlag>stream((PlayerFlag[])PlayerFlags.values())
|
||||||
|
.filter(playerFlag -> !getValueFromCache("__flag__").equals(playerFlag.getInt()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-3
@@ -1,9 +1,10 @@
|
|||||||
package com.softwarerat.API.player;
|
package com.softwarerat.API.data.player;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.softwarerat.API.data.GameData;
|
import com.softwarerat.API.data.GameData;
|
||||||
import com.softwarerat.GameAPI;
|
import com.softwarerat.GameAPI;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
|
|
||||||
// Game related PlayerAPI for checking if a player is the GameHost
|
// Game related PlayerAPI for checking if a player is the GameHost
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.softwarerat.API.data.player;
|
||||||
|
|
||||||
|
import com.softwarerat.API.data.store.Flag;
|
||||||
|
|
||||||
|
public interface PlayerFlag extends Flag {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.softwarerat.API.data.player;
|
||||||
|
|
||||||
|
public enum PlayerFlags implements PlayerFlag {
|
||||||
|
PLAYER("default flag for players", Integer.valueOf(1)),
|
||||||
|
SPECTATOR("if player is spectator", Integer.valueOf(2)),
|
||||||
|
SPECTATOR_TARGET("if player is spectator and views player", Integer.valueOf(3));
|
||||||
|
|
||||||
|
private final String description;
|
||||||
|
|
||||||
|
private final Integer number;
|
||||||
|
|
||||||
|
PlayerFlags(String description, Integer number) {
|
||||||
|
this.description = description;
|
||||||
|
this.number = number;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return this.description;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getInt() {
|
||||||
|
return this.number;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
package com.softwarerat.API.data.player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class PlayerManager {
|
||||||
|
|
||||||
|
private final List<GamePlayer> playerList = new ArrayList<>();
|
||||||
|
private final Location enterSpectateLocation;
|
||||||
|
private final Location leaveSpectateLocation;
|
||||||
|
|
||||||
|
public PlayerManager(Location enterSpectateLocation, Location leaveSpectateLocation) {
|
||||||
|
this.enterSpectateLocation = enterSpectateLocation;
|
||||||
|
this.leaveSpectateLocation = leaveSpectateLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addPlayer(Player bukkitPlayer) {
|
||||||
|
if (getPlayer(bukkitPlayer) != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
GamePlayer player = new GamePlayer(bukkitPlayer, enterSpectateLocation, leaveSpectateLocation);
|
||||||
|
player.setFlag(PlayerFlags.PLAYER);
|
||||||
|
playerList.add(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void removePlayer(Player bukkitPlayer) {
|
||||||
|
GamePlayer player = getPlayer(bukkitPlayer);
|
||||||
|
if (player != null)
|
||||||
|
playerList.remove(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GamePlayer getPlayer(Player bukkitPlayer) {
|
||||||
|
return playerList.stream()
|
||||||
|
.filter(player -> player.getBukkitPlayer().getUniqueId()
|
||||||
|
.equals(bukkitPlayer.getUniqueId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GamePlayer> players() {
|
||||||
|
return Collections.unmodifiableList(playerList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GamePlayer> playersWithFlag(PlayerFlag... flags) {
|
||||||
|
return playerList.stream()
|
||||||
|
.filter(player -> player.hasFlag(flags))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Player> bukkitPlayersWithFlag(PlayerFlag... flags) {
|
||||||
|
return playerList.stream()
|
||||||
|
.filter(player -> player.hasFlag(flags))
|
||||||
|
.map(GamePlayer::getBukkitPlayer)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GamePlayer> playersWithNoFlag(PlayerFlag... flags) {
|
||||||
|
return playerList.stream()
|
||||||
|
.filter(player -> !player.hasFlag(flags))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Player> bukkitPlayersWithNoFlag(PlayerFlag... flags) {
|
||||||
|
return playerList.stream()
|
||||||
|
.filter(player -> !player.hasFlag(flags))
|
||||||
|
.map(GamePlayer::getBukkitPlayer)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-4
@@ -1,12 +1,9 @@
|
|||||||
package com.softwarerat.API.prefix;
|
package com.softwarerat.API.data.prefix;
|
||||||
|
|
||||||
import com.softwarerat.API.data.GameData;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class PrefixAPI {
|
public class PrefixAPI {
|
||||||
/* PrefixSystem of the whole Network
|
/* PrefixSystem of the whole Network
|
||||||
* this will be the future way to add Tablist Prefixes, and will depend on GameData Settings like wich GameType and
|
* this will be the future way to add Tablist Prefixes, and will depend on GameData Settings like wich GameType and
|
||||||
+5
-3
@@ -1,9 +1,11 @@
|
|||||||
package com.softwarerat.API.scoreboard;
|
package com.softwarerat.API.data.scoreboard;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scoreboard.*;
|
import org.bukkit.scoreboard.DisplaySlot;
|
||||||
|
import org.bukkit.scoreboard.Objective;
|
||||||
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
|
import org.bukkit.scoreboard.ScoreboardManager;
|
||||||
|
|
||||||
public class ScoreAPI {
|
public class ScoreAPI {
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.softwarerat.API.data.store;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
public class CacheManager {
|
||||||
|
private final LinkedHashMap<String, Object> cache = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
public void addToCache(String key, Object value) {
|
||||||
|
this.cache.put(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeFromCache(String key) {
|
||||||
|
this.cache.remove(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void changeValueFromCache(String key, Object value) {
|
||||||
|
this.cache.replace(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValueFromCache(String key) {
|
||||||
|
return this.cache.getOrDefault(key, (Object)null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean containsCache(String key) {
|
||||||
|
return this.cache.containsKey(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.softwarerat.API.data.store;
|
||||||
|
|
||||||
|
public interface Flag {
|
||||||
|
String getDescription();
|
||||||
|
Integer getInt();
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.softwarerat.API.data.store;
|
||||||
|
|
||||||
|
public interface FlagManager<T extends Flag> {
|
||||||
|
void setFlag(T paramT);
|
||||||
|
|
||||||
|
void removeFlag(T paramT);
|
||||||
|
|
||||||
|
boolean hasFlag(T... paramVarArgs);
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.world;
|
package com.softwarerat.API.data.world;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.softwarerat.API.event;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import com.softwarerat.API.data.player.GamePlayer;
|
||||||
|
import com.softwarerat.API.data.player.PlayerFlag;
|
||||||
|
|
||||||
|
public final class PlayerFlagUpdateEvent extends Event implements Cancellable {
|
||||||
|
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||||
|
|
||||||
|
private final GamePlayer player;
|
||||||
|
|
||||||
|
private final PlayerFlag previousFlag;
|
||||||
|
|
||||||
|
private final PlayerFlag newFlag;
|
||||||
|
|
||||||
|
private boolean cancelled;
|
||||||
|
|
||||||
|
public PlayerFlagUpdateEvent(GamePlayer player, PlayerFlag previousFlag, PlayerFlag newFlag) {
|
||||||
|
this.player = player;
|
||||||
|
this.previousFlag = previousFlag;
|
||||||
|
this.newFlag = newFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancelled = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GamePlayer getPlayer() {
|
||||||
|
return this.player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerFlag getNewFlag() {
|
||||||
|
return this.newFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerFlag getPreviousFlag() {
|
||||||
|
return this.previousFlag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.listener;
|
package com.softwarerat.API.event.listener;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.listener;
|
package com.softwarerat.API.event.listener;
|
||||||
|
|
||||||
// Chat Listener
|
// Chat Listener
|
||||||
public class ChatListener {
|
public class ChatListener {
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.listener;
|
package com.softwarerat.API.event.listener;
|
||||||
// Join Listener
|
// Join Listener
|
||||||
public class JoinListener {
|
public class JoinListener {
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.softwarerat.API.listener;
|
package com.softwarerat.API.event.listener;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
+8
-7
@@ -1,16 +1,17 @@
|
|||||||
package com.softwarerat.API.listener;
|
package com.softwarerat.API.event.listener;
|
||||||
import com.google.common.io.ByteArrayDataOutput;
|
import org.bukkit.ChatColor;
|
||||||
import com.google.common.io.ByteStreams;
|
|
||||||
import com.softwarerat.API.builder.SpigotInventory;
|
|
||||||
import com.softwarerat.API.builder.SpigotItem;
|
|
||||||
import com.softwarerat.API.builder.SpigotUI;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
import com.google.common.io.ByteArrayDataOutput;
|
||||||
|
import com.google.common.io.ByteStreams;
|
||||||
|
import com.softwarerat.API.builder.SpigotInventory;
|
||||||
|
import com.softwarerat.API.builder.SpigotItem;
|
||||||
|
import com.softwarerat.API.builder.SpigotUI;
|
||||||
|
|
||||||
// Lobby join magic including the navigator
|
// Lobby join magic including the navigator
|
||||||
public class LobbyJoinListener implements Listener{
|
public class LobbyJoinListener implements Listener{
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package com.softwarerat.API.event.listener;
|
||||||
|
|
||||||
|
public class QuitListener {
|
||||||
|
}
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package com.softwarerat.API.event.listener.spectator;
|
||||||
|
|
||||||
|
import org.bukkit.entity.HumanEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||||
|
|
||||||
|
import com.softwarerat.API.data.player.PlayerManager;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class SpectatorFoodLevelChangeListener {
|
||||||
|
|
||||||
|
|
||||||
|
private final PlayerManager playerManager;
|
||||||
|
|
||||||
|
|
||||||
|
public SpectatorFoodLevelChangeListener(PlayerManager playerManager) {
|
||||||
|
this.playerManager = playerManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public PlayerManager playerManager() {
|
||||||
|
return this.playerManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onSpectatorFoodLevelChange(FoodLevelChangeEvent event) {
|
||||||
|
Player player;
|
||||||
|
HumanEntity humanEntity = event.getEntity();
|
||||||
|
if (humanEntity instanceof Player) {
|
||||||
|
player = (Player)humanEntity;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!this.playerManager.getPlayer(player).isSpectator())
|
||||||
|
return;
|
||||||
|
event.setFoodLevel(20);
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package com.softwarerat.API.gameState;
|
|
||||||
|
|
||||||
|
|
||||||
public enum GameState {
|
|
||||||
GAME_STATE_LOBBY,
|
|
||||||
GAME_STATE_INGAME;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
package com.softwarerat.API.gameState;
|
|
||||||
|
|
||||||
public interface IGameState {
|
|
||||||
|
|
||||||
public void Start();
|
|
||||||
public void Stop();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package com.softwarerat.API.listener;
|
|
||||||
|
|
||||||
public class QuitListener {
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,17 @@
|
|||||||
package com.softwarerat;
|
package com.softwarerat;
|
||||||
|
|
||||||
|
|
||||||
import com.softwarerat.API.commands.Navigator;
|
|
||||||
import com.softwarerat.API.data.GameData;
|
|
||||||
import com.softwarerat.API.location.LocationAPI;
|
|
||||||
import com.softwarerat.API.prefix.PrefixAPI;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import com.softwarerat.API.world.WorldAPI;
|
|
||||||
|
import com.softwarerat.API.data.GameData;
|
||||||
|
import com.softwarerat.API.data.location.LocationAPI;
|
||||||
|
import com.softwarerat.API.data.prefix.PrefixAPI;
|
||||||
|
import com.softwarerat.API.data.world.WorldAPI;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
|||||||
Reference in New Issue
Block a user