~ refactoring

This commit is contained in:
Johannes Theiner 2017-06-04 13:47:12 +02:00
parent dab8184020
commit 78d6d7eaa4
29 changed files with 491 additions and 767 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/target
TeamVento.iml

View File

@ -1,6 +1,15 @@
<?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">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>PAPER</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
@ -11,34 +20,77 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<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.2-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: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:4.10" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:17.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.2.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.avaje:ebean:2.8.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.persistence:persistence-api:1.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.17" 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.ow2.asm:asm-all:5.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-api:1.11-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:bukkit:1.11-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:craftbukkit:1.11-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:craftbukkit:1.11.2-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
<orderEntry type="library" name="Maven: com.boydti:fawe-api:latest" level="project" />
<orderEntry type="library" name="Maven: com.sk89q:worldguard:6.0.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: net.fabiozumbi12:redprotect:1.9.6" level="project" />
<orderEntry type="library" name="Maven: org.primesoft:BlocksHub:2.0" level="project" />
<orderEntry type="library" name="Maven: com.sk89q.worldedit:worldedit-core:6.1.3-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.plotsquared:plotsquared-api:latest" level="project" />
<orderEntry type="library" name="Maven: com.github.luben:zstd-jni:1.1.1" level="project" />
<orderEntry type="library" name="Maven: co.aikar:fastutil-lite:1.0" level="project" />
<orderEntry type="module" module-name="Core" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: co.aikar:taskchain-bukkit:3.4.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: co.aikar:taskchain-core:3.4.3" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.github.lordakkarin:nbt:1.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-buffer:5.0.0.Alpha2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-common:5.0.0.Alpha2" level="project" />
<orderEntry type="module" module-name="Commons" scope="PROVIDED" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.zaxxer:HikariCP:2.4.5" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.slf4j:slf4j-api:1.7.16" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: ai.api:libai:1.4.8" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.vertx:vertx-core:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-transport:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-handler:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-codec:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-handler-proxy:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-codec-socks:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-codec-http:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-codec-http2:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-resolver:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-resolver-dns:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.netty:netty-codec-dns:4.1.8.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.fasterxml.jackson.core:jackson-core:2.7.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.7.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.7.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.vertx:vertx-redis-client:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.vertx:vertx-mysql-postgresql-client:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.vertx:vertx-sql-common:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.scala-lang:scala-library:2.12.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.mauricio:postgresql-async_2.12:0.2.21" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.mauricio:db-async-common_2.12:0.2.21" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.joda:joda-convert:1.8.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.mauricio:mysql-async_2.12:0.2.21" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.vertx:vertx-mongo-client:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mongodb:mongodb-driver-async:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mongodb:mongodb-driver-core:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mongodb:bson:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: io.vertx:vertx-rabbitmq-client:3.4.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.rabbitmq:amqp-client:3.6.5" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-lang3:3.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: joda-time:joda-time:2.9.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.TheHolyWaffle:TeamSpeak-3-Java-API:v1.0.13" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: net.gpedro.integrations.slack:slack-webhook:1.2.1" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.nsp:JSkills:master-0.9.0-g8b333ec-15" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ejml:simple:0.28" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ejml:core:0.28" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ejml:dense64:0.28" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.gitlab:java-gitlab-api:1.2.7" level="project" />
</component>
</module>

31
pom.xml
View File

@ -51,20 +51,14 @@
</plugins>
</build>
<repositories>
<repository>
<id>univentoEU</id>
<url>http://dev.joethei.de:8081/repository/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.11-R0.1-SNAPSHOT</version>
<version>1.11.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!--
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
@ -77,23 +71,32 @@
<version>1.11-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
-->
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.11-R0.1-SNAPSHOT</version>
<version>1.11.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
<dependency>
<groupId>com.boydti</groupId>
<artifactId>fawe-api</artifactId>
<version>latest</version>
</dependency>
<dependency>
<groupId>eu.univento</groupId>
<artifactId>Core</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
</dependencies>
</project>

View File

