~ made the holgram system even better
+ hologram management command
This commit is contained in:
parent
c5ad06d15d
commit
d31acecb91
4
Core.iml
4
Core.iml
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module com.demonwav.mcdev.MinecraftModuleTypes="PAPER_MODULE_TYPE" org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
<component name="FacetManager">
|
<component name="FacetManager">
|
||||||
<facet type="minecraft" name="Minecraft">
|
<facet type="minecraft" name="Minecraft">
|
||||||
<configuration>
|
<configuration>
|
||||||
|
@ -20,7 +20,6 @@
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.slikey:EffectLib:5.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.destroystokyo.paper:paper-api:1.11-R0.1-SNAPSHOT" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: com.destroystokyo.paper:paper-api:1.11-R0.1-SNAPSHOT" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||||
|
@ -79,7 +78,6 @@
|
||||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
|
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.nsp:JSkills:master-0.9.0-g8b333ec-15" level="project" />
|
<orderEntry type="library" name="Maven: com.github.nsp:JSkills:master-0.9.0-g8b333ec-15" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
|
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.slikey:EffectLib:5.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: co.aikar:taskchain-bukkit:3.4.3" level="project" />
|
<orderEntry type="library" name="Maven: co.aikar:taskchain-bukkit:3.4.3" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
6
pom.xml
6
pom.xml
|
@ -95,12 +95,6 @@
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>1.16.10</version>
|
<version>1.16.10</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>de.slikey</groupId>
|
|
||||||
<artifactId>EffectLib</artifactId>
|
|
||||||
<version>5.2</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>co.aikar</groupId>
|
<groupId>co.aikar</groupId>
|
||||||
<artifactId>taskchain-bukkit</artifactId>
|
<artifactId>taskchain-bukkit</artifactId>
|
||||||
|
|
|
@ -153,7 +153,7 @@ public class Core extends JavaPlugin implements NettyInjection.PacketHandler {
|
||||||
new GlobalMute(this, "globalmute", "mutes the server");
|
new GlobalMute(this, "globalmute", "mutes the server");
|
||||||
new ChatClear(this, "chatclear", "clears the chat", "cc");
|
new ChatClear(this, "chatclear", "clears the chat", "cc");
|
||||||
new Timeout(this, "timeout", "timeout other players");
|
new Timeout(this, "timeout", "timeout other players");
|
||||||
new ParticleEffect(this, "particleeffect", "plays particle effects", "pe");
|
new Hologram(this, "hologram", "manages holograms");
|
||||||
|
|
||||||
PluginMessenger pluginMessenger = new PluginMessenger();
|
PluginMessenger pluginMessenger = new PluginMessenger();
|
||||||
NetworkData networkData = new NetworkData();
|
NetworkData networkData = new NetworkData();
|
||||||
|
|
|
@ -8,6 +8,7 @@ package eu.univento.core.api.hologram;
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import eu.univento.core.api.events.HologramClickEvent;
|
import eu.univento.core.api.events.HologramClickEvent;
|
||||||
import eu.univento.core.api.player.CustomPlayer;
|
import eu.univento.core.api.player.CustomPlayer;
|
||||||
|
import lombok.Getter;
|
||||||
import net.minecraft.server.v1_11_R1.EntityArmorStand;
|
import net.minecraft.server.v1_11_R1.EntityArmorStand;
|
||||||
import net.minecraft.server.v1_11_R1.PacketPlayOutEntityDestroy;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutEntityDestroy;
|
||||||
import net.minecraft.server.v1_11_R1.PacketPlayOutSpawnEntityLiving;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutSpawnEntityLiving;
|
||||||
|
@ -28,12 +29,15 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public class Hologram implements Listener{
|
public class Hologram implements Listener{
|
||||||
|
|
||||||
|
private final String name;
|
||||||
private final List<EntityArmorStand> stands = new ArrayList<>();
|
private final List<EntityArmorStand> stands = new ArrayList<>();
|
||||||
private final String[] text;
|
private final String[] text;
|
||||||
private final Location location;
|
@Getter private final Location location;
|
||||||
private int count;
|
private int count;
|
||||||
|
|
||||||
public Hologram(String[] text, Location location) {
|
public Hologram(String name, String[] text, Location location) {
|
||||||
|
this.name = name;
|
||||||
|
HologramManager.addHologram(name, this);
|
||||||
this.text = text;
|
this.text = text;
|
||||||
this.location = location;
|
this.location = location;
|
||||||
create();
|
create();
|
||||||
|
@ -56,6 +60,7 @@ public class Hologram implements Listener{
|
||||||
for(EntityArmorStand armorStand : stands) {
|
for(EntityArmorStand armorStand : stands) {
|
||||||
armorStand.die();
|
armorStand.die();
|
||||||
}
|
}
|
||||||
|
HologramManager.removeHologram(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create() {
|
private void create() {
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 univento.eu - All rights reserved
|
||||||
|
* You are not allowed to use, distribute or modify this code
|
||||||
|
*/
|
||||||
|
|
||||||
|
package eu.univento.core.api.hologram;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author joethei
|
||||||
|
* @version 0.1
|
||||||
|
*/
|
||||||
|
public class HologramManager {
|
||||||
|
|
||||||
|
@Getter private static HashMap<String, Hologram> holograms = new HashMap<>();
|
||||||
|
|
||||||
|
public static Hologram getHologram(String name) {
|
||||||
|
return holograms.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void addHologram(String name, Hologram hologram) {
|
||||||
|
holograms.put(name, hologram);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void removeHologram(String name) {
|
||||||
|
holograms.remove(name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 univento.eu - All rights reserved
|
||||||
|
* You are not allowed to use, distribute or modify this code
|
||||||
|
*/
|
||||||
|
|
||||||
|
package eu.univento.core.commands;
|
||||||
|
|
||||||
|
import eu.univento.commons.player.language.MessageConstant;
|
||||||
|
import eu.univento.commons.player.rank.Rank;
|
||||||
|
import eu.univento.commons.utils.Strings;
|
||||||
|
import eu.univento.core.Core;
|
||||||
|
import eu.univento.core.api.AutoCommand;
|
||||||
|
import eu.univento.core.api.hologram.HologramManager;
|
||||||
|
import eu.univento.core.api.languages.Messages;
|
||||||
|
import eu.univento.core.api.player.CustomPlayer;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author joethei
|
||||||
|
* @version 0.1
|
||||||
|
*/
|
||||||
|
public class Hologram extends AutoCommand<Core> {
|
||||||
|
|
||||||
|
public Hologram(Core plugin, String command, String description, String... aliases) {
|
||||||
|
super(plugin, command, description, aliases);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(CommandSender sender, String label, String[] args) {
|
||||||
|
if(sender instanceof Player) {
|
||||||
|
CustomPlayer p = CustomPlayer.getPlayer(((Player) sender));
|
||||||
|
if(p.getDatabasePlayer().isAllowed(Rank.JrBuilder)) {
|
||||||
|
if(args.length == 0) {
|
||||||
|
p.sendMessage("/hologram add <Name> <Nachricht>");
|
||||||
|
p.sendMessage("/hologram remove <Name>");
|
||||||
|
p.sendMessage("/hologram list");
|
||||||
|
}
|
||||||
|
if(args.length == 1) {
|
||||||
|
if(args[0].equalsIgnoreCase("list")) {
|
||||||
|
HologramManager.getHolograms().forEach((s, hologram) -> p.sendMessage("§6" + s + hologram.getLocation().toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(args.length == 2) {
|
||||||
|
if(args[0].equalsIgnoreCase("remove")) {
|
||||||
|
if(HologramManager.getHologram(args[1]) != null) {
|
||||||
|
HologramManager.getHologram(args[1]).destroy();
|
||||||
|
}else p.sendMessage("Dieses Hologram gibt es nicht");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
if (args[0].equalsIgnoreCase("add")) {
|
||||||
|
if(HologramManager.getHologram(args[1]) != null) {
|
||||||
|
p.sendMessage("Dieses Hologram gibt es schon");
|
||||||
|
}else {
|
||||||
|
String name = args[1];
|
||||||
|
args = Strings.remove(args, "add");
|
||||||
|
args = Strings.remove(args, name);
|
||||||
|
new eu.univento.core.api.hologram.Hologram(name, args, p.getLocation());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
p.getDatabasePlayer().getLanguage().getMessage(MessageConstant.COMMAND_NO_PERMS);
|
||||||
|
}
|
||||||
|
}else sender.sendMessage(Messages.Console.NOT_A_PLAYER);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> tabComplete(CommandSender sender, String label, String[] args) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,89 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2016 univento.eu - All rights reserved
|
|
||||||
* You are not allowed to use, distribute or modify this code
|
|
||||||
*/
|
|
||||||
|
|
||||||
package eu.univento.core.commands;
|
|
||||||
|
|
||||||
import de.slikey.effectlib.effect.*;
|
|
||||||
import eu.univento.core.Core;
|
|
||||||
import eu.univento.core.api.AutoCommand;
|
|
||||||
import eu.univento.core.api.languages.Messages;
|
|
||||||
import eu.univento.core.api.player.CustomPlayer;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author joethei
|
|
||||||
* @version 0.1
|
|
||||||
*/
|
|
||||||
public class ParticleEffect extends AutoCommand<Core> {
|
|
||||||
|
|
||||||
public ParticleEffect(Core plugin, String command, String description, String... aliases) {
|
|
||||||
super(plugin, command, description, aliases);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean execute(CommandSender sender, String label, String[] args) {
|
|
||||||
if(sender instanceof Player) {
|
|
||||||
CustomPlayer p = CustomPlayer.getPlayer((Player) sender);
|
|
||||||
if(args.length == 0) p.sendMessage("§cNot enough arguments");
|
|
||||||
if(args.length == 1) {
|
|
||||||
String arg = args[0];
|
|
||||||
if(arg.equalsIgnoreCase("ball")) {
|
|
||||||
AnimatedBallEffect effect = new AnimatedBallEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("arc")) {
|
|
||||||
ArcEffect effect = new ArcEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("atom")) {
|
|
||||||
AtomEffect effect = new AtomEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("bigbang")) {
|
|
||||||
BigBangEffect effect = new BigBangEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("bleed")) {
|
|
||||||
BleedEffect effect = new BleedEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("circle")) {
|
|
||||||
CircleEffect effect = new CircleEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("cloud")) {
|
|
||||||
CloudEffect effect = new CloudEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
if(arg.equalsIgnoreCase("text")) {
|
|
||||||
TextEffect effect = new TextEffect(Core.getEffectManager());
|
|
||||||
effect.setLocation(p.getLocation());
|
|
||||||
effect.text = "Hallo du da";
|
|
||||||
effect.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
sender.sendMessage(Messages.Console.NOT_A_PLAYER);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> tabComplete(CommandSender sender, String label, String[] args) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue