+ added Debug Manager
+ added GameTimer + added Story Mission
This commit is contained in:
parent
d1bb61b3ab
commit
93d263d063
22
Core.iml
22
Core.iml
@ -23,25 +23,29 @@
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.15" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-chat:1.10-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:bukkit:1.10.2-R0.1-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:craftbukkit:1.10.2-R0.1-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bukkit:craftbukkit:1.10.2-R0.1-SNAPSHOT" level="project" />
|
||||
<orderEntry type="module" module-name="CloudCommons" />
|
||||
<orderEntry type="library" name="Maven: net.gpedro.integrations.slack:slack-webhook:1.2.1" level="project" />
|
||||
<orderEntry type="module" module-name="Commons" />
|
||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-async:3.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb.morphia:morphia:1.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: cglib:cglib-nodep:2.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.thoughtworks.proxytoys:proxytoys:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.4.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.16" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-all:4.0.36.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api: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: org.apache.commons:commons-lang3:3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: joda-time:joda-time:2.9.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.theholywaffle:teamspeak3-api:1.0.14-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: eu.the5zig.mod:mod:1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/local-maven-repo/The5zigMod.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
BIN
local-maven-repo/The5zigMod.jar
Normal file
BIN
local-maven-repo/The5zigMod.jar
Normal file
Binary file not shown.
13
pom.xml
13
pom.xml
@ -72,13 +72,24 @@
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>craftbukkit</artifactId>
|
||||
<version>1.10.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>eu.univento</groupId>
|
||||
<artifactId>CloudCommons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>eu.univento</groupId>
|
||||
<artifactId>Commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>eu.the5zig.mod</groupId>
|
||||
<artifactId>mod</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/local-maven-repo/The5zigMod.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -4,6 +4,7 @@ import eu.univento.commons.Commons;
|
||||
import eu.univento.commons.server.TPS;
|
||||
import eu.univento.core.antihack.AntiHack;
|
||||
import eu.univento.core.api.Config;
|
||||
import eu.univento.core.api.debug.DebugManager;
|
||||
import eu.univento.core.api.effects.Blackscreen;
|
||||
import eu.univento.core.api.events.MoveEventFilter;
|
||||
import eu.univento.core.api.items.InventoryManager;
|
||||
@ -13,6 +14,8 @@ import eu.univento.core.api.server.ServerSettings;
|
||||
import eu.univento.core.api.utils.NettyInjection;
|
||||
import eu.univento.core.commands.*;
|
||||
import eu.univento.core.listeners.*;
|
||||
import io.netty.channel.Channel;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
@ -20,7 +23,6 @@ import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.channels.Channel;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@ -80,10 +82,13 @@ public class Core extends JavaPlugin implements NettyInjection.PacketHandler {
|
||||
|
||||
public static void broadcast(String key) {
|
||||
for (CustomPlayer players : getOnlinePlayers()) {
|
||||
players.sendMessage(players.getDatabasePlayer().getMessage(key));
|
||||
players.sendMessage(players.getDatabasePlayer().getLanguage().getWord(key));
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
private static DebugManager debugManager;
|
||||
|
||||
/*
|
||||
@Override
|
||||
public void onLoad() {
|
||||
@ -205,10 +210,17 @@ public class Core extends JavaPlugin implements NettyInjection.PacketHandler {
|
||||
this.injection = new NettyInjection(this, this.getName());
|
||||
this.injection.addHandler("TIMEOUT", new NettyInjection.PacketHandler() {
|
||||
public Object onPacketIn(Player sender, Channel channel, Object packet) {
|
||||
getCommons().getLoggingHandler().getCore().info("PacketIN: " + sender.getName() + " | " + channel + " | " + packet);
|
||||
if (timeout.contains(CustomPlayer.getPlayer(sender)))
|
||||
return null;
|
||||
return packet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object onPacketOut(Player target, Channel channel, Object packet) {
|
||||
getCommons().getLoggingHandler().getCore().info("PacketOUT: " + target.getName() + " | " + channel + " | " + packet);
|
||||
return packet;
|
||||
}
|
||||
});
|
||||
commons.getSecurityHandler().isValidServer(getServer().getIp(), aBoolean -> {
|
||||
if(!aBoolean) {
|
||||
@ -216,6 +228,7 @@ public class Core extends JavaPlugin implements NettyInjection.PacketHandler {
|
||||
}
|
||||
});
|
||||
Bukkit.getScheduler().runTask(this, new TPS());
|
||||
debugManager = new DebugManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,6 +17,7 @@ public class AntiHack implements Listener{
|
||||
|
||||
private static final PacketInjector packetInjector = new PacketInjector();
|
||||
|
||||
//TODO: add nofication system
|
||||
public static void registerListeners() {
|
||||
PluginManager pm = Bukkit.getPluginManager();
|
||||
pm.registerEvents(new AntiHack(), Core.getInstance());
|
||||
@ -24,7 +25,6 @@ public class AntiHack implements Listener{
|
||||
pm.registerEvents(new AutoClicker(), Core.getInstance());
|
||||
pm.registerEvents(new Criticals(), Core.getInstance());
|
||||
pm.registerEvents(new Reach(), Core.getInstance());
|
||||
pm.registerEvents(new NoSlowDown(), Core.getInstance());
|
||||
pm.registerEvents(new Regen(), Core.getInstance());
|
||||
pm.registerEvents(new AutoRespawn(), Core.getInstance());
|
||||
pm.registerEvents(new FastPlace(), Core.getInstance());
|
||||
|
@ -0,0 +1,24 @@
|
||||
package eu.univento.core.antihack.modules;
|
||||
|
||||
import eu.univento.core.api.player.CustomPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
public class AutoSoup implements Listener{
|
||||
|
||||
@EventHandler
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
|
||||
if(e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
|
||||
CustomPlayer p = (CustomPlayer) e.getDamager();
|
||||
if(p.getInventory().getViewers().size() < 0) {
|
||||
p.closeInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,11 +1,15 @@
|
||||
package eu.univento.core.antihack.modules;
|
||||
|
||||
import eu.univento.core.api.events.MoveEventFilter;
|
||||
import eu.univento.core.api.player.CustomPlayer;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
|
||||
public class Movement implements Listener{
|
||||
@ -43,4 +47,40 @@ public class Movement implements Listener{
|
||||
p.sendMessage("Du hast Glide an");
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onShootBow(EntityShootBowEvent e) {
|
||||
if(e.getEntity() instanceof Player) {
|
||||
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity());
|
||||
if(p.isSprinting()) {
|
||||
e.setCancelled(true);
|
||||
p.damage(2.0D);
|
||||
p.setArrowsInBody(p.getArrowsInBody() + 50);
|
||||
p.sendMessage("Du hast NoSlowDown an");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFoodChange(FoodLevelChangeEvent e) {
|
||||
if(e.getEntity() instanceof Player) {
|
||||
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity());
|
||||
if(e.getFoodLevel() > p.getFoodLevel() && p.isSprinting()) {
|
||||
e.setCancelled(true);
|
||||
e.setFoodLevel(0);
|
||||
p.sendMessage("Du hast NoSlowDown an");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onMoveByBlock(MoveEventFilter.PlayerBlockMoveEvent e) {
|
||||
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
||||
double distance = e.getTo().getY() - e.getFrom().getY();
|
||||
if(distance >= 0.9D) {
|
||||
e.setCancelled(true);
|
||||
p.teleport(e.getFrom());
|
||||
p.sendMessage("Du hast Step an");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
package eu.univento.core.antihack.modules;
|
||||
|
||||
import eu.univento.core.api.player.CustomPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
|
||||
public class NoSlowDown implements Listener{
|
||||
|
||||
@EventHandler
|
||||
public void onShootBow(EntityShootBowEvent e) {
|
||||
if(e.getEntity() instanceof Player) {
|
||||
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity());
|
||||
if(p.isSprinting()) {
|
||||
e.setCancelled(true);
|
||||
p.damage(2.0D);
|
||||
p.setArrowsInBody(p.getArrowsInBody() + 50);
|
||||
p.sendMessage("Du hast NoSlowDown an");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onFoodChange(FoodLevelChangeEvent e) {
|
||||
if(e.getEntity() instanceof Player) {
|
||||
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity());
|
||||
if(e.getFoodLevel() > p.getFoodLevel() && p.isSprinting()) {
|
||||
e.setCancelled(true);
|
||||
e.setFoodLevel(0);
|
||||
p.sendMessage("Du hast NoSlowDown an");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
26
src/main/java/eu/univento/core/antihack/modules/SelfHit.java
Normal file
26
src/main/java/eu/univento/core/antihack/modules/SelfHit.java
Normal file
@ -0,0 +1,26 @@
|
||||
package eu.univento.core.antihack.modules;
|
||||
|
||||
import eu.univento.core.api.player.CustomPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
public class SelfHit implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
|
||||
if(!e.isCancelled() && e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
|
||||
CustomPlayer p = (CustomPlayer) e.getEntity();
|
||||
CustomPlayer damager = (CustomPlayer) e.getDamager();
|
||||
if(damager.equals(p)) {
|
||||
e.setCancelled(true);
|
||||
e.setDamage(0.0D);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
46
src/main/java/eu/univento/core/api/debug/DebugManager.java
Normal file
46
src/main/java/eu/univento/core/api/debug/DebugManager.java
Normal file
@ -0,0 +1,46 @@
|
||||
package eu.univento.core.api.debug;
|
||||
|
||||
import eu.the5zig.mod.server.The5zigMod;
|
||||
import eu.the5zig.mod.server.api.ModUser;
|
||||
import eu.univento.commons.player.Rank;
|
||||
import eu.univento.core.api.player.CustomPlayer;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
public class DebugManager {
|
||||
|
||||
private boolean enabled;
|
||||
|
||||
public DebugManager() {
|
||||
Plugin plugin = Bukkit.getPluginManager().getPlugin("The5zigMod");
|
||||
if(plugin.isEnabled()) {
|
||||
this.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void sendStat(String stat, String score) {
|
||||
if(enabled) {
|
||||
for(ModUser user : The5zigMod.getInstance().getUserManager().getOnlineModUsers()) {
|
||||
CustomPlayer player = CustomPlayer.getPlayer(user.getPlayer());
|
||||
if(player.getDatabasePlayer().isAllowed(Rank.JrDeveloper)) {
|
||||
user.getStatsManager().getStat(stat).setScore(score);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void sendOverlay(String overlay) {
|
||||
if(enabled) {
|
||||
for(ModUser user : The5zigMod.getInstance().getUserManager().getOnlineModUsers()) {
|
||||
CustomPlayer player = CustomPlayer.getPlayer(user.getPlayer());
|
||||
if(player.getDatabasePlayer().isAllowed(Rank.JrDeveloper)) {
|
||||
user.sendOverlay(overlay);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package eu.univento.core.api.entity;
|
||||
|
||||
import eu.univento.core.Core;
|
||||
import net.minecraft.server.v1_10_R1.EntityLiving;
|
||||
import net.minecraft.server.v1_10_R1.NBTTagCompound;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -21,18 +22,17 @@ public class EntityModifier {
|
||||
private static CraftEntity craftentity;
|
||||
private static net.minecraft.server.v1_10_R1.Entity entityS;
|
||||
private static int scheduler;
|
||||
private static Plugin plugin;
|
||||
private static Plugin plugin = Core.getInstance();
|
||||
private static Player player = null;
|
||||
private static float Speed;
|
||||
|
||||
public EntityModifier(org.bukkit.entity.Entity entity, Plugin plugin) {
|
||||
public EntityModifier(org.bukkit.entity.Entity entity) {
|
||||
EntityModifier.entity = entity;
|
||||
craftentity = (CraftEntity) entity;
|
||||
entityS = craftentity.getHandle();
|
||||
EntityModifier.plugin = plugin;
|
||||
}
|
||||
|
||||
public static Builder modify() {
|
||||
public Builder modify() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class EntityModifier {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder playEffekt(EntityEffect entityeffect) {
|
||||
public Builder playEffect(EntityEffect entityeffect) {
|
||||
EntityModifier.entity.playEffect(entityeffect);
|
||||
return this;
|
||||
}
|
||||
@ -75,9 +75,7 @@ public class EntityModifier {
|
||||
|
||||
public Builder setYawPitch(float yaw, float pitch) {
|
||||
Location loc = EntityModifier.entity.getLocation().clone();
|
||||
teleport(
|
||||
new Location(loc.getWorld(), loc.getX(), loc.getY(),
|
||||
loc.getZ(), yaw, pitch));
|
||||
teleport(new Location(loc.getWorld(), loc.getX(), loc.getY(), loc.getZ(), yaw, pitch));
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -102,8 +100,7 @@ public class EntityModifier {
|
||||
|
||||
public Builder setInvulnerable(boolean invulnerable) {
|
||||
try {
|
||||
Field invulnerableField = net.minecraft.server.v1_10_R1.Entity.class
|
||||
.getDeclaredField("invulnerable");
|
||||
Field invulnerableField = net.minecraft.server.v1_10_R1.Entity.class.getDeclaredField("invulnerable");
|
||||
invulnerableField.setAccessible(true);
|
||||
invulnerableField.setBoolean(EntityModifier.entityS, invulnerable);
|
||||
} catch (Exception ex) {
|
||||
@ -159,10 +156,7 @@ public class EntityModifier {
|
||||
}
|
||||
|
||||
public Builder walkToLocation(Location location, float speed) {
|
||||
((CraftCreature) EntityModifier.entity)
|
||||
.getHandle()
|
||||
.getNavigation()
|
||||
.a(location.getX(), location.getY(), location.getZ(), speed);
|
||||
((CraftCreature) EntityModifier.entity).getHandle().getNavigation().a(location.getX(), location.getY(), location.getZ(), speed);
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -171,20 +165,13 @@ public class EntityModifier {
|
||||
EntityModifier.Speed = speed;
|
||||
EntityModifier.scheduler = Bukkit.getScheduler().scheduleSyncRepeatingTask(EntityModifier.plugin,
|
||||
() -> {
|
||||
double distance = EntityModifier.entity.getLocation().distance(
|
||||
EntityModifier.player.getLocation());
|
||||
double distance = EntityModifier.entity.getLocation().distance(EntityModifier.player.getLocation());
|
||||
if (distance < 11.0D) {
|
||||
float speed1 = EntityModifier.Speed;
|
||||
if (distance < 3.0D) {
|
||||
speed1 = 0.0F;
|
||||
}
|
||||
((CraftCreature) EntityModifier.entity)
|
||||
.getHandle()
|
||||
.getNavigation()
|
||||
.a(EntityModifier.player.getLocation().getX(),
|
||||
EntityModifier.player.getLocation().getY(),
|
||||
EntityModifier.player.getLocation().getZ(),
|
||||
speed1);
|
||||
((CraftCreature) EntityModifier.entity).getHandle().getNavigation().a(EntityModifier.player.getLocation().getX(),EntityModifier.player.getLocation().getY(),EntityModifier.player.getLocation().getZ(), speed1);
|
||||
} else if (EntityModifier.player.isOnGround()) {
|
||||
EntityModifier.entity.teleport(EntityModifier.player);
|
||||
}
|
||||
|
51
src/main/java/eu/univento/core/api/game/GameTimer.java
Normal file
51
src/main/java/eu/univento/core/api/game/GameTimer.java
Normal file
@ -0,0 +1,51 @@
|
||||
package eu.univento.core.api.game;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
public class GameTimer extends BukkitRunnable{
|
||||
|
||||
private Plugin plugin;
|
||||
private int time;
|
||||
private int minPlayers;
|
||||
private GameTimer following;
|
||||
|
||||
public GameTimer(Plugin plugin, GameTimer following, int time, int minPlayers) {
|
||||
this.plugin = plugin;
|
||||
this.following = following;
|
||||
this.time = time;
|
||||
this.minPlayers = minPlayers;
|
||||
runTaskTimer(plugin, 20L, 20L);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if(PlayerManager.size() >= minPlayers) {
|
||||
time--;
|
||||
|
||||
}
|
||||
if(time == 0) {
|
||||
if(PlayerManager.size() > minPlayers) {
|
||||
this.cancel();
|
||||
following.run();
|
||||
}else {
|
||||
this.cancel();
|
||||
//TODO: reset timer
|
||||
this.run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public int getMinPlayers() {
|
||||
return minPlayers;
|
||||
}
|
||||
|
||||
}
|
@ -13,7 +13,6 @@ public class PlayerManager {
|
||||
|
||||
private static final List<CustomPlayer> players = new LinkedList<>();
|
||||
|
||||
|
||||
public static List<CustomPlayer> getPlayers() {
|
||||
return players;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import java.util.ArrayList;
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
class TeamManager {
|
||||
public class TeamManager {
|
||||
|
||||
private static final ArrayList<Team> teams = new ArrayList<>();
|
||||
|
||||
|
@ -58,10 +58,12 @@ public class InventoryManager implements Listener{
|
||||
public void onInventoryClick(InventoryClickEvent e) {
|
||||
int i = 0;
|
||||
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getWhoClicked());
|
||||
for(ClickInventory inventory : inventoryList) {
|
||||
if(inventory.getPlayer() == p)
|
||||
inventory.onInventoryClick(e);
|
||||
if(e.getInventory() instanceof ClickInventory) {
|
||||
for(ClickInventory inventory : inventoryList) {
|
||||
if(inventory.getPlayer() == p)
|
||||
inventory.onInventoryClick(e);
|
||||
if(i++ == 1) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
package eu.univento.core.api.map;
|
||||
|
||||
import eu.univento.cloud.commons.server.ServerType;
|
||||
import eu.univento.commons.server.ServerType;
|
||||
import eu.univento.core.Core;
|
||||
import org.bukkit.Material;
|
||||
|
||||
|
@ -18,13 +18,11 @@ import eu.univento.core.api.utils.GameProfileBuilder;
|
||||
import eu.univento.core.api.utils.UUIDFetcher;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import net.minecraft.server.v1_10_R1.*;
|
||||
import net.minecraft.server.v1_10_R1.World;
|
||||
import org.bson.Document;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.attribute.AttributeModifier;
|
||||
@ -46,7 +44,7 @@ import java.io.ObjectOutputStream;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
|
||||
public class CustomPlayer extends CraftPlayer{
|
||||
public class CustomPlayer extends CraftPlayer {
|
||||
|
||||
|
||||
private static final HashMap<UUID, CustomPlayer> PLAYERS = new HashMap<>();
|
||||
@ -180,7 +178,7 @@ public class CustomPlayer extends CraftPlayer{
|
||||
*/
|
||||
|
||||
public void sendActionBar(String text) {
|
||||
spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(text));
|
||||
//spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(text));
|
||||
}
|
||||
|
||||
public void sendTitle(int fadeIn, int stay, int fadeOut, String title, String subtitle) {
|
||||
@ -326,6 +324,8 @@ public class CustomPlayer extends CraftPlayer{
|
||||
setDisplayName(name);
|
||||
Field nameField = getField(GameProfile.class, "name");
|
||||
try {
|
||||
assert nameField != null;
|
||||
nameField.setAccessible(true);
|
||||
nameField.set(getProfile(), name);
|
||||
PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(getEntityId());
|
||||
sendPacket(destroy);
|
||||
@ -349,8 +349,8 @@ public class CustomPlayer extends CraftPlayer{
|
||||
}
|
||||
|
||||
public void strikeLightning(Location loc) {
|
||||
World nmsWorld = ((CraftWorld) loc.getWorld()).getHandle();
|
||||
EntityLightning lightning = new EntityLightning(nmsWorld, loc.getX(), loc.getY(), loc.getZ(), true);
|
||||
World nmsWorld = (World) ((CraftWorld) loc.getWorld()).getHandle();
|
||||
EntityLightning lightning = new EntityLightning((net.minecraft.server.v1_10_R1.World) nmsWorld, loc.getX(), loc.getY(), loc.getZ(), true);
|
||||
sendPacket(new PacketPlayOutSpawnEntityWeather(lightning));
|
||||
playSound(loc, Sound.ENTITY_LIGHTNING_IMPACT, 20.0F, 1.0F);
|
||||
playSound(loc, Sound.ENTITY_LIGHTNING_THUNDER, 20.0F, 1.0F);
|
||||
@ -360,11 +360,6 @@ public class CustomPlayer extends CraftPlayer{
|
||||
Blackscreen.setBlack(PLAYER, seconds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOnline() {
|
||||
return DATABASE_PLAYER.isOnline();
|
||||
}
|
||||
|
||||
public void setStoryResourcePack() {
|
||||
setResourcePack("http://univento.eu/storyPack.zip");
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ public class SpectateManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void add(Spectator spectator) {
|
||||
static void add(Spectator spectator) {
|
||||
if(!spectators.contains(spectator)) spectators.add(spectator);
|
||||
}
|
||||
|
||||
public static void remove(Spectator spectator) {
|
||||
static void remove(Spectator spectator) {
|
||||
if(spectators.contains(spectator)) spectators.remove(spectator);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.univento.core.api.player;
|
||||
|
||||
import eu.univento.commons.player.language.MessageConstant;
|
||||
import eu.univento.core.Core;
|
||||
import eu.univento.core.api.game.PlayerManager;
|
||||
import eu.univento.core.api.items.ItemBuilder;
|
||||
@ -51,7 +52,7 @@ public class Spectator {
|
||||
}
|
||||
|
||||
public void openPlayerListInventory() {
|
||||
ScrollingInventory inventory = new ScrollingInventory(player, player.getDatabasePlayer().getMessage("Game.Menu.SpectatorMenu"));
|
||||
ScrollingInventory inventory = new ScrollingInventory(player, player.getDatabasePlayer().getLanguage().getMessage(MessageConstant.GAME_SPECTATE_MENU));
|
||||
for(CustomPlayer players : PlayerManager.getPlayers()) {
|
||||
inventory.addItem(new ItemBuilder(Material.SKULL_ITEM).durability((short) 3).skullOwner(players.getDisplayName()).name(players.getDisplayName()).make());
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package eu.univento.core.api.server;
|
||||
|
||||
import eu.univento.commons.server.ServerType;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,6 @@
|
||||
package eu.univento.core.api.server;
|
||||
|
||||
import eu.univento.cloud.commons.server.ServerType;
|
||||
import eu.univento.commons.server.ServerType;
|
||||
import eu.univento.core.Core;
|
||||
import eu.univento.core.commands.Build;
|
||||
import eu.univento.core.listeners.Blocks;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package eu.univento.core.api.shop;
|
||||
|
||||
import eu.univento.cloud.commons.server.ServerType;
|
||||
import eu.univento.commons.server.ServerType;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
|
51
src/main/java/eu/univento/core/api/story/StoryMission.java
Normal file
51
src/main/java/eu/univento/core/api/story/StoryMission.java
Normal file
@ -0,0 +1,51 @@
|
||||
package eu.univento.core.api.story;
|
||||
|
||||
import eu.univento.core.Core;
|
||||
import eu.univento.core.api.player.CustomPlayer;
|
||||
import lombok.Data;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class StoryMission{
|
||||
|
||||
private PluginManager pluginManager;
|
||||
private List<Listener> listeners;
|
||||
private StoryMissions mission;
|
||||
private CustomPlayer player;
|
||||
|
||||
public StoryMission(StoryMissions mission, CustomPlayer player) {
|
||||
this.mission = mission;
|
||||
this.player = player;
|
||||
this.pluginManager = Bukkit.getPluginManager();
|
||||
player.getDatabasePlayer().setInDatabase("mission", mission.getId());
|
||||
setStatus(StoryMissionStatus.RUNNING);
|
||||
}
|
||||
|
||||
public void registerEvent(Listener listener) {
|
||||
listeners.add(listener);
|
||||
pluginManager.registerEvents(listener, Core.getInstance());
|
||||
}
|
||||
|
||||
public boolean unregisterEvent(Listener listener) {
|
||||
HandlerList.unregisterAll(listener);
|
||||
return listeners.contains(listener) && listeners.remove(listener);
|
||||
}
|
||||
|
||||
public void unregisterEvents() {
|
||||
listeners.forEach(HandlerList::unregisterAll);
|
||||
}
|
||||
|
||||
public void setStatus(StoryMissionStatus status) {
|
||||
player.getDatabasePlayer().setInDatabase("missionStatus", status.name());
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package eu.univento.core.api.story;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
public enum StoryMissionStatus {
|
||||
|
||||
RUNNING,
|
||||
DONE,
|
||||
}
|
23
src/main/java/eu/univento/core/api/story/StoryMissions.java
Normal file
23
src/main/java/eu/univento/core/api/story/StoryMissions.java
Normal file
@ -0,0 +1,23 @@
|
||||
package eu.univento.core.api.story;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author joethei
|
||||
* @version 0.1
|
||||
*/
|
||||
|
||||
public enum StoryMissions {
|
||||
|
||||
START(1, "Story.Mission.Start");
|
||||
|
||||
@Getter
|
||||
private int id;
|
||||
@Getter
|
||||
private String name;
|
||||
|
||||
StoryMissions(int id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
}
|
@ -46,7 +46,9 @@ public class Nick extends AutoCommand<Core>{
|
||||
p.getDatabasePlayer().getSettings().setNickStatus(true);
|
||||
p.getScoreboard().getTeam(p.getDatabasePlayer().getRank().getTeam()).addEntry(p.getDisplayName());
|
||||
p.sendMessage(msgs.PREFIX() + msgs.Core_NICK_ON());
|
||||
p.setNick(NickName.getRandomNick());
|
||||
String nick = NickName.getRandomNick();
|
||||
p.setNick(nick);
|
||||
//Core.getDebugManager().sendOverlay("der Nick ist " + nick);
|
||||
}
|
||||
}else {
|
||||
p.sendMessage(msgs.NO_PERMS());
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.univento.core.listeners;
|
||||
|
||||
import eu.univento.commons.player.language.MessageConstant;
|
||||
import eu.univento.core.Core;
|
||||
import eu.univento.core.api.Utils;
|
||||
import eu.univento.core.api.player.*;
|
||||
@ -102,11 +103,11 @@ public class JoinQuit implements Listener {
|
||||
loading.remove(p);
|
||||
}
|
||||
if(e.getStatus() == PlayerResourcePackStatusEvent.Status.FAILED_DOWNLOAD) {
|
||||
p.sendMessage(p.getDatabasePlayer().getMessage("Pack.failed_download"));
|
||||
p.sendMessage(p.getDatabasePlayer().getLanguage().getMessage(MessageConstant.PACK_FAILED_DOWNLOAD));
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(Core.getInstance(), p::setStoryResourcePack, 10 * 20L);
|
||||
}
|
||||
if(e.getStatus() == PlayerResourcePackStatusEvent.Status.DECLINED) {
|
||||
p.sendMessage(p.getDatabasePlayer().getMessage("Pack.declined"));
|
||||
p.sendMessage(p.getDatabasePlayer().getLanguage().getMessage(MessageConstant.PACK_DECLINED));
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(Core.getInstance(), p::setStoryResourcePack, 10 * 20L);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user