@ -1,20 +1,32 @@
package eu.univento.teamvento;
import eu.univento.commons.server.ServerType;
import eu.univento.core.Core;
import eu.univento.core.api.Config;
import eu.univento.core.api.command.CommandFramework;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.server.ServerSettings;
import eu.univento.teamvento.commands.*;
import eu.univento.teamvento.listener.*;
import eu.univento.teamvento.utils.PlotManager;
import eu.univento.teamvento.utils.VoidGenerator;
import eu.univento.teamvento.commands.WorldCommands;
import eu.univento.teamvento.listener.Events;
import eu.univento.teamvento.listener.JoinQuit;
import eu.univento.teamvento.listener.MenuEvents;
import eu.univento.teamvento.listener.SignInteract;
import eu.univento.teamvento.generator.GeneratorManager;
import eu.univento.teamvento.plot.PlotManager;
import org.bukkit.*;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Sheep;
import org.bukkit.inventory.meta.FireworkMeta;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.Vector;
import java.io.File;
import java.util.Random;
/**
* @author joethei
@ -39,64 +51,79 @@ public class TeamVento extends JavaPlugin {
return instance;
}
private Random random = new Random();
@Override
public void onEnable() {
Core.getInstance().registerPlugin(this);
instance = this;
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new JoinQuit(), this);
pm.registerEvents(new Events(), this);
pm.registerEvents(new PositionSetter(), this);
pm.registerEvents(new SignInteract(), this);
pm.registerEvents(new MenuEvents(), this);
new Setloc(this, "setloc", "sets locations");
new WorldTP(this, "worldteleport", "teleports players to other worlds", "wtp");
new WorldCreate(this, "worldcreate", "creates new worlds", "wc");
new WorldImport(this, "worldimport", "imports worlds", "wi");
new Set(this, "set", "sets the material of selected blocks");
new Sel(this, "sel", "removes block selection");
new WorldList(this, "worldlist", "lists all worlds", "wl");
new PlotInfo(this, "plotinfo", "info about a plot", "pi");
for(String world : getCfg().getKeys(true)) {
String generator = getCfg().getString(world);
WorldCreator creator = new WorldCreator(world);
creator.generateStructures(false);
if(generator.equals("normal")) {
creator.environment(World.Environment.NORMAL);
creator.type(WorldType.NORMAL);
}
if(generator.equals("flat")) {
creator.environment(World.Environment.NORMAL);
creator.type(WorldType.FLAT);
creator.generateStructures(false);
}
if(generator.equals("void")) {
/*
if(Bukkit.getWorld("plots") == null) {
WorldCreator creator = new WorldCreator("plots");
creator.generator(new VoidGenerator());
creator.type(WorldType.CUSTOMIZED);
creator.generateStructures(false);
}
Bukkit.createWorld(creator);
World loadedWorld = Bukkit.getWorld(world);
loadedWorld.setDifficulty(Difficulty.PEACEFUL);
getCfg().set("plots", "void");
try {
getCfg().save(getConfigFile());
} catch (IOException e) {
e.printStackTrace();
}
}
*/
CommandFramework commandFramework = new CommandFramework(this);
commandFramework.registerCommands(new WorldCommands());
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new JoinQuit(), getInstance());
pm.registerEvents(new SignInteract(), getInstance());
pm.registerEvents(new MenuEvents(), getInstance());
pm.registerEvents(new Events(), getInstance());
//new PlotInfo(this, "plotinfo", "info about a plot", "pi");
for(String world : getCfg().getKeys(true)) {
World loadedWorld = Bukkit.createWorld(GeneratorManager.getWorldCreator(world, getCfg().getString(world)));
loadedWorld.setDifficulty(Difficulty.HARD);
loadedWorld.setPVP(false);
loadedWorld.setAnimalSpawnLimit(0);
}
ServerSettings.setServerType(ServerType.TEAM_BUILD);
ServerSettings.setGameMode(GameMode.CREATIVE);
ServerSettings.setBuild(false);
PlotManager.update();
PlotManager.setLastPlot(PlotManager.getPlotByOwner(Config.readString("lastPlot")));
//PlotManager.update();
//PlotManager.setLastPlot(PlotManager.getPlotByOwner(Config.readString("lastPlot")));
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> Bukkit.getWorlds().stream().filter(world -> world.getTime() > 7698).forEach(world -> world.setTime(0)), 100 * 20L, 20L);
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> Events.redstone = 0, 1L, 10 * 20L);
Bukkit.getScheduler().runTaskTimer(this, () -> {
for(CustomPlayer player : Core.getOnlinePlayers()) {
if(player.getItemInHand().getType() == Material.SHEARS) {
Sheep sheep = (Sheep) player.getWorld().spawnEntity(player.getEyeLocation(), EntityType.SHEEP);
sheep.setColor(DyeColor.values()[random.nextInt(DyeColor.values().length)]);
sheep.setVelocity(new Vector(random.nextDouble() * (random.nextBoolean() ? 1 : -1), 2, random.nextDouble() * (random.nextBoolean() ? 1 : -1)));
sheep.setAI(true);
Bukkit.getScheduler().runTaskLater(this, () -> {
Location loc = sheep.getEyeLocation();
final Firework firework = (Firework) player.getWorld().spawnEntity(loc, EntityType.FIREWORK);
FireworkMeta meta = firework.getFireworkMeta();
FireworkEffect effect = FireworkEffect.builder().withColor(sheep.getColor().getColor()).with(FireworkEffect.Type.BALL).build();
meta.addEffect(effect);
firework.setFireworkMeta(meta);
Bukkit.getScheduler().runTaskLater(this, firework::detonate, 1L);
sheep.remove();
}, 20L);
}
}
}, 20L, 10L);
}
@Override
public void onDisable() {
Config.write(PlotManager.getLastPlot().getOwner().toString());
Bukkit.getWorld("plots").getLivingEntities().forEach(Entity::remove);
Core.getInstance().unregisterPlugin(this);
}
}

View File

@ -1,13 +1,12 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.commons.player.rank.Rank;
import eu.univento.commons.player.uuid.NameFetcher;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.utils.UUIDFetcher;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.Plot;
import eu.univento.teamvento.utils.PlotManager;
import eu.univento.teamvento.plot.Plot;
import eu.univento.teamvento.plot.PlotManager;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -30,7 +29,7 @@ public class PlotInfo extends AutoCommand<TeamVento>{
assert plot != null;
Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> {
p.sendMessage("§eName: " + plot.getName());
p.sendMessage("§eErsteller: " + UUIDFetcher.getName(plot.getOwner()));
p.sendMessage("§eErsteller: " + NameFetcher.getRequest(plot.getOwner()));
p.sendMessage("§eErstellt am: " + PlotManager.getCreatedDate(plot.getOwner().toString()));
p.sendMessage("§eKontakt: " + plot.getContact());
p.sendMessage("§eBiom: " + plot.getBiome().name());
@ -41,10 +40,8 @@ public class PlotInfo extends AutoCommand<TeamVento>{
p.sendMessage("§cHier ist leider kein Plot");
}
}else{
p.sendMessage(p.getMessages().NO_PERMS());
}
}else{
sender.sendMessage(Messages.Console.NOT_A_PLAYER);
}
return true;
}

View File

@ -1,41 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.WorldEdit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class Sel extends AutoCommand<TeamVento>{
public Sel(TeamVento 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(sender.getName());
if(p.getDatabasePlayer().isAllowed(Rank.Builder)) {
WorldEdit.setPos1(p, null);
WorldEdit.setPos2(p, null);
p.sendMessage(p.getMessages().PREFIX() + "selection cleared");
}else{
p.sendMessage(p.getMessages().PREFIX() + p.getMessages().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;
}
}

View File

@ -1,84 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.schematic.Cuboid;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.WorldEdit;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
/**
* @author joethei
* @version 0.1
*/
public class Set extends AutoCommand<TeamVento>{
public Set(TeamVento 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(sender.getName());
if(p.getDatabasePlayer().isAllowed(Rank.Builder)) {
Material material;
if(args.length == 0) {
material = p.getInventory().getItemInMainHand().getType();
setBlocks(material, p);
}
if(args.length == 1) {
if(Material.getMaterial(args[0]) != null) {
material = Material.getMaterial(args[0]);
setBlocks(material, p);
}else{
int id = Integer.parseInt(args[0]);
material = Material.getMaterial(id);
setBlocks(material, p);
}
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cYou need to give me some kind of stuff");
}
}else{
p.sendMessage(p.getMessages().PREFIX() + p.getMessages().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;
}
private void setBlocks(Material material, CustomPlayer p) {
if(material.isBlock()) {
if(WorldEdit.getPos1(p) == null || WorldEdit.getPos2(p) == null) {
p.sendMessage(p.getMessages().PREFIX() + "§ca location has not been set");
return;
}
Cuboid cb = new Cuboid(WorldEdit.getPos1(p).getLocation(), WorldEdit.getPos2(p).getLocation());
Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> {
long i = 0;
for(Block b : cb.getBlocks()) {
i++;
Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), () -> b.setType(material), i / 90);
}
});
p.sendMessage(p.getMessages().PREFIX() + "§ayou have changed the material of the blocks");
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cthe item needs to be a block");
}
}
}

View File

@ -1,58 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.Config;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
/**
* @author joethei
* @version 0.2
*/
public class Setloc extends AutoCommand<TeamVento>{
/**
* @param plugin main class
* @param command commons to execute
* @param description describes the commons
* @param aliases aliases of commons
*/
public Setloc(TeamVento 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(sender.getName());
Messages msgs = new Messages(p);
if(p.getDatabasePlayer().isAllowed(Rank.SrDeveloper)) {
if(args.length == 1) {
Config.write("Build.Locs." + args[0], p.getLocation());
p.sendMessage("§aLocation gesetzt");
}else {
p.sendMessage("§6Nutze /setloc <Ort>");
}
}else {
p.sendMessage(msgs.NO_PERMS());
}
}else {
sender.sendMessage(Messages.Console.NOT_A_PLAYER);
}
return false;
}
@Override
public List<String> tabComplete(CommandSender sender, String label, String[] args) {
List<String> list = new ArrayList<>();
list.add("Spawn");
return list;
}
}

