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

View File

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

View File

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

View File

@ -25,6 +25,7 @@ public class RoleManager {
return; return;
} }
this.classes.put(player, thePlayerRole); this.classes.put(player, thePlayerRole);
thePlayerRole.start();
player.sendMessage( player.sendMessage(
String.format("§eYou are now a §6%s§e!", StringUtils.capitalize(theclass.name())) 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) { public void unsetClass(Player player) {
if (this.classes.containsKey(player)) { if (this.classes.containsKey(player)) {
Role oldclass = this.classes.get(player).getRole(); PlayerRole playerRole = this.classes.get(player);
playerRole.end();
player.sendMessage( 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); this.classes.remove(player);
} }
} }
public void unsetAll() {
classes.keySet().forEach(this::unsetClass);
}
public PlayerRole getPlayerRole(Player player) { public PlayerRole getPlayerRole(Player player) {
return this.classes.getOrDefault(player, null); 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); super(plugin, player);
} }
@Override
public void start() {
player.setExp(1);
}
@Override
public void end() {
player.setExp(0.5f);
}
@Override @Override
public Role getRole() { public Role getRole() {
return Role.FIGHTER; return Role.FIGHTER;

View File

@ -9,10 +9,6 @@ import org.bukkit.entity.LivingEntity;
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.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.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.EquipmentSlot;