Fix Role enum

This commit is contained in:
Dominic Zimmer 2020-09-23 20:02:40 +02:00
parent 7f7e010729
commit a3c8087ebe
10 changed files with 127 additions and 15 deletions

View File

@ -6,6 +6,7 @@ import de.leafbla.meinkraft.roleplay.bomber.BomberListener;
import de.leafbla.meinkraft.roleplay.fighter.FighterListener;
import de.leafbla.meinkraft.roleplay.ninja.NinjaListener;
import de.leafbla.meinkraft.roleplay.thief.ThiefListener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Level;
@ -17,18 +18,19 @@ public class Main extends JavaPlugin {
@Override
public void onDisable() {
Logger.getLogger("test").log(Level.INFO, "Plugin disabled");
Bukkit.getLogger().log(Level.INFO, "Plugin disabled");
roleManager.unsetAll();
}
@Override
public void onEnable() {
this.roleManager = new RoleManager(this);
Logger.getLogger("MeinKraft").log(Level.INFO, "Plugin enabled");
Bukkit.getLogger().log(Level.INFO, "Plugin enabled");
getServer().getPluginManager().registerEvents(new ThiefListener(this), this);
getServer().getPluginManager().registerEvents(new NinjaListener(this), this);
getServer().getPluginManager().registerEvents(new BomberListener(this), this);
getServer().getPluginManager().registerEvents(new FighterListener(this), this);
this.getCommand("role").setExecutor(new RoleCommand(this.roleManager));
}
}

View File

@ -0,0 +1,26 @@
package de.leafbla.meinkraft.roleplay;
import de.leafbla.meinkraft.Main;
import org.bukkit.entity.Player;
public class BomberRole extends PlayerRole {
public BomberRole(Main plugin, Player player) {
super(plugin, player);
}
@Override
public void start() {
player.setLevel(42);
}
@Override
public void end() {
player.setLevel(0);
}
@Override
public Role getRole() {
return Role.BOMBER;
}
}

View File

@ -0,0 +1,26 @@
package de.leafbla.meinkraft.roleplay;
import de.leafbla.meinkraft.Main;
import org.bukkit.entity.Player;
public class NinjaRole extends PlayerRole {
public NinjaRole(Main plugin, Player player) {
super(plugin, player);
}
@Override
public void start() {
}
@Override
public void end() {
}
@Override
public Role getRole() {
return Role.NINJA;
}
}

View File

@ -13,6 +13,10 @@ public abstract class PlayerRole {
this.plugin = plugin;
}
public abstract void start();
public abstract void end();
public abstract Role getRole();
}

View File

@ -1,17 +1,17 @@
package de.leafbla.meinkraft.roleplay;
import de.leafbla.meinkraft.roleplay.fighter.FighterRole;
import de.leafbla.meinkraft.Main;
import de.leafbla.meinkraft.roleplay.fighter.FighterRole;
import org.bukkit.entity.Player;
import java.lang.reflect.InvocationTargetException;
public enum Role {
BOMBER(FighterRole.class),
BOMBER(BomberRole.class),
FIGHTER(FighterRole.class),
NINJA(FighterRole.class),
WIZARD(FighterRole.class);
NINJA(NinjaRole.class),
WIZARD(WizardRole.class);
private final Class<? extends PlayerRole> playerRole;

View File

@ -1,15 +1,15 @@
package de.leafbla.meinkraft.roleplay;
import de.leafbla.meinkraft.roleplay.Role;
import de.leafbla.meinkraft.roleplay.RoleManager;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;
public class RoleCommand implements CommandExecutor {
@ -22,6 +22,7 @@ public class RoleCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("role")) {
if (args.length == 1) {
if (args[0].equalsIgnoreCase("list")) {
@ -33,6 +34,13 @@ public class RoleCommand implements CommandExecutor {
}
} else if (args.length == 2) {
Player player = Bukkit.getPlayer(args[0]);
if (args[0].equalsIgnoreCase("@p")) {
if (commandSender instanceof BlockCommandSender) {
BlockCommandSender bcs = (BlockCommandSender) commandSender;
bcs.getBlock().getLocation();
player = Bukkit.getOnlinePlayers().stream().min(Comparator.comparingDouble(p -> p.getLocation().distance(bcs.getBlock().getLocation()))).orElse(null);
}
}
if (player != null && player.isOnline()) {
if (args[1].equalsIgnoreCase("clear")) {
this.roleManager.unsetClass(player);

View File

@ -25,6 +25,7 @@ public class RoleManager {
return;
}
this.classes.put(player, thePlayerRole);
thePlayerRole.start();
player.sendMessage(
String.format("§eYou are now a §6%s§e!", StringUtils.capitalize(theclass.name()))
);
@ -32,14 +33,19 @@ public class RoleManager {
public void unsetClass(Player player) {
if (this.classes.containsKey(player)) {
Role oldclass = this.classes.get(player).getRole();
PlayerRole playerRole = this.classes.get(player);
playerRole.end();
player.sendMessage(
String.format("§eYou are no longer a §6%s§e!", StringUtils.capitalize(oldclass.name()))
String.format("§eYou are no longer a §6%s§e!", StringUtils.capitalize(playerRole.getRole().name()))
);
this.classes.remove(player);
}
}
public void unsetAll() {
classes.keySet().forEach(this::unsetClass);
}
public PlayerRole getPlayerRole(Player player) {
return this.classes.getOrDefault(player, null);
}

View File

@ -0,0 +1,33 @@
package de.leafbla.meinkraft.roleplay;
import de.leafbla.meinkraft.Main;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class WizardRole extends PlayerRole {
public WizardRole(Main plugin, Player player) {
super(plugin, player);
}
@Override
public void start() {
ItemStack wand = new ItemStack(Material.STICK);
ItemMeta im = wand.getItemMeta();
im.setDisplayName("Wand");
wand.setItemMeta(im);
player.setItemInHand(wand);
}
@Override
public void end() {
}
@Override
public Role getRole() {
return Role.WIZARD;
}
}

View File

@ -20,6 +20,17 @@ public class FighterRole extends PlayerRole {
super(plugin, player);
}
@Override
public void start() {
player.setExp(1);
}
@Override
public void end() {
player.setExp(0.5f);
}
@Override
public Role getRole() {
return Role.FIGHTER;

View File

@ -9,10 +9,6 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.inventory.EquipmentSlot;