View File

@ -0,0 +1,84 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.rank.Rank;
import eu.univento.core.api.command.Command;
import eu.univento.core.api.command.CommandArgs;
import eu.univento.core.api.command.Completer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.generator.GeneratorManager;
import org.bukkit.Bukkit;
import org.bukkit.World;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author joethei
* @version 1.0
*/
public class WorldCommands {
@Command(name = "world.teleport", aliases = {"wtp"}, description = "teleport through the worlds", usage = "/world teleport <World>", rank = Rank.JrSupporter, inGameOnly = true)
public void teleport(CommandArgs args) {
if(args.length() == 1) {
if(Bukkit.getWorld(args.getArg(0)) != null) {
args.getPlayer().teleport(Bukkit.getWorld(args.getArg(0)).getSpawnLocation());
args.getPlayer().sendMessage("§aDu hast die Welt gewechselt");
}else {
args.getPlayer().sendMessage("§cDie Welt " + args.getArg(0) + " exsistiert nicht");
}
}else args.getPlayer().sendMessage("§cDie Anzahl der Argumente stimmt nicht");
}
@Completer(name = "world.teleport", aliases = "wtp")
public List<String> teleportCompletor(CommandArgs args) {
return Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toCollection(LinkedList::new));
}
@Command(name = "world.list", aliases = {"wl"}, description = "list all worlds", usage = "/world list", rank = Rank.JrSupporter)
public void list(CommandArgs args) {
args.getSender().sendMessage("§cAll worlds");
for(String world : TeamVento.getCfg().getKeys(true)) {
args.getSender().sendMessage("§a-" + world);
}
}
@Command(name = "world.import", aliases = "wi", description = "import already existing worlds", usage = "/world import <name> <generator>", rank = Rank.Admin)
public void importWorld(CommandArgs args) {
if(args.length() == 2) {
if(Bukkit.getWorld(args.getArg(0)) == null && !new File(args.getArg(0)).exists()) {
Bukkit.createWorld(GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1)));
TeamVento.getCfg().set(args.getArg(0), args.getArg(1));
try {
TeamVento.getCfg().save(TeamVento.getConfigFile());
} catch (IOException e) {
e.printStackTrace();
}
args.getSender().sendMessage("§ayour world has been imported");
}else args.getSender().sendMessage("3cthe chosen world already exists");
}else {
args.getSender().sendMessage("§cplease use /world import <name> <generator>");
}
}
@Command(name = "world.create", aliases = "wc", description = "create new worlds", usage = "/world create <name> <generator>", rank = Rank.SrBuilder)
public void create(CommandArgs args) {
if(args.length() == 2) {
if(Bukkit.getWorld(args.getArg(0)) == null && GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1)) != null) {
Bukkit.createWorld(GeneratorManager.getWorldCreator(args.getArg(0), args.getArg(1)));
TeamVento.getCfg().set(args.getArg(0), args.getArg(1));
try {
TeamVento.getCfg().save(TeamVento.getConfigFile());
} catch (IOException e) {
e.printStackTrace();
}
args.getSender().sendMessage("§aYour world has been created");
}
}else args.getSender().sendMessage("§cPlease use /world create <name> <generator>");
}
}

View File

@ -1,78 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.VoidGenerator;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.WorldType;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.io.IOException;
import java.util.List;
/**
* @author joethei
* @version 0.1
*/
public class WorldCreate extends AutoCommand<TeamVento>{
public WorldCreate(TeamVento 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(sender.getName());
if(p.getDatabasePlayer().isAllowed(Rank.SrBuilder)) {
if(args.length == 2) {
if(Bukkit.getWorld(args[0]) == null && (args[1].equalsIgnoreCase("normal") || args[1].equalsIgnoreCase("flat") || args[1].equalsIgnoreCase("void"))) {
WorldCreator creator = new WorldCreator(args[0]);
if(args[1].equalsIgnoreCase("normal")) {
creator.environment(World.Environment.NORMAL);
creator.type(WorldType.NORMAL);
}
if(args[1].equalsIgnoreCase("flat")) {
creator.environment(World.Environment.NORMAL);
creator.type(WorldType.FLAT);
creator.generateStructures(false);
}
if(args[1].equalsIgnoreCase("void")) {
creator.generator(new VoidGenerator());
creator.type(WorldType.CUSTOMIZED);
creator.generateStructures(false);
}
Bukkit.createWorld(creator);
TeamVento.getCfg().set(args[0], args[1]);
try {
TeamVento.getCfg().save(TeamVento.getConfigFile());
} catch (IOException e) {
e.printStackTrace();
}
p.sendMessage(p.getMessages().PREFIX() + "§aYour world has been created");
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cPlease use /worldcreate <name> <normal, flat, void>");
}
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cPlease use /worldcreate <name> <normal, flat, void>");
}
}else{
p.sendMessage(p.getMessages().PREFIX() + p.getMessages().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;
}
}

View File

@ -1,60 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import org.bukkit.Bukkit;
import org.bukkit.WorldCreator;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.io.IOException;
import java.util.List;
/**
* @author joethei
* @version 0.1
*/
public class WorldImport extends AutoCommand<TeamVento>{
public WorldImport(TeamVento 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(sender.getName());
if (p.getDatabasePlayer().isAllowed(Rank.SrBuilder)) {
if(args.length == 1) {
if(Bukkit.getWorld(args[0]) == null) {
Bukkit.createWorld(new WorldCreator(args[0]));
TeamVento.getCfg().set(args[0], args[1]);
try {
TeamVento.getCfg().save(TeamVento.getConfigFile());
} catch (IOException e) {
e.printStackTrace();
}
p.sendMessage(p.getMessages().PREFIX() + "§ayour world has been imported");
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cthe chosen world already exists");
}
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cplease use /worldimport <name>");
}
}else{
p.sendMessage(p.getMessages().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;
}
}

View File

@ -1,52 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
/**
* @author joethei
* @version 0.1
*/
public class WorldList extends AutoCommand<TeamVento> {
public WorldList(TeamVento 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(sender.getName());
if(p.getDatabasePlayer().isAllowed(Rank.Supporter)) {
p.sendMessage("§cAll worlds");
for(String world : TeamVento.getCfg().getKeys(true)) {
TextComponent text = new TextComponent("§a- " + world);
text.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/wtp " + world));
text.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("In die Welt").create()));
p.spigot().sendMessage(text);
}
}else{
p.sendMessage(p.getMessages().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;
}
}

View File

@ -1,55 +0,0 @@
package eu.univento.teamvento.commands;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.AutoCommand;
import eu.univento.core.api.languages.Messages;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author joethei
* @version 0.1
*/
public class WorldTP extends AutoCommand<TeamVento>{
public WorldTP(TeamVento 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(sender.getName());
if(p.getDatabasePlayer().isAllowed(Rank.Supporter)) {
if(args.length == 1) {
if(Bukkit.getWorld(args[0]) != null) {
p.teleport(Bukkit.getWorld(args[0]).getSpawnLocation());
p.sendMessage(p.getMessages().PREFIX() + "§aDu hast die Welt gewechselt");
}else{
p.sendMessage(p.getMessages().PREFIX() + "§cDie Welt " + args[0] + " exsistiert nicht");
}
}else {
p.sendMessage(p.getMessages().PREFIX() + "§cDie Anzahl der Argumente stimmt nicht");
}
}else{
p.sendMessage(p.getMessages().NO_PERMS());
}
}else{
sender.sendMessage(Messages.Console.NOT_A_PLAYER);
}
return true;
}
@Override
public List<String> tabComplete(CommandSender sender, String label, String[] args) {
return Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toCollection(ArrayList::new));
}
}

View File

@ -0,0 +1,11 @@
package eu.univento.teamvento.generator;
/**
* @author joethei
* @version 1.0
*/
public enum Generator {
NORMAL,
FLAT,
VOID;
}

View File

@ -0,0 +1,31 @@
package eu.univento.teamvento.generator;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.WorldType;
/**
* @author joethei
* @version 0.1
*/
public class GeneratorManager {
public static WorldCreator getWorldCreator(String name, String generator) {
WorldCreator creator = new WorldCreator(name);
if(generator.equals("normal")) {
creator.environment(World.Environment.NORMAL);
creator.type(WorldType.NORMAL);
}
if(generator.equals("flat")) {
creator.environment(World.Environment.NORMAL);
creator.type(WorldType.FLAT);
creator.generateStructures(false);
}
if(generator.equals("void")) {
creator.generator(new VoidGenerator());
creator.type(WorldType.CUSTOMIZED);
creator.generateStructures(false);
}else return null;
return creator;
}
}

View File

@ -1,4 +1,4 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.generator;
import org.bukkit.Location;
import org.bukkit.World;

View File

@ -1,48 +1,49 @@
package eu.univento.teamvento.listener;
import eu.univento.commons.player.Rank;
import eu.univento.core.Core;
import eu.univento.commons.player.rank.Rank;
import eu.univento.core.api.Config;
import eu.univento.core.api.events.MoveEventFilter;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.Plot;
import eu.univento.teamvento.utils.PlotManager;
import eu.univento.teamvento.utils.Time;
import eu.univento.teamvento.utils.Weather;
import eu.univento.teamvento.plot.Plot;
import eu.univento.teamvento.plot.PlotManager;
import eu.univento.teamvento.plot.Time;
import eu.univento.teamvento.plot.Weather;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.Sign;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.*;
import org.bukkit.event.entity.*;
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
import org.bukkit.event.hanging.HangingPlaceEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.*;
import org.bukkit.event.weather.WeatherChangeEvent;
import org.bukkit.event.world.StructureGrowEvent;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import org.bukkit.util.EulerAngle;
import org.bukkit.util.Vector;
import java.util.HashMap;
import java.util.Random;
import java.util.Set;
import java.util.UUID;
/**
* @author joethei
* @version 0.3
*/
public class Events implements Listener{
public class Events implements Listener {
public static int redstone;
public static int redstone = 0;
private Random random = new Random();
private final HashMap<CustomPlayer, BukkitTask> lightningTasks = new HashMap<>();
@ -59,35 +60,35 @@ public class Events implements Listener{
@EventHandler
public void onBlockBreak(BlockBreakEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true);
}
@EventHandler
public void onBlockPlace(BlockPlaceEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true);
}
@EventHandler
public void onHangingPlace(HangingPlaceEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
}
@EventHandler
public void onHangingBreakByEntity(HangingBreakByEntityEvent e) {
if(e.getRemover() instanceof Projectile) {
if(((Projectile) e.getRemover()).getShooter() instanceof Player) {
if (e.getRemover() instanceof Projectile) {
if (((Projectile) e.getRemover()).getShooter() instanceof Player) {
CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getRemover()).getShooter());
if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
}else {
if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
} else {
e.setCancelled(true);
}
}
if(e.getRemover() instanceof Player) {
if (e.getRemover() instanceof Player) {
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getRemover());
if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
}else{
if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
} else {
e.setCancelled(true);
}
}
@ -96,13 +97,13 @@ public class Events implements Listener{
public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Player) {
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getDamager());
if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
}
if(e.getDamager() instanceof Projectile) {
if(((Projectile) e.getDamager()).getShooter() instanceof Player) {
if (e.getDamager() instanceof Projectile) {
if (((Projectile) e.getDamager()).getShooter() instanceof Player) {
CustomPlayer p = CustomPlayer.getPlayer((Player) ((Projectile) e.getDamager()).getShooter());
if(!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
}else {
if (!PlotManager.isAllowedToBuild(p, e.getEntity().getLocation())) e.setCancelled(true);
} else {
e.setCancelled(true);
}
}
@ -121,7 +122,7 @@ public class Events implements Listener{
return;
}
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getBlock().getLocation())) e.setCancelled(true);
}
@EventHandler
@ -131,7 +132,7 @@ public class Events implements Listener{
@EventHandler
public void onBlockRedstone(BlockRedstoneEvent e) {
if(e.getBlock().getWorld().getName().equalsIgnoreCase("EinfachAFK")) return;
if (e.getBlock().getWorld().getName().equalsIgnoreCase("world")) return;
redstone++;
if (redstone > 100) {
e.getBlock().setType(Material.SIGN_POST);
@ -147,11 +148,11 @@ public class Events implements Listener{
@EventHandler
public void onCreatureSpawn(CreatureSpawnEvent e) {
if(e.getSpawnReason() == CreatureSpawnEvent.SpawnReason.CUSTOM) return;
if(PlotManager.getPlotByLocation(e.getEntity().getLocation()) == null) {
e.setCancelled(true);
return;
}
//if(e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.CUSTOM) e.setCancelled(true);
//if(e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.SPAWNER_EGG) e.setCancelled(true);
e.getEntity().setAI(false);
e.getEntity().setSilent(true);
if (e.getEntity().getWorld().getName().equalsIgnoreCase("world")) return;
Plot plot = PlotManager.getPlotByLocation(e.getEntity().getLocation());
assert plot != null;
if (e.getEntity().getType() != EntityType.ITEM_FRAME && e.getEntity().getType() != EntityType.ARMOR_STAND && e.getEntity().getType() != EntityType.PAINTING) {
@ -159,6 +160,12 @@ public class Events implements Listener{
}
}
@EventHandler
public void onEntityDeath(EntityDeathEvent e) {
e.getDrops().clear();
e.setDroppedExp(0);
}
@EventHandler
public void onBlockFromTo(BlockFromToEvent e) {
Material type = e.getBlock().getType();
@ -167,7 +174,14 @@ public class Events implements Listener{
}
@EventHandler
public void onPiston(BlockPistonEvent e) {
public void onPistonExtend(BlockPistonExtendEvent e) {
if (e.getBlock().getWorld().getName().equalsIgnoreCase("world")) return;
e.setCancelled(true);
}
@EventHandler
public void onPistonRetract(BlockPistonRetractEvent e) {
if (e.getBlock().getWorld().getName().equalsIgnoreCase("world")) return;
e.setCancelled(true);
}
@ -180,33 +194,35 @@ public class Events implements Listener{
Block block = e.getClickedBlock().getRelative(BlockFace.UP);
if (!e.getPlayer().getWorld().getName().equalsIgnoreCase("plots")) return;
if (block.getType() == Material.FIRE) {
if(!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true);
}
}
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if(!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true);
if (e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (!PlotManager.isAllowedToBuild(p, e.getClickedBlock().getLocation())) e.setCancelled(true);
}
}
@EventHandler
public void onPlayerInteractEntity(PlayerInteractEntityEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(e.getRightClicked().getType() == EntityType.ITEM_FRAME) {
if(!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true);
if (e.getRightClicked().getType() == EntityType.ITEM_FRAME) {
if (!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true);
}
}
@EventHandler
public void onArmorStandManipulate(PlayerArmorStandManipulateEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getRightClicked().getLocation())) e.setCancelled(true);
}
@EventHandler
public void onDrop(PlayerDropItemEvent e) {
e.setCancelled(true);
}
/*
@EventHandler
public void onPickup(PlayerPickupItemEvent e) {
e.setCancelled(true);
@ -219,8 +235,8 @@ public class Events implements Listener{
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
if(e.getClickedInventory() instanceof PlayerInventory) {
if(e.getSlot() == 8 || e.getHotbarButton() == 8) {
if (e.getClickedInventory() instanceof PlayerInventory) {
if (e.getSlot() == 8 || e.getHotbarButton() == 8) {
e.setCancelled(true);
}
}
@ -228,10 +244,11 @@ public class Events implements Listener{
@EventHandler
public void onSwapHands(PlayerSwapHandItemsEvent e) {
if(e.getPlayer().getInventory().getHeldItemSlot() == 8) {
if (e.getPlayer().getInventory().getHeldItemSlot() == 8) {
e.setCancelled(true);
}
}
*/
@EventHandler
public void onConsume(PlayerItemConsumeEvent e) {
@ -241,31 +258,31 @@ public class Events implements Listener{
@EventHandler
public void onBucketEmpty(PlayerBucketEmptyEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true);
}
@EventHandler
public void onBucketFill(PlayerBucketFillEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getBlockClicked().getLocation())) e.setCancelled(true);
}
@EventHandler
public void onBlockMove(MoveEventFilter.PlayerBlockMoveEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
//plot enter
if(PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) {
if (PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) {
Plot plot = PlotManager.getPlotByLocation(e.getTo());
assert plot != null;
p.setPlayerTime(plot.getTime().getValue(), false);
p.setPlayerWeather(plot.getWeatherType());
if(!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3")))
if (!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3")))
p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 999999, 2));
if(plot.getWeather() == Weather.THUNDER) {
if (plot.getWeather() == Weather.THUNDER) {
BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> {
Random random = new Random();
int r = random.nextInt(100);
if(r < 30) {
if (r < 30) {
p.strikeLightning(plot.getArea().getRandomLocation());
}
}, 2L, 50L);
@ -273,16 +290,16 @@ public class Events implements Listener{
}
}
//plot leave
if(PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) {
if (PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) {
p.setPlayerTime(Time.DAY.getValue(), false);
p.setPlayerWeather(WeatherType.CLEAR);
p.clearPotionEffects();
if(lightningTasks.containsKey(p))
if (lightningTasks.containsKey(p))
lightningTasks.get(p).cancel();
lightningTasks.remove(p);
}
if(e.getTo().getY() <= -5) {
if(!PlotManager.hasPlot(p)) {
if (e.getTo().getY() <= -5) {
if (!PlotManager.hasPlot(p)) {
p.teleport(Config.readLocation("Build.Locs.Spawn"));
return;
}
@ -292,35 +309,28 @@ public class Events implements Listener{
p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F));
}
Block up = p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock();
Block down = p.getLocation().subtract(0.0D, 2.0D, 0.0D).getBlock();
if(p.getLocation().getBlock().getType() == Material.GOLD_PLATE && up.getType() == Material.COAL_BLOCK) {
Core.getCommons().getLoggingHandler().getTeamVento().info("Platte und Coal");
if(down.getType() == Material.COMMAND_CHAIN && p.getDatabasePlayer().isAllowed(Rank.Supporter)){
p.teleport(Bukkit.getWorld("EinfachAFK").getSpawnLocation());
if (p.getLocation().getBlock().getType() == Material.GOLD_PLATE && up.getType() == Material.COAL_BLOCK && p.getDatabasePlayer().isAllowed(Rank.JrSupporter)) {
p.teleport(Bukkit.getWorld("Planning").getSpawnLocation());
p.setGameMode(GameMode.ADVENTURE);
}
}
if(up.getType() == Material.COAL_BLOCK && down.getType() == Material.COMMAND_CHAIN) {
Core.getCommons().getLoggingHandler().getTeamVento().info("Coal und Chain");
}
}
@EventHandler
public void onTeleport(PlayerTeleportEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
//plot enter
if(PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) {
if (PlotManager.getPlotByLocation(e.getFrom()) == null && PlotManager.getPlotByLocation(e.getTo()) != null) {
Plot plot = PlotManager.getPlotByLocation(e.getTo());
assert plot != null;
p.setPlayerTime(plot.getTime().getValue(), false);
p.setPlayerWeather(plot.getWeatherType());
if(!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3")))
if (!plot.isOwner(p) && !plot.getOwner().equals(UUID.fromString("c35f6ece-c430-4fc0-b61e-18b55be19ee3")))
p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 999999, 2));
if(plot.getWeather() == Weather.THUNDER) {
if (plot.getWeather() == Weather.THUNDER) {
BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> {
Random random = new Random();
int r = random.nextInt(100);
if(r < 30) {
if (r < 30) {
p.strikeLightning(plot.getArea().getRandomLocation());
}
}, 2L, 50L);
@ -328,11 +338,11 @@ public class Events implements Listener{
}
}
//plot leave
if(PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) {
if (PlotManager.getPlotByLocation(e.getFrom()) != null && PlotManager.getPlotByLocation(e.getTo()) == null) {
p.setPlayerTime(Time.DAY.getValue(), false);
p.setPlayerWeather(WeatherType.CLEAR);
p.clearPotionEffects();
if(lightningTasks.containsKey(p))
if (lightningTasks.containsKey(p))
lightningTasks.get(p).cancel();
lightningTasks.remove(p);
}
@ -345,7 +355,7 @@ public class Events implements Listener{
@EventHandler
public void onBlockGrow(BlockGrowEvent e) {
if(e.getBlock().getType() != Material.CROPS)
if (e.getBlock().getType() != Material.CROPS)
e.setCancelled(true);
}
@ -357,7 +367,7 @@ public class Events implements Listener{
@EventHandler
public void onMultiPlace(BlockMultiPlaceEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(!PlotManager.isAllowedToBuild(p, e.getBlockPlaced().getLocation())) e.setCancelled(true);
if (!PlotManager.isAllowedToBuild(p, e.getBlockPlaced().getLocation())) e.setCancelled(true);
}
@EventHandler
@ -373,19 +383,32 @@ public class Events implements Listener{
@EventHandler
public void onEntityShootBow(EntityShootBowEvent e) {
if(e.getEntityType() != EntityType.PLAYER) return;
if (e.getEntityType() != EntityType.PLAYER) return;
CustomPlayer p = CustomPlayer.getPlayer(e.getEntity().getName());
if(p.getUniqueId().toString().equals("682ebd10-3661-49ec-ba4d-4f24b761b1a7")) {
if (p.getUniqueId().toString().equals("682ebd10-3661-49ec-ba4d-4f24b761b1a7")) {
Projectile projectile = (Projectile) e.getProjectile();
projectile.setCustomNameVisible(true);
projectile.setCustomName("§cNope " + p.getDisplayName() + ", Nope");
projectile.setPassenger(projectile.getWorld().spawnEntity(projectile.getLocation(), EntityType.CHICKEN));
projectile.setGravity(false);
projectile.setGlowing(true);
projectile.setBounce(false);
Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), projectile::remove,3 * 20L);
}
if(p.getUniqueId().toString().equals("c35f6ece-c430-4fc0-b61e-18b55be19ee3")) {
e.setCancelled(true);
for(int i = 0; i < 100; i++) {
p.getWorld().spawnArrow(p.getEyeLocation(), new Vector(poop(), (random.nextInt(1200) - 200) / 1000, poop()), 1.2F, 12);
}
}
}
private double poop() {
return random.nextBoolean() ? random.nextDouble() : -random.nextDouble();
}
@EventHandler
public void onProjectileHit(ProjectileHitEvent e) {
if(e.getEntity().getPassenger() != null) {
if (e.getEntity().getPassenger() != null) {
e.getEntity().getPassenger().remove();
e.getEntity().remove();
}
@ -393,7 +416,7 @@ public class Events implements Listener{
@EventHandler
public void onProjectileLaunch(ProjectileLaunchEvent e) {
if(e.getEntityType() == EntityType.FISHING_HOOK || e.getEntityType() == EntityType.SNOWBALL) {
if (e.getEntityType() == EntityType.FISHING_HOOK || e.getEntityType() == EntityType.SNOWBALL) {
if (e.getEntity().getShooter() instanceof Player) {
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getEntity().getShooter());
if (p.getUniqueId().toString().equals("682ebd10-3661-49ec-ba4d-4f24b761b1a7")) {
@ -403,4 +426,35 @@ public class Events implements Listener{
}
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(e.getItem() == null || e.getItem().getType() != Material.STICK) return;
if(p.getLocation().clone().add(0, -1, 0).getBlock().getType() != Material.GRASS) return;
final Block target = p.getTargetBlock((Set<Material>) null, 50);
if(target == null) return;
new BukkitRunnable() {
Location loc = p.getLocation();
int i = 0;
@Override
public void run() {
final ArmorStand armorStand = (ArmorStand) loc.getWorld().spawnEntity(loc.clone().add(random.nextDouble() * 2 -1, -1, random.nextDouble() * 2 -1), EntityType.ARMOR_STAND);
armorStand.setVisible(true);
armorStand.setGravity(false);
armorStand.setArms(true);
armorStand.setHeadPose(new EulerAngle(Math.toRadians(random.nextInt(360)), Math.toRadians(random.nextInt(360)), Math.toRadians(random.nextInt(360))));
armorStand.setHelmet(new ItemStack(Material.GRASS));
Bukkit.getScheduler().runTaskLater(TeamVento.getInstance(), armorStand::remove, 40L);
i++;
if(i > 50) {
loc.getWorld().createExplosion(loc, 3);
for(Entity entity : loc.getWorld().getNearbyEntities(loc, 8, 8, 8)) {
if(entity instanceof LivingEntity) entity.setVelocity(new Vector(0, 2, 0));
}
cancel();
}
}
};
}
}

View File

@ -1,13 +1,8 @@
package eu.univento.teamvento.listener;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.Config;
import eu.univento.core.api.Hologram;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.Plot;
import eu.univento.teamvento.utils.PlotManager;
import net.minecraft.server.v1_11_R1.EnumParticle;
import eu.univento.teamvento.plot.Plot;
import eu.univento.teamvento.plot.PlotManager;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
@ -17,25 +12,24 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.HashMap;
/**
* @author joethei
* @version 0.1
*/
public class JoinQuit implements Listener {
public static final HashMap<CustomPlayer, Hologram> holograms = new HashMap<>();
//public static final HashMap<CustomPlayer, Hologram> holograms = new HashMap<>();
@EventHandler
public void onJoin(PlayerJoinEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
e.setJoinMessage(null);
p.getDatabasePlayer().getRankAsync().whenComplete((rank, throwable) -> Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getPrefix() + p.getName() + p.getDatabasePlayer().getRank().getSuffix() + "ist beigetreten"));
p.resetAttackSpeed();
if(PlotManager.hasPlot(p)) {
if (PlotManager.hasPlot(p)) {
Plot plot = PlotManager.getPlotByPlayer(p);
assert plot != null;
if(!plot.isReady()) {
if (!plot.isReady()) {
ItemStack menu = new ItemStack(Material.WATCH);
ItemMeta menuMeta = menu.getItemMeta();
menuMeta.setDisplayName("§eErweiterungen");
@ -43,30 +37,28 @@ public class JoinQuit implements Listener {
p.getInventory().setItem(8, menu);
}
}
if(p.getDatabasePlayer().getRank() == Rank.Builder || p.getDatabasePlayer().getRank() == Rank.SrBuilder)
Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat den Server §bbetreten");
else
p.teleport(Config.readLocation("Build.Locs.Spawn"));
p.teleport(Bukkit.getWorld("world").getSpawnLocation());
/*
String[] text;
if(PlotManager.hasPlot(p))
text = new String[]{"§eZu deinem Plot teleportieren", "|", "|", ""};
else
text = new String[]{"§eNeues Plot erstellen", "|", "|", "",};
Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> p.playParticle(Config.readLocation("Build.Locs.Holo").add(0.0D, 1.0D, 0.0D), EnumParticle.SPELL_WITCH, 0.4F, 10), 20L, 5L);
Hologram holo = new Hologram(new ItemStack(Material.GRASS), text, Config.readLocation("Build.Locs.Holo"));
holograms.put(p, holo);
holo.showPlayer(p);
*/
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
e.setQuitMessage(null);
holograms.remove(p);
if(p.getDatabasePlayer().getRank() == Rank.Builder || p.getDatabasePlayer().getRank() == Rank.SrBuilder)
Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat den Server §cverlassen");
e.setQuitMessage(p.getDatabasePlayer().getRank().getPrefix() + p.getName() + p.getDatabasePlayer().getRank().getSuffix() + "ist von uns gegangen");
//holograms.remove(p);
}
}

View File

@ -1,15 +1,15 @@
package eu.univento.teamvento.listener;
import eu.univento.commons.player.Rank;
import eu.univento.commons.player.rank.Rank;
import eu.univento.commons.player.uuid.NameFetcher;
import eu.univento.commons.player.uuid.UUIDFetcher;
import eu.univento.core.Core;
import eu.univento.core.api.gui.AnvilGUI;
import eu.univento.core.api.items.ItemBuilder;
import eu.univento.core.api.items.PageInventory;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.utils.UUIDFetcher;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.*;
import net.gpedro.integrations.slack.SlackMessage;
import eu.univento.teamvento.plot.*;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@ -27,6 +27,11 @@ import org.bukkit.inventory.meta.SkullMeta;
import java.util.ArrayList;
/**
* @author joethei
* @version 1.0
*/
public class MenuEvents implements Listener{
@EventHandler
@ -91,7 +96,7 @@ public class MenuEvents implements Listener{
PageInventory inventory = new PageInventory("§eTeleport", p, true);
ArrayList<ItemStack> items = new ArrayList<>();
for(Plot plots : PlotManager.getPlots()) {
String name = UUIDFetcher.getName(plots.getOwner());
String name = NameFetcher.getRequest(plot.getOwner());
items.add(new ItemBuilder(Material.SKULL_ITEM).durability((short) 3).skullOwner(name).name("§e" + plots.getName()).lore("§evon " + name).make());
}
inventory.setPages(items);
@ -105,9 +110,6 @@ public class MenuEvents implements Listener{
plot.setReady();
p.getInventory().remove(p.getInventory().getItem(8));
Core.getOnlinePlayers().stream().filter(player -> player.getDatabasePlayer().isAllowed(Rank.Builder)).forEach(player -> player.sendMessage("§a[Plot]§e" + p.getName() + " ist fertig"));
SlackMessage message = new SlackMessage("#bauevent", p.getName(), " ist nun fertig mit bauen");
message.setIcon("http://cravatar.eu/head/" + p.getUniqueId().toString());
Core.getCommons().getSlackHandler().getSlackAPI().call(message);
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equals("Nein"))
p.closeInventory();
@ -196,7 +198,6 @@ public class MenuEvents implements Listener{
event.setWillClose(true);
event.setWillDestroy(true);
plot.setName(event.getName());
p.refreshExperience();
}else{
event.setWillDestroy(true);
event.setWillClose(true);
@ -216,7 +217,6 @@ public class MenuEvents implements Listener{
event.setWillClose(true);
event.setWillDestroy(true);
plot.setContact(event.getName());
p.refreshExperience();
}else{
event.setWillDestroy(true);
event.setWillClose(true);
@ -235,7 +235,7 @@ public class MenuEvents implements Listener{
if(e.getCurrentItem().getType() == Material.SKULL_ITEM) {
SkullMeta skull = (SkullMeta) e.getCurrentItem().getItemMeta();
Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> {
Plot tpPlot = PlotManager.getPlotByOwner(UUIDFetcher.getUUID(skull.getOwner()).toString());
Plot tpPlot = PlotManager.getPlotByOwner(UUIDFetcher.getRequest(skull.getOwner()).toString());
assert tpPlot != null;
Location loc = tpPlot.getSpawn();
Bukkit.getScheduler().runTask(TeamVento.getInstance(), () -> p.teleport(new Location(loc.getWorld(), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F)));

View File

@ -1,36 +0,0 @@
package eu.univento.teamvento.listener;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.utils.WorldEdit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
/**
* @author joethei
* @version 0.1
*/
public class PositionSetter implements Listener{
@EventHandler
public void onInteract(PlayerInteractEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
Block b = e.getClickedBlock();
ItemStack item = p.getInventory().getItemInMainHand();
if (p.getDatabasePlayer().isAllowed(Rank.Builder)) {
if(e.getAction() == Action.LEFT_CLICK_BLOCK && item.getType() == Material.WOOD_AXE) {
WorldEdit.setPos1(p, b);
p.sendMessage(p.getMessages().PREFIX() + "§aset pos1");
}
if(e.getAction() == Action.RIGHT_CLICK_BLOCK && item.getType() == Material.WOOD_AXE) {
WorldEdit.setPos2(p, b);
p.sendMessage(p.getMessages().PREFIX() + "§aset pos2");
}
}
}
}

View File

@ -1,8 +1,8 @@
package eu.univento.teamvento.listener;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.utils.Plot;
import eu.univento.teamvento.utils.PlotManager;
import eu.univento.teamvento.plot.Plot;
import eu.univento.teamvento.plot.PlotManager;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@ -27,6 +27,7 @@ public class SignInteract implements Listener {
assert plot != null;
Location loc = plot.getSpawn();
p.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F));
p.setFlying(true);
} else {
PlotManager.createPlot(p);

View File

@ -1,4 +1,4 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.plot;
import eu.univento.core.api.items.ItemBuilder;
import eu.univento.core.api.player.CustomPlayer;

View File

@ -1,11 +1,7 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.plot;
import com.mongodb.CursorType;
import com.mongodb.client.FindIterable;
import eu.univento.core.Core;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.schematic.Cuboid;
import org.bson.Document;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.Location;
@ -121,26 +117,14 @@ public class Plot {
}
private Object getObjectFromDatbase(String name) {
FindIterable<Document> cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", owner.toString()));
cursor.cursorType(CursorType.NonTailable);
Document doc = cursor.first();
if (doc == null) return null;
return doc.get(name);
return null;
}
private String getStringFromDatabase(String name) {
FindIterable<Document> cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", owner.toString()));
cursor.cursorType(CursorType.NonTailable);
Document doc = cursor.first();
if (doc == null) return null;
return doc.getString(name);
return "";
}
private void setInDatabase(String name, Object obj) {
Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").updateOne(new Document("uuid", owner.toString()), new Document("$set", new Document(name, obj)));
}
}

View File

@ -1,9 +1,8 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.plot;
import eu.univento.core.api.Config;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.listener.JoinQuit;
import lombok.AllArgsConstructor;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@ -36,7 +35,6 @@ interface PlotAction {
assert plot != null;
Location loc = plot.getSpawn();
player.teleport(new Location(Bukkit.getWorld("plots"), loc.getX(), loc.getY(), loc.getZ(), 89.0F, 6.0F));
JoinQuit.holograms.get(player).hidePlayer(player);
player.sendHologram(new ItemStack(Material.GRASS), Config.readLocation("Build.Locs.Holo"), "§eZu deinem Plot teleportieren", "|", "|", "");
}

View File

@ -1,14 +1,11 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.plot;
import com.mongodb.BasicDBObject;
import com.mongodb.CursorType;
import com.mongodb.client.FindIterable;
import eu.univento.commons.player.Rank;
import eu.univento.commons.player.rank.Rank;
import eu.univento.core.Core;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.core.api.schematic.Cuboid;
import eu.univento.teamvento.TeamVento;
import org.bson.Document;
import io.vertx.core.json.JsonObject;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@ -17,7 +14,9 @@ import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.time.Instant;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.LinkedBlockingDeque;
/**
@ -45,13 +44,16 @@ public class PlotManager {
}
public static void update() {
FindIterable<Document> cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find();
for (Document doc : cursor) {
String uuid = doc.getString("uuid");
Core.getCommons().getDatabaseManager().getMongoDB().getClient().find("plots", null, res -> {
if(res.succeeded()) {
for(JsonObject json : res.result()) {
String uuid = json.getString("uuid");
Plot plot = new Plot(new Cuboid(getLocation(uuid, "minPos"), getLocation(uuid, "maxPos")), UUID.fromString(uuid), getLocation(uuid, "Spawn"));
plots.add(plot);
plot.setBiome(plot.getBiome());
}
}else res.cause().printStackTrace();
});
}
public static Plot getPlotByPlayer(CustomPlayer p) {
@ -366,7 +368,7 @@ public class PlotManager {
}
static void addPlotToDatabase(Plot plot) {
Document doc = new Document("uuid", plot.getOwner().toString());
JsonObject json = new JsonObject().put("uuid", plot.getOwner().toString());
Date date = new Date();
HashMap<String, Object> maxPos = new HashMap<>();
@ -384,19 +386,13 @@ public class PlotManager {
spawn.put("Y", plot.getSpawn().getY());
spawn.put("Z", plot.getSpawn().getZ());
doc.put("created", date);
doc.put("maxPos", new BasicDBObject(maxPos));
doc.put("minPos", new BasicDBObject(minPos));
doc.put("Spawn", new BasicDBObject(spawn));
doc.put("time", Time.DAY.name());
doc.put("weather", Weather.CLEAR.name());
doc.put("biome", Biome.PLAINS.name());
doc.put("name", "§cunbenanntes Plot");
doc.put("contact", "");
doc.put("ready", false);
json.put("created", date).put("maxPos", new JsonObject(maxPos)).put("minPos", new JsonObject(minPos)).put("Spawn", new JsonObject(spawn)).put("time", Time.DAY.name())
.put("weather", Weather.CLEAR.name()).put("biome", Biome.PLAINS.name()).put("name", "§cunbenanntes Plot").put("contact", "").put("ready", false);
Core.getCommons().getDatabaseManager().getMongoDB().getClient().insert("plots", json, res -> {
if(res.failed()) res.cause().printStackTrace();
});
Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").insertOne(doc);
}
private static boolean isPlot(Location location) {
@ -415,7 +411,7 @@ public class PlotManager {
return null;
}
public static Date getCreatedDate(String uuid) {
public static CompletableFuture<Instant> getCreatedDate(String uuid) {
return getDateFromDatabase(uuid);
}
@ -434,24 +430,22 @@ public class PlotManager {
}
}
private static Date getDateFromDatabase(String uuid) {
FindIterable<Document> cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", uuid));
cursor.cursorType(CursorType.NonTailable);
Document doc = cursor.first();
if (doc == null) return null;
return doc.getDate("created");
private static CompletableFuture<Instant> getDateFromDatabase(String uuid) {
CompletableFuture<Instant> future = new CompletableFuture<>();
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("plots", new JsonObject().put("uuid", uuid), null, res -> {
if(res.succeeded()) future.complete(res.result().getInstant("created"));
else res.cause().printStackTrace();
});
return future;
}
private static Object getObjectFromDatbase(String uuid, String name) {
FindIterable<Document> cursor = Core.getCommons().getDatabaseManager().getMongoDB().getDatabase().getCollection("plots").find(new Document("uuid", uuid));
cursor.cursorType(CursorType.NonTailable);
Document doc = cursor.first();
if (doc == null) return null;
return doc.get(name);
private static CompletableFuture<Object> getObjectFromDatbase(String uuid, String name) {
CompletableFuture<Object> future = new CompletableFuture<>();
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("plots", new JsonObject().put("uuid", uuid), null, res -> {
if(res.succeeded()) future.complete(res.result().getValue(name));
else res.cause().printStackTrace();
});
return future;
}
private static Map<String, Object> getMapFromDatabase(String uuid, String name) {

View File

@ -1,4 +1,4 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.plot;
/**
* @author joethei

View File

@ -1,4 +1,4 @@
package eu.univento.teamvento.utils;
package eu.univento.teamvento.plot;
public enum Weather {

View File

@ -1,42 +0,0 @@
package eu.univento.teamvento.utils;
import eu.univento.core.api.player.CustomPlayer;
import org.bukkit.block.Block;
import java.util.HashMap;
/**
* @author joethei
* @version 0.1
*/
public class WorldEdit {
private static final HashMap<CustomPlayer, Block> pos1 = new HashMap<>();
private static final HashMap<CustomPlayer, Block> pos2 = new HashMap<>();
public static Block getPos1(CustomPlayer p) {
return pos1.containsKey(p) ? pos1.get(p) : null;
}
public static Block getPos2(CustomPlayer p) {
return pos2.containsKey(p) ? pos2.get(p) : null;
}
public static void setPos1(CustomPlayer p, Block b) {
if(pos1.containsKey(p)) {
pos1.remove(p);
}
pos1.put(p, b);
}
public static void setPos2(CustomPlayer p, Block b) {
if(pos2.containsKey(p)) {
pos2.remove(p);
}
pos2.put(p, b);
}
public static boolean hasSetPos(CustomPlayer p) {
return pos1.containsKey(p) && pos2.containsKey(p);
}
}