+ 1.11 Update
+ pathfinding + method to send centered text
This commit is contained in:
parent
40e4190fcf
commit
1e6b3e3b6d
27
Core.iml
27
Core.iml
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
<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">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
@ -11,40 +11,33 @@
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.14.8" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: com.destroystokyo.paper:paper-api:1.11-R0.1-SNAPSHOT" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-api:1.10.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: commons-lang:commons-lang:2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
|
<orderEntry type="library" name="Maven: junit:junit:4.10" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
|
<orderEntry type="library" 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" name="Maven: com.google.guava:guava:17.0" level="project" />
|
<orderEntry type="library" name="Maven: com.google.guava:guava:17.0" level="project" />
|
||||||
<orderEntry type="library" 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: 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: javax.persistence:persistence-api:1.0" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.15" level="project" />
|
<orderEntry type="library" scope="PROVIDED" 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: 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.ow2.asm:asm-all:5.0.4" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.bukkit:craftbukkit:1.10.2-R0.1-SNAPSHOT" 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="module" module-name="Commons" />
|
<orderEntry type="module" module-name="Commons" />
|
||||||
<orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
|
<orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.4.5" 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: 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.commons:commons-lang3:3.1" 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: 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: 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: com.github.TheHolyWaffle:TeamSpeak-3-Java-API:v1.0.13" 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-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.logging.log4j:log4j-core:2.6.2" level="project" />
|
||||||
<orderEntry type="library" name="Maven: net.gpedro.integrations.slack:slack-webhook:1.2.1" level="project" />
|
<orderEntry type="library" name="Maven: net.gpedro.integrations.slack:slack-webhook:1.2.1" level="project" />
|
||||||
<orderEntry type="module-library">
|
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
|
||||||
<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>
|
</component>
|
||||||
</module>
|
</module>
|
Binary file not shown.
30
pom.xml
30
pom.xml
|
@ -50,34 +50,35 @@
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>spigot-repo</id>
|
<id>univentoEU</id>
|
||||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
<url>http://dev.joethei.de:8081/repository/public/</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>com.destroystokyo.paper</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>paper-api</artifactId>
|
||||||
<version>1.14.8</version>
|
<version>1.11-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.10.2-R0.1-SNAPSHOT</version>
|
<version>1.11-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>bukkit</artifactId>
|
<artifactId>bukkit</artifactId>
|
||||||
<version>1.10.2-R0.1-SNAPSHOT</version>
|
<version>1.11-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>craftbukkit</artifactId>
|
<artifactId>craftbukkit</artifactId>
|
||||||
<version>1.10.2-R0.1-SNAPSHOT</version>
|
<version>1.11-R0.1-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>eu.univento</groupId>
|
<groupId>eu.univento</groupId>
|
||||||
|
@ -85,16 +86,9 @@
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>eu.univento</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>Commons</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.16.10</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>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ import eu.univento.commons.Commons;
|
||||||
import eu.univento.commons.server.TPS;
|
import eu.univento.commons.server.TPS;
|
||||||
import eu.univento.core.antihack.AntiHack;
|
import eu.univento.core.antihack.AntiHack;
|
||||||
import eu.univento.core.api.Config;
|
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.effects.Blackscreen;
|
||||||
import eu.univento.core.api.events.MoveEventFilter;
|
import eu.univento.core.api.events.MoveEventFilter;
|
||||||
import eu.univento.core.api.items.InventoryManager;
|
import eu.univento.core.api.items.InventoryManager;
|
||||||
|
@ -15,7 +14,6 @@ import eu.univento.core.api.utils.NettyInjection;
|
||||||
import eu.univento.core.commands.*;
|
import eu.univento.core.commands.*;
|
||||||
import eu.univento.core.listeners.*;
|
import eu.univento.core.listeners.*;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import lombok.Getter;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
@ -86,9 +84,6 @@ public class Core extends JavaPlugin implements NettyInjection.PacketHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter
|
|
||||||
private static DebugManager debugManager;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
|
@ -232,7 +227,6 @@ public class Core extends JavaPlugin implements NettyInjection.PacketHandler {
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
Bukkit.getScheduler().runTask(this, new TPS());
|
Bukkit.getScheduler().runTask(this, new TPS());
|
||||||
debugManager = new DebugManager();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,8 +4,8 @@ import io.netty.channel.Channel;
|
||||||
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandler;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||||
import net.minecraft.server.v1_10_R1.Packet;
|
import net.minecraft.server.v1_11_R1.Packet;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -2,14 +2,14 @@ package eu.univento.core.api;
|
||||||
|
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import eu.univento.core.api.player.CustomPlayer;
|
import eu.univento.core.api.player.CustomPlayer;
|
||||||
import net.minecraft.server.v1_10_R1.EntityArmorStand;
|
import net.minecraft.server.v1_11_R1.EntityArmorStand;
|
||||||
import net.minecraft.server.v1_10_R1.EnumHand;
|
import net.minecraft.server.v1_11_R1.EnumHand;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayOutEntityDestroy;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutEntityDestroy;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayOutSpawnEntityLiving;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutSpawnEntityLiving;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
|
import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftItemStack;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
|
@ -8,7 +8,22 @@ import org.bukkit.DyeColor;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public enum BannerColor {
|
public enum BannerColor {
|
||||||
BLACK('0', DyeColor.BLACK), BLUE('1', DyeColor.BLUE), BROWN('g', DyeColor.BROWN), CYAN('3', DyeColor.CYAN), GRAY('8', DyeColor.GRAY), GREEN('2', DyeColor.GREEN), LIGHT_BLUE('b', DyeColor.LIGHT_BLUE), LIME('a', DyeColor.LIME), MAGENTA('c', DyeColor.MAGENTA), ORANGE('6', DyeColor.ORANGE), PINK('d', DyeColor.PINK), PURPLE('5', DyeColor.PURPLE), RED('4', DyeColor.RED), SILVER('7', DyeColor.SILVER), WHITE('f', DyeColor.WHITE), YELLOW('e', DyeColor.YELLOW);
|
BLACK('0', DyeColor.BLACK),
|
||||||
|
BLUE('1', DyeColor.BLUE),
|
||||||
|
BROWN('g', DyeColor.BROWN),
|
||||||
|
CYAN('3', DyeColor.CYAN),
|
||||||
|
GRAY('8', DyeColor.GRAY),
|
||||||
|
GREEN('2', DyeColor.GREEN),
|
||||||
|
LIGHT_BLUE('b', DyeColor.LIGHT_BLUE),
|
||||||
|
LIME('a', DyeColor.LIME),
|
||||||
|
MAGENTA('c', DyeColor.MAGENTA),
|
||||||
|
ORANGE('6', DyeColor.ORANGE),
|
||||||
|
PINK('d', DyeColor.PINK),
|
||||||
|
PURPLE('5', DyeColor.PURPLE),
|
||||||
|
RED('4', DyeColor.RED),
|
||||||
|
SILVER('7', DyeColor.SILVER),
|
||||||
|
WHITE('f', DyeColor.WHITE),
|
||||||
|
YELLOW('e', DyeColor.YELLOW);
|
||||||
|
|
||||||
private char colorCode;
|
private char colorCode;
|
||||||
private DyeColor color;
|
private DyeColor color;
|
||||||
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016 univento.eu - All rights reserved
|
||||||
|
* You are not allowed to use, distribute or modify this code
|
||||||
|
*/
|
||||||
|
|
||||||
|
package eu.univento.core.api.chat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author SirSpoodles
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public enum DefaultFontInfo {
|
||||||
|
|
||||||
|
A('A', 5),
|
||||||
|
a('a', 5),
|
||||||
|
B('B', 5),
|
||||||
|
b('b', 5),
|
||||||
|
C('C', 5),
|
||||||
|
c('c', 5),
|
||||||
|
D('D', 5),
|
||||||
|
d('d', 5),
|
||||||
|
E('E', 5),
|
||||||
|
e('e', 5),
|
||||||
|
F('F', 5),
|
||||||
|
f('f', 4),
|
||||||
|
G('G', 5),
|
||||||
|
g('g', 5),
|
||||||
|
H('H', 5),
|
||||||
|
h('h', 5),
|
||||||
|
I('I', 3),
|
||||||
|
i('i', 1),
|
||||||
|
J('J', 5),
|
||||||
|
j('j', 5),
|
||||||
|
K('K', 5),
|
||||||
|
k('k', 4),
|
||||||
|
L('L', 5),
|
||||||
|
l('l', 1),
|
||||||
|
M('M', 5),
|
||||||
|
m('m', 5),
|
||||||
|
N('N', 5),
|
||||||
|
n('n', 5),
|
||||||
|
O('O', 5),
|
||||||
|
o('o', 5),
|
||||||
|
P('P', 5),
|
||||||
|
p('p', 5),
|
||||||
|
Q('Q', 5),
|
||||||
|
q('q', 5),
|
||||||
|
R('R', 5),
|
||||||
|
r('r', 5),
|
||||||
|
S('S', 5),
|
||||||
|
s('s', 5),
|
||||||
|
T('T', 5),
|
||||||
|
t('t', 4),
|
||||||
|
U('U', 5),
|
||||||
|
u('u', 5),
|
||||||
|
V('V', 5),
|
||||||
|
v('v', 5),
|
||||||
|
W('W', 5),
|
||||||
|
w('w', 5),
|
||||||
|
X('X', 5),
|
||||||
|
x('x', 5),
|
||||||
|
Y('Y', 5),
|
||||||
|
y('y', 5),
|
||||||
|
Z('Z', 5),
|
||||||
|
z('z', 5),
|
||||||
|
NUM_1('1', 5),
|
||||||
|
NUM_2('2', 5),
|
||||||
|
NUM_3('3', 5),
|
||||||
|
NUM_4('4', 5),
|
||||||
|
NUM_5('5', 5),
|
||||||
|
NUM_6('6', 5),
|
||||||
|
NUM_7('7', 5),
|
||||||
|
NUM_8('8', 5),
|
||||||
|
NUM_9('9', 5),
|
||||||
|
NUM_0('0', 5),
|
||||||
|
EXCLAMATION_POINT('!', 1),
|
||||||
|
AT_SYMBOL('@', 6),
|
||||||
|
NUM_SIGN('#', 5),
|
||||||
|
DOLLAR_SIGN('$', 5),
|
||||||
|
PERCENT('%', 5),
|
||||||
|
UP_ARROW('^', 5),
|
||||||
|
AMPERSAND('&', 5),
|
||||||
|
ASTERISK('*', 5),
|
||||||
|
LEFT_PARENTHESIS('(', 4),
|
||||||
|
RIGHT_PERENTHESIS(')', 4),
|
||||||
|
MINUS('-', 5),
|
||||||
|
UNDERSCORE('_', 5),
|
||||||
|
PLUS_SIGN('+', 5),
|
||||||
|
EQUALS_SIGN('=', 5),
|
||||||
|
LEFT_CURL_BRACE('{', 4),
|
||||||
|
RIGHT_CURL_BRACE('}', 4),
|
||||||
|
LEFT_BRACKET('[', 3),
|
||||||
|
RIGHT_BRACKET(']', 3),
|
||||||
|
COLON(':', 1),
|
||||||
|
SEMI_COLON(';', 1),
|
||||||
|
DOUBLE_QUOTE('"', 3),
|
||||||
|
SINGLE_QUOTE('\'', 1),
|
||||||
|
LEFT_ARROW('<', 4),
|
||||||
|
RIGHT_ARROW('>', 4),
|
||||||
|
QUESTION_MARK('?', 5),
|
||||||
|
SLASH('/', 5),
|
||||||
|
BACK_SLASH('\\', 5),
|
||||||
|
LINE('|', 1),
|
||||||
|
TILDE('~', 5),
|
||||||
|
TICK('`', 2),
|
||||||
|
PERIOD('.', 1),
|
||||||
|
COMMA(',', 1),
|
||||||
|
SPACE(' ', 3),
|
||||||
|
DEFAULT('a', 4);
|
||||||
|
|
||||||
|
private char character;
|
||||||
|
private int length;
|
||||||
|
|
||||||
|
DefaultFontInfo(char character, int length) {
|
||||||
|
this.character = character;
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getCharacter() {
|
||||||
|
return this.character;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLength() {
|
||||||
|
return this.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBoldLength() {
|
||||||
|
if (this == DefaultFontInfo.SPACE) return this.getLength();
|
||||||
|
return this.length + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DefaultFontInfo getDefaultFontInfo(char c) {
|
||||||
|
for (DefaultFontInfo dFI : DefaultFontInfo.values()) {
|
||||||
|
if (dFI.getCharacter() == c) return dFI;
|
||||||
|
}
|
||||||
|
return DefaultFontInfo.DEFAULT;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,5 @@
|
||||||
package eu.univento.core.api.customitems.swords;
|
package eu.univento.core.api.customitems.swords;
|
||||||
|
|
||||||
import eu.univento.core.api.customitems.swords.CustomSwordManager;
|
|
||||||
import eu.univento.core.api.player.CustomPlayer;
|
import eu.univento.core.api.player.CustomPlayer;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
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,10 +1,10 @@
|
||||||
package eu.univento.core.api.effects;
|
package eu.univento.core.api.effects;
|
||||||
|
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import net.minecraft.server.v1_10_R1.EnumParticle;
|
import net.minecraft.server.v1_11_R1.EnumParticle;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayOutWorldParticles;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutWorldParticles;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package eu.univento.core.api.entity;
|
package eu.univento.core.api.entity;
|
||||||
|
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import net.minecraft.server.v1_10_R1.EntityLiving;
|
import net.minecraft.server.v1_11_R1.EntityLiving;
|
||||||
import net.minecraft.server.v1_10_R1.NBTTagCompound;
|
import net.minecraft.server.v1_11_R1.NBTTagCompound;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.EntityEffect;
|
import org.bukkit.EntityEffect;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftCreature;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftCreature;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ import java.lang.reflect.Field;
|
||||||
public class EntityModifier {
|
public class EntityModifier {
|
||||||
private static org.bukkit.entity.Entity entity;
|
private static org.bukkit.entity.Entity entity;
|
||||||
private static CraftEntity craftentity;
|
private static CraftEntity craftentity;
|
||||||
private static net.minecraft.server.v1_10_R1.Entity entityS;
|
private static net.minecraft.server.v1_11_R1.Entity entityS;
|
||||||
private static int scheduler;
|
private static int scheduler;
|
||||||
private static Plugin plugin = Core.getInstance();
|
private static Plugin plugin = Core.getInstance();
|
||||||
private static Player player = null;
|
private static Player player = null;
|
||||||
|
@ -100,7 +100,7 @@ public class EntityModifier {
|
||||||
|
|
||||||
public Builder setInvulnerable(boolean invulnerable) {
|
public Builder setInvulnerable(boolean invulnerable) {
|
||||||
try {
|
try {
|
||||||
Field invulnerableField = net.minecraft.server.v1_10_R1.Entity.class.getDeclaredField("invulnerable");
|
Field invulnerableField = net.minecraft.server.v1_11_R1.Entity.class.getDeclaredField("invulnerable");
|
||||||
invulnerableField.setAccessible(true);
|
invulnerableField.setAccessible(true);
|
||||||
invulnerableField.setBoolean(EntityModifier.entityS, invulnerable);
|
invulnerableField.setBoolean(EntityModifier.entityS, invulnerable);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
|
|
@ -0,0 +1,323 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016 univento.eu - All rights reserved
|
||||||
|
* You are not allowed to use, distribute or modify this code
|
||||||
|
*/
|
||||||
|
|
||||||
|
package eu.univento.core.api.entity.pathfinding;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.material.Gate;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Adamk11s
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class AStar {
|
||||||
|
|
||||||
|
private final int sx, sy, sz, ex, ey, ez;
|
||||||
|
private final World w;
|
||||||
|
|
||||||
|
private PathingResult result;
|
||||||
|
|
||||||
|
private HashMap<String, Tile> open = new HashMap<>();
|
||||||
|
private HashMap<String, Tile> closed = new HashMap<>();
|
||||||
|
|
||||||
|
private void addToOpenList(Tile t, boolean modify) {
|
||||||
|
if (open.containsKey(t.getUID())) {
|
||||||
|
if (modify) {
|
||||||
|
open.put(t.getUID(), t);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
open.put(t.getUID(), t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addToClosedList(Tile t) {
|
||||||
|
if (!closed.containsKey(t.getUID())) {
|
||||||
|
closed.put(t.getUID(), t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final int range;
|
||||||
|
private final String endUID;
|
||||||
|
|
||||||
|
public AStar(Location start, Location end, int range) throws InvalidPathException {
|
||||||
|
|
||||||
|
boolean s = true, e = true;
|
||||||
|
|
||||||
|
if (!(s = this.isLocationWalkable(start)) || !(e = this.isLocationWalkable(end))) {
|
||||||
|
throw new InvalidPathException(s, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.w = start.getWorld();
|
||||||
|
this.sx = start.getBlockX();
|
||||||
|
this.sy = start.getBlockY();
|
||||||
|
this.sz = start.getBlockZ();
|
||||||
|
this.ex = end.getBlockX();
|
||||||
|
this.ey = end.getBlockY();
|
||||||
|
this.ez = end.getBlockZ();
|
||||||
|
|
||||||
|
this.range = range;
|
||||||
|
|
||||||
|
short sh = 0;
|
||||||
|
Tile t = new Tile(sh, sh, sh, null);
|
||||||
|
t.calculateBoth(sx, sy, sz, ex, ey, ez, true);
|
||||||
|
this.open.put(t.getUID(), t);
|
||||||
|
this.processAdjacentTiles(t);
|
||||||
|
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
|
b.append(ex - sx).append(ey - sy).append(ez - sz);
|
||||||
|
this.endUID = b.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getEndLocation() {
|
||||||
|
return new Location(w, ex, ey, ez);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PathingResult getPathingResult() {
|
||||||
|
return this.result;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean checkOnce = false;
|
||||||
|
|
||||||
|
private int abs(int i) {
|
||||||
|
return (i < 0 ? -i : i);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Tile> iterate() {
|
||||||
|
|
||||||
|
if (!checkOnce) {
|
||||||
|
// invert the boolean flag
|
||||||
|
checkOnce ^= true;
|
||||||
|
if((abs(sx - ex) > range) || (abs(sy - ey) > range) || (abs(sz - ez) > range)){
|
||||||
|
this.result = PathingResult.NO_PATH;
|
||||||
|
return null;//jump out
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// while not at end
|
||||||
|
Tile current = null;
|
||||||
|
|
||||||
|
while (canContinue()) {
|
||||||
|
|
||||||
|
// get lowest F cost square on open list
|
||||||
|
current = this.getLowestFTile();
|
||||||
|
|
||||||
|
// process tiles
|
||||||
|
this.processAdjacentTiles(current);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.result != PathingResult.SUCCESS) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
// path found
|
||||||
|
LinkedList<Tile> routeTrace = new LinkedList<>();
|
||||||
|
Tile parent;
|
||||||
|
|
||||||
|
routeTrace.add(current);
|
||||||
|
|
||||||
|
assert current != null;
|
||||||
|
while ((parent = current.getParent()) != null) {
|
||||||
|
routeTrace.add(parent);
|
||||||
|
current = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
Collections.reverse(routeTrace);
|
||||||
|
|
||||||
|
return new ArrayList<>(routeTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean canContinue() {
|
||||||
|
// check if open list is empty, if it is no path has been found
|
||||||
|
if (open.size() == 0) {
|
||||||
|
this.result = PathingResult.NO_PATH;
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
if (closed.containsKey(this.endUID)) {
|
||||||
|
this.result = PathingResult.SUCCESS;
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Tile getLowestFTile() {
|
||||||
|
double f = 0;
|
||||||
|
Tile drop = null;
|
||||||
|
|
||||||
|
// get lowest F cost square
|
||||||
|
for (Tile t : open.values()) {
|
||||||
|
if (f == 0) {
|
||||||
|
t.calculateBoth(sx, sy, sz, ex, ey, ez, true);
|
||||||
|
f = t.getF();
|
||||||
|
drop = t;
|
||||||
|
} else {
|
||||||
|
t.calculateBoth(sx, sy, sz, ex, ey, ez, true);
|
||||||
|
double posF = t.getF();
|
||||||
|
if (posF < f) {
|
||||||
|
f = posF;
|
||||||
|
drop = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// drop from open list and add to closed
|
||||||
|
|
||||||
|
assert drop != null;
|
||||||
|
this.open.remove(drop.getUID());
|
||||||
|
this.addToClosedList(drop);
|
||||||
|
|
||||||
|
return drop;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isOnClosedList(Tile t) {
|
||||||
|
return closed.containsKey(t.getUID());
|
||||||
|
}
|
||||||
|
|
||||||
|
// pass in the current tile as the parent
|
||||||
|
private void processAdjacentTiles(Tile current) {
|
||||||
|
|
||||||
|
// set of possible walk to locations adjacent to current tile
|
||||||
|
HashSet<Tile> possible = new HashSet<>(26);
|
||||||
|
|
||||||
|
for (byte x = -1; x <= 1; x++) {
|
||||||
|
for (byte y = -1; y <= 1; y++) {
|
||||||
|
for (byte z = -1; z <= 1; z++) {
|
||||||
|
|
||||||
|
if (x == 0 && y == 0 && z == 0) {
|
||||||
|
continue;// don't check current square
|
||||||
|
}
|
||||||
|
|
||||||
|
Tile t = new Tile((short) (current.getX() + x), (short) (current.getY() + y), (short) (current.getZ() + z), current);
|
||||||
|
|
||||||
|
if (!t.isInRange(this.range)) {
|
||||||
|
// if block is out of bounds continue
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (x != 0 && z != 0 && (y == 0 || y == 1)) {
|
||||||
|
// check to stop jumping through diagonal blocks
|
||||||
|
Tile xOff = new Tile((short) (current.getX() + x), (short) (current.getY() + y), current.getZ(), current), zOff = new Tile(current.getX(),
|
||||||
|
(short) (current.getY() + y), (short) (current.getZ() + z), current);
|
||||||
|
if (!this.isTileWalkable(xOff) && !this.isTileWalkable(zOff)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.isOnClosedList(t)) {
|
||||||
|
// ignore tile
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// only process the tile if it can be walked on
|
||||||
|
if (this.isTileWalkable(t)) {
|
||||||
|
t.calculateBoth(sx, sy, sz, ex, ey, ez, true);
|
||||||
|
possible.add(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Tile t : possible) {
|
||||||
|
// get the reference of the object in the array
|
||||||
|
Tile openRef;
|
||||||
|
if ((openRef = this.isOnOpenList(t)) == null) {
|
||||||
|
// not on open list, so add
|
||||||
|
this.addToOpenList(t, false);
|
||||||
|
} else {
|
||||||
|
// is on open list, check if path to that square is better using
|
||||||
|
// G cost
|
||||||
|
if (t.getG() < openRef.getG()) {
|
||||||
|
// if current path is better, change parent
|
||||||
|
openRef.setParent(current);
|
||||||
|
// force updates of F, G and H values.
|
||||||
|
openRef.calculateBoth(sx, sy, sz, ex, ey, ez, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Tile isOnOpenList(Tile t) {
|
||||||
|
return (open.containsKey(t.getUID()) ? open.get(t.getUID()) : null);
|
||||||
|
/*
|
||||||
|
* for (Tile o : open) { if (o.equals(t)) { return o; } } return null;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isTileWalkable(Tile t) {
|
||||||
|
Location l = new Location(w, (sx + t.getX()), (sy + t.getY()), (sz + t.getZ()));
|
||||||
|
Block b = l.getBlock();
|
||||||
|
int i = b.getTypeId();
|
||||||
|
|
||||||
|
// lava, fire, wheat and ladders cannot be walked on, and of course air
|
||||||
|
// 85, 107 and 113 stops npcs climbing fences and fence gates
|
||||||
|
if (i != 10 && i != 11 && i != 51 && i != 59 && i != 65 && i != 0 && i != 85 && i != 107 && i != 113 && !canBlockBeWalkedThrough(i)) {
|
||||||
|
// make sure the blocks above are air
|
||||||
|
|
||||||
|
if (b.getRelative(0, 1, 0).getTypeId() == 107) {
|
||||||
|
// fench gate check, if closed continue
|
||||||
|
Gate g = new Gate(b.getRelative(0, 1, 0).getData());
|
||||||
|
return (g.isOpen() && (b.getRelative(0, 2, 0).getTypeId() == 0));
|
||||||
|
}
|
||||||
|
return (canBlockBeWalkedThrough(b.getRelative(0, 1, 0).getTypeId()) && b.getRelative(0, 2, 0).getTypeId() == 0);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isLocationWalkable(Location l) {
|
||||||
|
Block b = l.getBlock();
|
||||||
|
int i = b.getTypeId();
|
||||||
|
|
||||||
|
if (i != 10 && i != 11 && i != 51 && i != 59 && i != 65 && i != 0 && !canBlockBeWalkedThrough(i)) {
|
||||||
|
// make sure the blocks above are air or can be walked through
|
||||||
|
return (canBlockBeWalkedThrough(b.getRelative(0, 1, 0).getTypeId()) && b.getRelative(0, 2, 0).getTypeId() == 0);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean canBlockBeWalkedThrough(int id) {
|
||||||
|
return (id == 0 || id == 6 || id == 50 || id == 63 || id == 30 || id == 31 || id == 32 || id == 37 || id == 38 || id == 39 || id == 40 || id == 55 || id == 66 || id == 75
|
||||||
|
|| id == 76 || id == 78);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InvalidPathException extends Exception {
|
||||||
|
|
||||||
|
private final boolean s, e;
|
||||||
|
|
||||||
|
public InvalidPathException(boolean s, boolean e) {
|
||||||
|
this.s = s;
|
||||||
|
this.e = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getErrorReason() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
if (!s) {
|
||||||
|
sb.append("Start Location was air. ");
|
||||||
|
}
|
||||||
|
if (!e) {
|
||||||
|
sb.append("End Location was air.");
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStartNotSolid() {
|
||||||
|
return (!s);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEndNotSolid() {
|
||||||
|
return (!e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016 univento.eu - All rights reserved
|
||||||
|
* You are not allowed to use, distribute or modify this code
|
||||||
|
*/
|
||||||
|
|
||||||
|
package eu.univento.core.api.entity.pathfinding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author joethei
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public enum PathingResult {
|
||||||
|
|
||||||
|
SUCCESS(0),
|
||||||
|
NO_PATH(-1);
|
||||||
|
|
||||||
|
private final int ec;
|
||||||
|
|
||||||
|
PathingResult(int ec){
|
||||||
|
this.ec = ec;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getEndCode(){
|
||||||
|
return this.ec;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,156 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016 univento.eu - All rights reserved
|
||||||
|
* You are not allowed to use, distribute or modify this code
|
||||||
|
*/
|
||||||
|
|
||||||
|
package eu.univento.core.api.entity.pathfinding;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Adamk11s
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class Tile {
|
||||||
|
|
||||||
|
// as offset from starting point
|
||||||
|
private final short x, y, z;
|
||||||
|
|
||||||
|
private double g = -1, h = -1;
|
||||||
|
|
||||||
|
private Tile parent = null;
|
||||||
|
|
||||||
|
private final String uid;
|
||||||
|
|
||||||
|
public Tile(short x, short y, short z, Tile parent) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
this.z = z;
|
||||||
|
this.parent = parent;
|
||||||
|
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
|
b.append(x);
|
||||||
|
b.append(y);
|
||||||
|
b.append(z);
|
||||||
|
uid = b.toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInRange(int range){
|
||||||
|
return ((range - abs(x) >= 0) && (range - abs(y) >= 0) && (range - abs(z) >= 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParent(Tile parent) {
|
||||||
|
this.parent = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getLocation(Location start) {
|
||||||
|
return new Location(start.getWorld(), start.getBlockX() + x, start.getBlockY() + y, start.getBlockZ() + z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Tile getParent() {
|
||||||
|
return this.parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getX() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getX(Location i) {
|
||||||
|
return (i.getBlockX() + x);
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getY() {
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getY(Location i) {
|
||||||
|
return (i.getBlockY() + y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getZ() {
|
||||||
|
return z;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getZ(Location i) {
|
||||||
|
return (i.getBlockZ() + z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUID() {
|
||||||
|
return this.uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(Tile t) {
|
||||||
|
return (t.getX() == x && t.getY() == y && t.getZ() == z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void calculateBoth(int sx, int sy, int sz, int ex, int ey, int ez, boolean update) {
|
||||||
|
this.calculateG(sx, sy, sz, update);
|
||||||
|
this.calculateH(sx, sy, sz, ex, ey, ez, update);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void calculateH(int sx, int sy, int sz, int ex, int ey, int ez, boolean update) {
|
||||||
|
// only update if h hasn't been calculated or if forced
|
||||||
|
if ((!update && h == -1) || update) {
|
||||||
|
int hx = sx + x, hy = sy + y, hz = sz + z;
|
||||||
|
this.h = this.getEuclideanDistance(hx, hy, hz, ex, ey, ez);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// G = the movement cost to move from the starting point A to a given square
|
||||||
|
// on the grid, following the path generated to get there.
|
||||||
|
public void calculateG(int sx, int sy, int sz, boolean update) {
|
||||||
|
|
||||||
|
if ((!update && g == -1) || update) {
|
||||||
|
|
||||||
|
// only update if g hasn't been calculated or if forced
|
||||||
|
Tile currentParent = this.getParent(), currentTile = this;
|
||||||
|
int gCost = 0;
|
||||||
|
// follow path back to start
|
||||||
|
while ((currentParent = currentTile.getParent()) != null) {
|
||||||
|
|
||||||
|
int dx = currentTile.getX() - currentParent.getX(), dy = currentTile.getY() - currentParent.getY(), dz = currentTile.getZ() - currentParent.getZ();
|
||||||
|
|
||||||
|
dx = abs(dx);
|
||||||
|
dy = abs(dy);
|
||||||
|
dz = abs(dz);
|
||||||
|
|
||||||
|
if (dx == 1 && dy == 1 && dz == 1) {
|
||||||
|
gCost += 1.7;
|
||||||
|
} else if (((dx == 1 || dz == 1) && dy == 1) || ((dx == 1 || dz == 1) && dy == 0)) {
|
||||||
|
gCost += 1.4;
|
||||||
|
} else {
|
||||||
|
gCost += 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// move backwards a tile
|
||||||
|
currentTile = currentParent;
|
||||||
|
}
|
||||||
|
this.g = gCost;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getG() {
|
||||||
|
return g;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getH() {
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getF() {
|
||||||
|
// f = h + g
|
||||||
|
return (h + g);
|
||||||
|
}
|
||||||
|
|
||||||
|
private double getEuclideanDistance(int sx, int sy, int sz, int ex, int ey, int ez) {
|
||||||
|
double dx = sx - ex, dy = sy - ey, dz = sz - ez;
|
||||||
|
return Math.sqrt((dx * dx) + (dy * dy) + (dz * dz));
|
||||||
|
}
|
||||||
|
|
||||||
|
private int abs(int i) {
|
||||||
|
return (i < 0 ? -i : i);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,9 +2,9 @@ package eu.univento.core.api.fakeplayer;
|
||||||
|
|
||||||
import com.mojang.authlib.GameProfile;
|
import com.mojang.authlib.GameProfile;
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import net.minecraft.server.v1_10_R1.*;
|
import net.minecraft.server.v1_11_R1.*;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.ArmorStand;
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package eu.univento.core.api.gui;
|
package eu.univento.core.api.gui;
|
||||||
|
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import net.minecraft.server.v1_10_R1.*;
|
import net.minecraft.server.v1_11_R1.*;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package eu.univento.core.api.gui;
|
package eu.univento.core.api.gui;
|
||||||
|
|
||||||
import eu.univento.core.api.player.CustomPlayer;
|
import eu.univento.core.api.player.CustomPlayer;
|
||||||
import net.minecraft.server.v1_10_R1.BlockPosition;
|
import net.minecraft.server.v1_11_R1.BlockPosition;
|
||||||
import net.minecraft.server.v1_10_R1.EntityPlayer;
|
import net.minecraft.server.v1_11_R1.EntityPlayer;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayOutOpenSignEditor;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutOpenSignEditor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
|
|
|
@ -3,11 +3,11 @@ package eu.univento.core.api.gui;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.handler.codec.MessageToMessageDecoder;
|
import io.netty.handler.codec.MessageToMessageDecoder;
|
||||||
import net.minecraft.server.v1_10_R1.NetworkManager;
|
import net.minecraft.server.v1_11_R1.NetworkManager;
|
||||||
import net.minecraft.server.v1_10_R1.Packet;
|
import net.minecraft.server.v1_11_R1.Packet;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayInUpdateSign;
|
import net.minecraft.server.v1_11_R1.PacketPlayInUpdateSign;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
|
@ -34,8 +34,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Init item chainable via given Material parameter.
|
* Init item chainable via given Material parameter.
|
||||||
*
|
*
|
||||||
* @param itemType
|
* @param itemType the {@link Material} to initiate the instance with.
|
||||||
* the {@link Material} to initiate the instance with.
|
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
@ -47,8 +46,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Init item chainable via given ItemStack parameter.
|
* Init item chainable via given ItemStack parameter.
|
||||||
*
|
*
|
||||||
* @param itemStack
|
* @param itemStack the {@link ItemStack} to initialize the instance with.
|
||||||
* the {@link ItemStack} to initialize the instance with.
|
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
@ -70,8 +68,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Changes the Material type of the {@link ItemStack}
|
* Changes the Material type of the {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param material
|
* @param material the new {@link Material} to set for the ItemStack.
|
||||||
* the new {@link Material} to set for the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -84,8 +81,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Changes the {@link ItemStack}s size.
|
* Changes the {@link ItemStack}s size.
|
||||||
*
|
*
|
||||||
* @param itemAmt
|
* @param itemAmt the new Integer count of the ItemStack.
|
||||||
* the new Integer count of the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -98,8 +94,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Changes the {@link ItemStack}s display name.
|
* Changes the {@link ItemStack}s display name.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the new String for the ItemStack's display name to be set to.
|
||||||
* the new String for the ItemStack's display name to be set to.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -113,8 +108,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Adds a line of lore to the {@link ItemStack}
|
* Adds a line of lore to the {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param lore
|
* @param lore String you want to add to the ItemStack's lore.
|
||||||
* String you want to add to the ItemStack's lore.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -131,8 +125,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Clears the {@link ItemStack}s lore and replaces it with the defined String array.
|
* Clears the {@link ItemStack}s lore and replaces it with the defined String array.
|
||||||
*
|
*
|
||||||
* @param lores
|
* @param lores String array you want to set the ItemStack's lore to.
|
||||||
* String array you want to set the ItemStack's lore to.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -146,17 +139,6 @@ public class ItemBuilder {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Changes the durability of the current {@link ItemStack}
|
|
||||||
*
|
|
||||||
* @return the current instance for chainable application.
|
|
||||||
* @since 1.0
|
|
||||||
*/
|
|
||||||
public ItemBuilder durability(){
|
|
||||||
make().setDurability((short) 3);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ItemBuilder durability(short durability) {
|
public ItemBuilder durability(short durability) {
|
||||||
make().setDurability(durability);
|
make().setDurability(durability);
|
||||||
return this;
|
return this;
|
||||||
|
@ -165,8 +147,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Changes the data value of the {@link ItemStack}
|
* Changes the data value of the {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param data
|
* @param data the new int data value (parsed as byte) to set the ItemStack's durability to.
|
||||||
* the new int data value (parsed as byte) to set the ItemStack's durability to.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -180,11 +161,9 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Adds and UnsafeEnchantment to the {@link ItemStack} with a defined level int value.
|
* Adds and UnsafeEnchantment to the {@link ItemStack} with a defined level int value.
|
||||||
*
|
*
|
||||||
* @param enchantment
|
* @param enchantment the {@link Enchantment} to add to the ItemStack.
|
||||||
* the {@link Enchantment} to add to the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @param level
|
* @param level the int amount that the Enchantment's level will be set to.
|
||||||
* the int amount that the Enchantment's level will be set to.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -197,8 +176,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Adds and UnsafeEnchantment to the {@link} with a level int value of 1.
|
* Adds and UnsafeEnchantment to the {@link} with a level int value of 1.
|
||||||
*
|
*
|
||||||
* @param enchantment
|
* @param enchantment the {@link Enchantment} to add to the ItemStack.
|
||||||
* the {@link Enchantment} to add to the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -211,11 +189,9 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Clears all {@link Enchantment}s from the current {@link ItemStack} then adds the defined array of Enchantments to the ItemStack.
|
* Clears all {@link Enchantment}s from the current {@link ItemStack} then adds the defined array of Enchantments to the ItemStack.
|
||||||
*
|
*
|
||||||
* @param enchantments
|
* @param enchantments the Enchantment array to replace any current enchantments applied on the ItemStack.
|
||||||
* the Enchantment array to replace any current enchantments applied on the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @param level
|
* @param level the int level value for all Enchantments to be set to.
|
||||||
* the int level value for all Enchantments to be set to.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -231,8 +207,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Clears all {@link Enchantment}s from the current {@link ItemStack} then adds the defined array of Enchantments to the ItemStack with a level int value of 1.
|
* Clears all {@link Enchantment}s from the current {@link ItemStack} then adds the defined array of Enchantments to the ItemStack with a level int value of 1.
|
||||||
*
|
*
|
||||||
* @param enchantments
|
* @param enchantments the Enchantment array to replace any current enchantments applied on the ItemStack.
|
||||||
* the Enchantment array to replace any current enchantments applied on the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -248,8 +223,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Clears the defined {@link Enchantment} from the {@link ItemStack}
|
* Clears the defined {@link Enchantment} from the {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param enchantment
|
* @param enchantment the Enchantment to remove from the ItemStack.
|
||||||
* the Enchantment to remove from the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -278,8 +252,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Clears the defined {@link String} of lore from the {@link ItemStack}
|
* Clears the defined {@link String} of lore from the {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param lore
|
* @param lore the String to be removed from the ItemStack.
|
||||||
* the String to be removed from the ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -307,8 +280,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Sets the {@link Color} of any LEATHER_ARMOR {@link Material} types of the {@link ItemStack}
|
* Sets the {@link Color} of any LEATHER_ARMOR {@link Material} types of the {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param color
|
* @param color the Color to set the LEATHER_ARMOR ItemStack to.
|
||||||
* the Color to set the LEATHER_ARMOR ItemStack to.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application.
|
* @return the current instance for chainable application.
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
@ -346,8 +318,7 @@ public class ItemBuilder {
|
||||||
/**
|
/**
|
||||||
* Sets the skullOwner {@link SkullMeta} of the current SKULL_ITEM {@link Material} type {@link ItemStack}
|
* Sets the skullOwner {@link SkullMeta} of the current SKULL_ITEM {@link Material} type {@link ItemStack}
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the {@link String} value to set the SkullOwner meta to for the SKULL_ITEM Material type ItemStack.
|
||||||
* the {@link String} value to set the SkullOwner meta to for the SKULL_ITEM Material type ItemStack.
|
|
||||||
*
|
*
|
||||||
* @return the current instance for chainable application
|
* @return the current instance for chainable application
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -7,9 +7,9 @@ import eu.univento.core.Core;
|
||||||
import eu.univento.core.api.player.CustomPlayer;
|
import eu.univento.core.api.player.CustomPlayer;
|
||||||
import eu.univento.core.api.utils.GameProfileBuilder;
|
import eu.univento.core.api.utils.GameProfileBuilder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import net.minecraft.server.v1_10_R1.DataWatcher;
|
import net.minecraft.server.v1_11_R1.DataWatcher;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayOutEntityDestroy;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutEntityDestroy;
|
||||||
import net.minecraft.server.v1_10_R1.PacketPlayOutNamedEntitySpawn;
|
import net.minecraft.server.v1_11_R1.PacketPlayOutNamedEntitySpawn;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
package eu.univento.core.api.npc.datawatcher;
|
package eu.univento.core.api.npc.datawatcher;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ingrim4, joethei
|
* @author ingrim4, joethei
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public enum EnumDataWatcher {
|
enum EnumDataWatcher {
|
||||||
|
|
||||||
|
//TODO: fix field
|
||||||
|
|
||||||
ENTITY_BITMASK_00("Entity", "ay"),//
|
ENTITY_BITMASK_00("Entity", "ay"),//
|
||||||
ENTITY_AIR_01("Entity", "az"),//AIR
|
ENTITY_AIR_01("Entity", "az"),//AIR
|
||||||
|
@ -23,8 +27,14 @@ public enum EnumDataWatcher {
|
||||||
HUMAN_SKIN_12("EntityHuman", ""),
|
HUMAN_SKIN_12("EntityHuman", ""),
|
||||||
HUMAN_HAND_13("EntityHuman", "");
|
HUMAN_HAND_13("EntityHuman", "");
|
||||||
|
|
||||||
EnumDataWatcher(String owner, String field) {
|
@Getter
|
||||||
|
private String owner;
|
||||||
|
@Getter
|
||||||
|
private String field;
|
||||||
|
|
||||||
|
EnumDataWatcher(String owner, String field) {
|
||||||
|
this.owner = owner;
|
||||||
|
this.field = field;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getObject() {
|
public Object getObject() {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package eu.univento.core.api.pet;
|
package eu.univento.core.api.pet;
|
||||||
|
|
||||||
import net.minecraft.server.v1_10_R1.Entity;
|
import net.minecraft.server.v1_11_R1.Entity;
|
||||||
import net.minecraft.server.v1_10_R1.World;
|
import net.minecraft.server.v1_11_R1.World;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package eu.univento.core.api.pet;
|
package eu.univento.core.api.pet;
|
||||||
|
|
||||||
import net.minecraft.server.v1_10_R1.EntityInsentient;
|
import net.minecraft.server.v1_11_R1.EntityInsentient;
|
||||||
import net.minecraft.server.v1_10_R1.EntityTypes;
|
import net.minecraft.server.v1_11_R1.EntityTypes;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
|
@ -2,9 +2,9 @@ package eu.univento.core.api.pet;
|
||||||
|
|
||||||
import eu.univento.core.api.pet.custom.CustomCreeper;
|
import eu.univento.core.api.pet.custom.CustomCreeper;
|
||||||
import eu.univento.core.api.pet.custom.CustomPig;
|
import eu.univento.core.api.pet.custom.CustomPig;
|
||||||
import net.minecraft.server.v1_10_R1.EntityCreeper;
|
import net.minecraft.server.v1_11_R1.EntityCreeper;
|
||||||
import net.minecraft.server.v1_10_R1.EntityInsentient;
|
import net.minecraft.server.v1_11_R1.EntityInsentient;
|
||||||
import net.minecraft.server.v1_10_R1.EntityPig;
|
import net.minecraft.server.v1_11_R1.EntityPig;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package eu.univento.core.api.pet.custom;
|
package eu.univento.core.api.pet.custom;
|
||||||
|
|
||||||
import eu.univento.core.api.pet.PetManager;
|
import eu.univento.core.api.pet.PetManager;
|
||||||
import net.minecraft.server.v1_10_R1.*;
|
import net.minecraft.server.v1_11_R1.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package eu.univento.core.api.pet.custom;
|
package eu.univento.core.api.pet.custom;
|
||||||
|
|
||||||
import eu.univento.core.api.pet.PetManager;
|
import eu.univento.core.api.pet.PetManager;
|
||||||
import net.minecraft.server.v1_10_R1.*;
|
import net.minecraft.server.v1_11_R1.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
|
|
|
@ -2,10 +2,7 @@ package eu.univento.core.api.player;
|
||||||
|
|
||||||
public class BetterPvP {
|
public class BetterPvP {
|
||||||
|
|
||||||
public BetterPvP() {
|
public static String getCodeString() {
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodeString() {
|
|
||||||
String toReturn = "§c §r§5 §r§1 §r§f";
|
String toReturn = "§c §r§5 §r§1 §r§f";
|
||||||
String code = String.valueOf(getCodeToSend());
|
String code = String.valueOf(getCodeToSend());
|
||||||
int size = code.length();
|
int size = code.length();
|
||||||
|
@ -16,7 +13,7 @@ public class BetterPvP {
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getCodeToSend() {
|
private static int getCodeToSend() {
|
||||||
int code = 0;
|
int code = 0;
|
||||||
code |= 0;
|
code |= 0;
|
||||||
int armourStatusMask = 2;
|
int armourStatusMask = 2;
|
||||||
|
|
|
@ -8,15 +8,15 @@ import eu.univento.commons.player.warn.WarnReason;
|
||||||
import eu.univento.core.Core;
|
import eu.univento.core.Core;
|
||||||
import eu.univento.core.api.Hologram;
|
import eu.univento.core.api.Hologram;
|
||||||
import eu.univento.core.api.Utils;
|
import eu.univento.core.api.Utils;
|
||||||
|
import eu.univento.core.api.chat.DefaultFontInfo;
|
||||||
import eu.univento.core.api.effects.Blackscreen;
|
import eu.univento.core.api.effects.Blackscreen;
|
||||||
import eu.univento.core.api.effects.Effects;
|
import eu.univento.core.api.effects.Effects;
|
||||||
import eu.univento.core.api.languages.Messages;
|
import eu.univento.core.api.languages.Messages;
|
||||||
import eu.univento.core.api.server.ServerSettings;
|
import eu.univento.core.api.server.ServerSettings;
|
||||||
import eu.univento.core.api.server.Servers;
|
|
||||||
import eu.univento.core.api.shop.ShopItem;
|
import eu.univento.core.api.shop.ShopItem;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.Unpooled;
|
import io.netty.buffer.Unpooled;
|
||||||
import net.minecraft.server.v1_10_R1.*;
|
import net.minecraft.server.v1_11_R1.*;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
@ -27,16 +27,17 @@ import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarFlag;
|
import org.bukkit.boss.BarFlag;
|
||||||
import org.bukkit.boss.BarStyle;
|
import org.bukkit.boss.BarStyle;
|
||||||
import org.bukkit.boss.BossBar;
|
import org.bukkit.boss.BossBar;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.CraftServer;
|
import org.bukkit.craftbukkit.v1_11_R1.CraftServer;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.CraftWorld;
|
import org.bukkit.craftbukkit.v1_11_R1.CraftWorld;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||||
import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
|
import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftItemStack;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.ObjectOutputStream;
|
import java.io.ObjectOutputStream;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
@ -139,7 +140,15 @@ public class CustomPlayer extends CraftPlayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void connectToServer(String server) {
|
public void connectToServer(String server) {
|
||||||
Servers.connectServer(PLAYER, server);
|
ByteArrayOutputStream b = new ByteArrayOutputStream();
|
||||||
|
DataOutputStream out = new DataOutputStream(b);
|
||||||
|
try {
|
||||||
|
out.writeUTF("Connect");
|
||||||
|
out.writeUTF(server);
|
||||||
|
} catch (IOException el) {
|
||||||
|
el.printStackTrace();
|
||||||
|
}
|
||||||
|
sendPluginMessage(Core.getInstance(), "BungeeCord", b.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void warn(WarnReason reason, CustomPlayer warner, String proof) {
|
public void warn(WarnReason reason, CustomPlayer warner, String proof) {
|
||||||
|
@ -321,9 +330,45 @@ public class CustomPlayer extends CraftPlayer {
|
||||||
return new Messages(this);
|
return new Messages(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendCentredMessage(Player player, String message) {
|
||||||
|
if(message == null || message.equals("")) {
|
||||||
|
player.sendMessage("");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
message = ChatColor.translateAlternateColorCodes('&', message);
|
||||||
|
|
||||||
|
int messagePxSize = 0;
|
||||||
|
boolean previousCode = false;
|
||||||
|
boolean isBold = false;
|
||||||
|
|
||||||
|
for(char c : message.toCharArray()){
|
||||||
|
if(c == '§'){
|
||||||
|
previousCode = true;
|
||||||
|
}else if(previousCode){
|
||||||
|
previousCode = false;
|
||||||
|
isBold = c == 'l' || c == 'L';
|
||||||
|
}else{
|
||||||
|
DefaultFontInfo dFI = DefaultFontInfo.getDefaultFontInfo(c);
|
||||||
|
messagePxSize += isBold ? dFI.getBoldLength() : dFI.getLength();
|
||||||
|
messagePxSize++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int CENTER_PX = 154;
|
||||||
|
int halvedMessageSize = messagePxSize / 2;
|
||||||
|
int toCompensate = CENTER_PX - halvedMessageSize;
|
||||||
|
int spaceLength = DefaultFontInfo.SPACE.getLength() + 1;
|
||||||
|
int compensated = 0;
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
while(compensated < toCompensate){
|
||||||
|
sb.append(" ");
|
||||||
|
compensated += spaceLength;
|
||||||
|
}
|
||||||
|
sendMessage(sb.toString() + message);
|
||||||
|
}
|
||||||
|
|
||||||
public void strikeLightning(Location loc) {
|
public void strikeLightning(Location loc) {
|
||||||
World nmsWorld = (World) ((CraftWorld) loc.getWorld()).getHandle();
|
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);
|
EntityLightning lightning = new EntityLightning((net.minecraft.server.v1_11_R1.World) nmsWorld, loc.getX(), loc.getY(), loc.getZ(), true);
|
||||||
sendPacket(new PacketPlayOutSpawnEntityWeather(lightning));
|
sendPacket(new PacketPlayOutSpawnEntityWeather(lightning));
|
||||||
playSound(loc, Sound.ENTITY_LIGHTNING_IMPACT, 20.0F, 1.0F);
|
playSound(loc, Sound.ENTITY_LIGHTNING_IMPACT, 20.0F, 1.0F);
|
||||||
playSound(loc, Sound.ENTITY_LIGHTNING_THUNDER, 20.0F, 1.0F);
|
playSound(loc, Sound.ENTITY_LIGHTNING_THUNDER, 20.0F, 1.0F);
|
||||||
|
@ -429,7 +474,7 @@ public class CustomPlayer extends CraftPlayer {
|
||||||
if(loc.getBlock().getType() != Material.CHEST) return;
|
if(loc.getBlock().getType() != Material.CHEST) return;
|
||||||
byte dataByte = (open) ? (byte) 1 : 0;
|
byte dataByte = (open) ? (byte) 1 : 0;
|
||||||
BlockPosition position = new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
BlockPosition position = new BlockPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||||
PacketPlayOutBlockAction blockActionPacket = new PacketPlayOutBlockAction(position, net.minecraft.server.v1_10_R1.Block.getById(loc.getBlock().getTypeId()), (byte) 1, dataByte);
|
PacketPlayOutBlockAction blockActionPacket = new PacketPlayOutBlockAction(position, net.minecraft.server.v1_11_R1.Block.getById(loc.getBlock().getTypeId()), (byte) 1, dataByte);
|
||||||
sendPacket(blockActionPacket);
|
sendPacket(blockActionPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,16 @@ import java.util.Random;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 1.1
|
* @version 1.1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class NickName {
|
public class NickName {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gets random Nickname
|
* gets random Nickname
|
||||||
* @return String
|
* @return String
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//FIXME: change to users from ban list
|
||||||
|
@Deprecated
|
||||||
public static String getRandomNick() {
|
public static String getRandomNick() {
|
||||||
ArrayList<String> names = new ArrayList<>();
|
ArrayList<String> names = new ArrayList<>();
|
||||||
names.add("GommeHD");
|
names.add("GommeHD");
|
||||||
|
|
|
@ -11,7 +11,7 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author desht (Original code), KingFaris10 (Editor of code)
|
* @author desht (Original code), KingFaris10 (Editor of code)
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Cuboid implements Cloneable, ConfigurationSerializable, Iterable<Block> {
|
public class Cuboid implements Cloneable, ConfigurationSerializable, Iterable<Block> {
|
||||||
|
@ -66,7 +66,7 @@ public class Cuboid implements Cloneable, ConfigurationSerializable, Iterable<Bl
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean containsLocation(Location location) {
|
public boolean containsLocation(Location location) {
|
||||||
return location != null && location.getWorld().getName().equals(this.worldName) && location.toVector().isInAABB(this.minimumPoint, this.maximumPoint);
|
return location != null && (location.getWorld().getName().equals(this.worldName) || location.toVector().isInAABB(this.minimumPoint, this.maximumPoint));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean containsVector(Vector vector) {
|
public boolean containsVector(Vector vector) {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class Schematic {
|
public class Schematic {
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 0.5
|
||||||
*/
|
*/
|
||||||
public class SchematicManager {
|
public class SchematicManager {
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import eu.univento.commons.server.ServerType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
class GameInfo {
|
class GameInfo {
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,16 @@ import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheTinySpider
|
||||||
|
* Idea from: sebasju1234
|
||||||
|
*
|
||||||
|
* @version 1.0
|
||||||
|
*
|
||||||
|
* Status names and other information can be found at:
|
||||||
|
* [url]http://minecraft.gamepedia.com/User_talk:Oxguy3/Minecraft.net_API[/url]
|
||||||
|
*/
|
||||||
|
|
||||||
public enum MojangService {
|
public enum MojangService {
|
||||||
|
|
||||||
ACCOUNTS("Accounts Service", "account.mojang.com"),
|
ACCOUNTS("Accounts Service", "account.mojang.com"),
|
||||||
|
@ -21,14 +31,6 @@ public enum MojangService {
|
||||||
SKINS("Skin ServerPinger", "skins.minecraft.net"),
|
SKINS("Skin ServerPinger", "skins.minecraft.net"),
|
||||||
MAIN_WEBSITE("Main Site", "minecraft.net");
|
MAIN_WEBSITE("Main Site", "minecraft.net");
|
||||||
|
|
||||||
/*
|
|
||||||
* @Author TheTinySpider
|
|
||||||
* Idea from: sebasju1234
|
|
||||||
*
|
|
||||||
* Status names and other information can be found at:
|
|
||||||
* [url]http://minecraft.gamepedia.com/User_talk:Oxguy3/Minecraft.net_API[/url]
|
|
||||||
*/
|
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String serviceURL;
|
private final String serviceURL;
|
||||||
private final JSONParser jsonParser = new JSONParser();
|
private final JSONParser jsonParser = new JSONParser();
|
||||||
|
|
|
@ -12,6 +12,8 @@ import java.sql.SQLException;
|
||||||
*/
|
*/
|
||||||
class ServerDatabase {
|
class ServerDatabase {
|
||||||
|
|
||||||
|
//TODO: cache results and use mongodb
|
||||||
|
|
||||||
static String getIP(String name) {
|
static String getIP(String name) {
|
||||||
MySQL sql = Core.getCommons().getDatabaseManager().getMySQL();
|
MySQL sql = Core.getCommons().getDatabaseManager().getMySQL();
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class ServerInfo {
|
public class ServerInfo {
|
||||||
|
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
package eu.univento.core.api.server;
|
|
||||||
|
|
||||||
import eu.univento.core.Core;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.DataOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* sends player to other bungeecord servers
|
|
||||||
* @author joethei
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
public class Servers {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* sends player to server
|
|
||||||
* @param p player
|
|
||||||
* @param server name of server
|
|
||||||
*/
|
|
||||||
public static void connectServer(Player p, String server) {
|
|
||||||
ByteArrayOutputStream b = new ByteArrayOutputStream();
|
|
||||||
DataOutputStream out = new DataOutputStream(b);
|
|
||||||
try {
|
|
||||||
out.writeUTF("Connect");
|
|
||||||
out.writeUTF(server);
|
|
||||||
} catch (IOException el) {
|
|
||||||
el.printStackTrace();
|
|
||||||
}
|
|
||||||
p.sendPluginMessage(Core.getInstance(), "BungeeCord", b.toByteArray());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* connects all player to server
|
|
||||||
* @param server name of server
|
|
||||||
*/
|
|
||||||
public static void connectAllToServer(String server) {
|
|
||||||
for (Player all : Bukkit.getOnlinePlayers())
|
|
||||||
connectServer(all, server);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,7 +2,7 @@ package eu.univento.core.api.shop;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public enum PayType {
|
public enum PayType {
|
||||||
//TODO: change to real pay type names.
|
//TODO: change to real pay type names.
|
||||||
|
|
|
@ -4,7 +4,7 @@ import eu.univento.commons.server.ServerType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
enum ShopCategory {
|
enum ShopCategory {
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public enum ShopItem {
|
public enum ShopItem {
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class ShopMenu implements Listener{
|
public class ShopMenu implements Listener{
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
class ShopEntity implements Listener{
|
class ShopEntity implements Listener{
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class ShopIronGolem extends ShopEntity{
|
public class ShopIronGolem extends ShopEntity{
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class ShopVillager extends ShopEntity {
|
public class ShopVillager extends ShopEntity {
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
|
@ -2,7 +2,7 @@ package eu.univento.core.api.story;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public enum StoryMissionStatus {
|
public enum StoryMissionStatus {
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public enum StoryMissions {
|
public enum StoryMissions {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package eu.univento.core.api.utils;
|
package eu.univento.core.api.utils;
|
||||||
|
|
||||||
public enum Direction
|
public enum Direction {
|
||||||
{
|
|
||||||
NORTH(1, 0),
|
NORTH(1, 0),
|
||||||
SOUTH(-1, 0),
|
SOUTH(-1, 0),
|
||||||
EAST(0, 1),
|
EAST(0, 1),
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class GameProfileBuilder {
|
||||||
cache.put(uuid, new CachedProfile(result));
|
cache.put(uuid, new CachedProfile(result));
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
if (!false && cache.containsKey(uuid)) {
|
if (cache.containsKey(uuid)) {
|
||||||
return cache.get(uuid).profile;
|
return cache.get(uuid).profile;
|
||||||
}
|
}
|
||||||
JsonObject error = (JsonObject) new JsonParser().parse(new BufferedReader(new InputStreamReader(connection.getErrorStream())).readLine());
|
JsonObject error = (JsonObject) new JsonParser().parse(new BufferedReader(new InputStreamReader(connection.getErrorStream())).readLine());
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class Lamps {
|
public class Lamps {
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,12 @@ import java.util.Random;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
final class Maths
|
/**
|
||||||
{
|
* @author joethei
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
final class Maths {
|
||||||
public static final float nanoToSec = 1.0E-009F;
|
public static final float nanoToSec = 1.0E-009F;
|
||||||
public static final float FLOAT_ROUNDING_ERROR = 1.0E-006F;
|
public static final float FLOAT_ROUNDING_ERROR = 1.0E-006F;
|
||||||
public static final float PI = 3.141593F;
|
public static final float PI = 3.141593F;
|
||||||
|
|
|
@ -119,7 +119,7 @@ public class NettyInjection {
|
||||||
Bukkit.getOnlinePlayers().forEach(this::inject);
|
Bukkit.getOnlinePlayers().forEach(this::inject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void registerGlobalChannel() {
|
private void registerGlobalChannel() {
|
||||||
Object server = NettyInjection.FIELD_CRAFTSERVER_MINECRAFTSERVER.get(Bukkit.getServer());
|
Object server = NettyInjection.FIELD_CRAFTSERVER_MINECRAFTSERVER.get(Bukkit.getServer());
|
||||||
Object connection = NettyInjection.FIELD_MINECRAFTSERVER_SERVERCONNECTION.get(server);
|
Object connection = NettyInjection.FIELD_MINECRAFTSERVER_SERVERCONNECTION.get(server);
|
||||||
List<Object> channelFuture = (List<Object>) FIELD_SERVERCONNECTION_CHANNELFUTURE.get(connection);
|
List<Object> channelFuture = (List<Object>) FIELD_SERVERCONNECTION_CHANNELFUTURE.get(connection);
|
||||||
|
@ -132,7 +132,7 @@ public class NettyInjection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void unregisterGlobalChannel() {
|
private void unregisterGlobalChannel() {
|
||||||
for (Channel global : this.globalChannel) {
|
for (Channel global : this.globalChannel) {
|
||||||
final ChannelPipeline pipe = global.pipeline();
|
final ChannelPipeline pipe = global.pipeline();
|
||||||
global.eventLoop().execute(() -> pipe.remove("NettyInjectionGlobal"));
|
global.eventLoop().execute(() -> pipe.remove("NettyInjectionGlobal"));
|
||||||
|
@ -148,15 +148,15 @@ public class NettyInjection {
|
||||||
this.handlerList.remove(name);
|
this.handlerList.remove(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void inject(Player player) {
|
private void inject(Player player) {
|
||||||
this.injectChannel(this.getChannel(player)).player = player;
|
this.injectChannel(this.getChannel(player)).player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void uninject(Player player) {
|
private void uninject(Player player) {
|
||||||
this.uninjectChannel(this.getChannel(player));
|
this.uninjectChannel(this.getChannel(player));
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Channel getChannel(Player player) {
|
private Channel getChannel(Player player) {
|
||||||
Channel channel = this.playerChannel.get(player.getName());
|
Channel channel = this.playerChannel.get(player.getName());
|
||||||
if (channel == null) {
|
if (channel == null) {
|
||||||
channel = FIELD_NETWORKMANAGER_CHANNEL.get(FIELD_PLAYERCONNECTION_NETWORKMANAGER.get(FIELD_ENTITYPLAYER_PLAYERCONNECTION.get(FIELD_CRAFTPLAYER_ENTITY.get(player))));
|
channel = FIELD_NETWORKMANAGER_CHANNEL.get(FIELD_PLAYERCONNECTION_NETWORKMANAGER.get(FIELD_ENTITYPLAYER_PLAYERCONNECTION.get(FIELD_CRAFTPLAYER_ENTITY.get(player))));
|
||||||
|
@ -165,7 +165,7 @@ public class NettyInjection {
|
||||||
return channel;
|
return channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final PacketInjection injectChannel(Channel channel) {
|
private PacketInjection injectChannel(Channel channel) {
|
||||||
try {
|
try {
|
||||||
PacketInjection handel = (PacketInjection) channel.pipeline().get(this.handlerName);
|
PacketInjection handel = (PacketInjection) channel.pipeline().get(this.handlerName);
|
||||||
if (handel == null) {
|
if (handel == null) {
|
||||||
|
@ -178,7 +178,7 @@ public class NettyInjection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void uninjectChannel(Channel channel) {
|
private void uninjectChannel(Channel channel) {
|
||||||
Object handel = channel.pipeline().get(this.handlerName);
|
Object handel = channel.pipeline().get(this.handlerName);
|
||||||
if (handel != null)
|
if (handel != null)
|
||||||
channel.pipeline().remove(this.handlerName);
|
channel.pipeline().remove(this.handlerName);
|
||||||
|
@ -196,6 +196,7 @@ public class NettyInjection {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
|
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
|
||||||
|
assert CLASS_PACKERLOGININSTART != null;
|
||||||
if (CLASS_PACKERLOGININSTART.isInstance(msg))
|
if (CLASS_PACKERLOGININSTART.isInstance(msg))
|
||||||
NettyInjection.this.playerChannel.put(FIELD_GAMEPROFILE_NAME.get(FIELD_PACKERLOGININSTART_GAMEPROFILE.get(msg)), ctx.channel());
|
NettyInjection.this.playerChannel.put(FIELD_GAMEPROFILE_NAME.get(FIELD_PACKERLOGININSTART_GAMEPROFILE.get(msg)), ctx.channel());
|
||||||
for (PacketHandler handel : NettyInjection.this.handlerList.values()) {
|
for (PacketHandler handel : NettyInjection.this.handlerList.values()) {
|
||||||
|
|
|
@ -4,8 +4,7 @@ import java.util.NavigableMap;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
class RandomCollection<E>
|
class RandomCollection<E> {
|
||||||
{
|
|
||||||
private final NavigableMap<Double, E> map = new TreeMap<>();
|
private final NavigableMap<Double, E> map = new TreeMap<>();
|
||||||
private final Random random;
|
private final Random random;
|
||||||
private double total = 0.0D;
|
private double total = 0.0D;
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package eu.univento.core.api.utils;
|
package eu.univento.core.api.utils;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
import com.mojang.util.UUIDTypeAdapter;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
|
@ -11,12 +15,9 @@ import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.GsonBuilder;
|
|
||||||
import com.mojang.util.UUIDTypeAdapter;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Jofkos
|
* @author Jofkos
|
||||||
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class UUIDFetcher{
|
public class UUIDFetcher{
|
||||||
|
|
|
@ -2,10 +2,13 @@ package eu.univento.core.api.utils;
|
||||||
|
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
final class Vectors
|
/**
|
||||||
{
|
* @author joethei
|
||||||
private static Vector rotateAroundAxisX(Vector v, double angle)
|
* @version 1.0
|
||||||
{
|
*/
|
||||||
|
|
||||||
|
final class Vectors {
|
||||||
|
private static Vector rotateAroundAxisX(Vector v, double angle) {
|
||||||
double cos = Math.cos(angle);
|
double cos = Math.cos(angle);
|
||||||
double sin = Math.sin(angle);
|
double sin = Math.sin(angle);
|
||||||
double y = v.getY() * cos - v.getZ() * sin;
|
double y = v.getY() * cos - v.getZ() * sin;
|
||||||
|
@ -13,8 +16,7 @@ final class Vectors
|
||||||
return v.setY(y).setZ(z);
|
return v.setY(y).setZ(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Vector rotateAroundAxisY(Vector v, double angle)
|
private static Vector rotateAroundAxisY(Vector v, double angle) {
|
||||||
{
|
|
||||||
double cos = Math.cos(angle);
|
double cos = Math.cos(angle);
|
||||||
double sin = Math.sin(angle);
|
double sin = Math.sin(angle);
|
||||||
double x = v.getX() * cos + v.getZ() * sin;
|
double x = v.getX() * cos + v.getZ() * sin;
|
||||||
|
@ -22,8 +24,7 @@ final class Vectors
|
||||||
return v.setX(x).setZ(z);
|
return v.setX(x).setZ(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Vector rotateAroundAxisZ(Vector v, double angle)
|
private static Vector rotateAroundAxisZ(Vector v, double angle) {
|
||||||
{
|
|
||||||
double cos = Math.cos(angle);
|
double cos = Math.cos(angle);
|
||||||
double sin = Math.sin(angle);
|
double sin = Math.sin(angle);
|
||||||
double x = v.getX() * cos - v.getY() * sin;
|
double x = v.getX() * cos - v.getY() * sin;
|
||||||
|
@ -31,8 +32,7 @@ final class Vectors
|
||||||
return v.setX(x).setY(y);
|
return v.setX(x).setY(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Vector rotateVector(Vector v, double angleX, double angleY, double angleZ)
|
public static Vector rotateVector(Vector v, double angleX, double angleY, double angleZ) {
|
||||||
{
|
|
||||||
rotateAroundAxisX(v, angleX);
|
rotateAroundAxisX(v, angleX);
|
||||||
rotateAroundAxisY(v, angleY);
|
rotateAroundAxisY(v, angleY);
|
||||||
rotateAroundAxisZ(v, angleZ);
|
rotateAroundAxisZ(v, angleZ);
|
||||||
|
|
|
@ -28,7 +28,6 @@ public class Nick extends AutoCommand<Core>{
|
||||||
super(plugin, command, description, aliases);
|
super(plugin, command, description, aliases);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@Override
|
@Override
|
||||||
public boolean execute(CommandSender sender, String label, String[] args) {
|
public boolean execute(CommandSender sender, String label, String[] args) {
|
||||||
if(sender instanceof Player) {
|
if(sender instanceof Player) {
|
||||||
|
|
|
@ -17,6 +17,7 @@ import java.util.stream.Collectors;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class SetRank extends AutoCommand<Core>{
|
public class SetRank extends AutoCommand<Core>{
|
||||||
|
|
||||||
public SetRank(Core plugin, String command, String description, String... aliases) {
|
public SetRank(Core plugin, String command, String description, String... aliases) {
|
||||||
|
|
|
@ -27,6 +27,7 @@ public class SystemInfo extends AutoCommand<Core>{
|
||||||
* @param description describes the commons
|
* @param description describes the commons
|
||||||
* @param aliases aliases of commons
|
* @param aliases aliases of commons
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public SystemInfo(Core plugin, String command, String description, String... aliases) {
|
public SystemInfo(Core plugin, String command, String description, String... aliases) {
|
||||||
super(plugin, command, description, aliases);
|
super(plugin, command, description, aliases);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import java.util.List;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 0.1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Timeout extends AutoCommand<Core> {
|
public class Timeout extends AutoCommand<Core> {
|
||||||
|
|
||||||
public Timeout(Core plugin, String command, String description, String... aliases) {
|
public Timeout(Core plugin, String command, String description, String... aliases) {
|
||||||
|
|
|
@ -17,6 +17,7 @@ import java.util.List;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Vanish extends AutoCommand<Core>{
|
public class Vanish extends AutoCommand<Core>{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,6 +14,7 @@ import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Blocks implements Listener{
|
public class Blocks implements Listener{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -34,6 +34,7 @@ import java.util.Map;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Chat implements Listener {
|
public class Chat implements Listener {
|
||||||
|
|
||||||
private List<CustomPlayer> players = new LinkedList<>();
|
private List<CustomPlayer> players = new LinkedList<>();
|
||||||
|
|
|
@ -16,6 +16,7 @@ import org.bukkit.help.HelpTopic;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Commands implements Listener{
|
public class Commands implements Listener{
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,9 @@ import org.bukkit.util.Vector;
|
||||||
* some basic events
|
* some basic events
|
||||||
*
|
*
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.2
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Events implements Listener {
|
public class Events implements Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -43,6 +44,7 @@ public class Events implements Listener {
|
||||||
if (p.getLocation().getY() <= 0) {
|
if (p.getLocation().getY() <= 0) {
|
||||||
p.setVelocity(new Vector().setY(10.0D).multiply(1.0D));
|
p.setVelocity(new Vector().setY(10.0D).multiply(1.0D));
|
||||||
p.setGliding(true);
|
p.setGliding(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,4 +92,5 @@ public class Events implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -12,10 +12,7 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.*;
|
||||||
import org.bukkit.event.player.PlayerKickEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
import org.bukkit.event.player.PlayerResourcePackStatusEvent;
|
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
@ -35,12 +32,16 @@ public class JoinQuit implements Listener {
|
||||||
private List<CustomPlayer> loading = new LinkedList<>();
|
private List<CustomPlayer> loading = new LinkedList<>();
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onJoin(PlayerJoinEvent e) {
|
public void onPreLogin(AsyncPlayerPreLoginEvent e) {
|
||||||
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
if(!Core.getCommons().getSecurityHandler().isValidServer(e.getAddress().getHostAddress())) {
|
||||||
if(!p.hasPlayedBefore()) {
|
e.setKickMessage("Im sorry, you can only join from our official IP: play.univento.eu");
|
||||||
|
e.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_BANNED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onJoin(PlayerJoinEvent e) {
|
||||||
|
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
|
||||||
for (Player players : Bukkit.getOnlinePlayers()) {
|
for (Player players : Bukkit.getOnlinePlayers()) {
|
||||||
CustomPlayer player = CustomPlayer.getPlayer(players);
|
CustomPlayer player = CustomPlayer.getPlayer(players);
|
||||||
if (Vanish.getPlayers().contains(player))
|
if (Vanish.getPlayers().contains(player))
|
||||||
|
@ -64,7 +65,7 @@ public class JoinQuit implements Listener {
|
||||||
labyModFeatures.put(LabyMod.EXTRAS, false);
|
labyModFeatures.put(LabyMod.EXTRAS, false);
|
||||||
p.setLabyModFeatures(labyModFeatures);
|
p.setLabyModFeatures(labyModFeatures);
|
||||||
|
|
||||||
p.sendMessage(new BetterPvP().getCodeString());
|
p.sendMessage(BetterPvP.getCodeString());
|
||||||
|
|
||||||
//disable code for minimap mod
|
//disable code for minimap mod
|
||||||
p.sendMessage("§A§n§t§i§M§i§n§i§m§a§p");
|
p.sendMessage("§A§n§t§i§M§i§n§i§m§a§p");
|
||||||
|
@ -90,7 +91,6 @@ public class JoinQuit implements Listener {
|
||||||
|
|
||||||
//p.setStoryResourcePack();
|
//p.setStoryResourcePack();
|
||||||
loading.add(p);
|
loading.add(p);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|
|
@ -6,6 +6,7 @@ import org.bukkit.event.Listener;
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 0.1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class NPCEvents implements Listener {
|
public class NPCEvents implements Listener {
|
||||||
|
|
||||||
}
|
}
|
|
@ -10,11 +10,27 @@ import org.bukkit.plugin.messaging.PluginMessageListener;
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author joethei
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
public class PluginMessenger implements PluginMessageListener {
|
public class PluginMessenger implements PluginMessageListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPluginMessageReceived(String channel, Player player, byte[] data) {
|
public void onPluginMessageReceived(String channel, Player player, byte[] data) {
|
||||||
CustomPlayer p = CustomPlayer.getPlayer(player);
|
CustomPlayer p = CustomPlayer.getPlayer(player);
|
||||||
|
String string = null;
|
||||||
|
try {
|
||||||
|
string = new String (data, "UTF-8");
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
assert string != null;
|
||||||
|
if(string.endsWith("squidhq")) {
|
||||||
|
p.warn(WarnReason.SPAM, null, "https://players.univento.eu/" + p.getUniqueId().toString() + "/hacks");
|
||||||
|
}
|
||||||
|
|
||||||
if (channel.equals("WDL|INIT")) {
|
if (channel.equals("WDL|INIT")) {
|
||||||
String version = null;
|
String version = null;
|
||||||
if(data.length == 0) version = "vor 1.8d";
|
if(data.length == 0) version = "vor 1.8d";
|
||||||
|
@ -27,41 +43,47 @@ public class PluginMessenger implements PluginMessageListener {
|
||||||
p.sendMessage(p.getDatabasePlayer().getLanguage().getWord("Prefix") + p.getDatabasePlayer().getLanguage().getWord("Hack.WorldDownloader"));
|
p.sendMessage(p.getDatabasePlayer().getLanguage().getWord("Prefix") + p.getDatabasePlayer().getLanguage().getWord("Hack.WorldDownloader"));
|
||||||
}
|
}
|
||||||
if(channel.equals("WDL|CONTROL")) {
|
if(channel.equals("WDL|CONTROL")) {
|
||||||
p.sendPluginMessage(Core.getInstance(), "WDL|CONTROL", createWDLPacket(0, false, false, false, false));
|
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
||||||
|
|
||||||
|
output.writeInt(1);
|
||||||
|
|
||||||
|
output.writeBoolean(false);
|
||||||
|
output.writeInt(0);
|
||||||
|
output.writeBoolean(false);
|
||||||
|
output.writeBoolean(false);
|
||||||
|
output.writeBoolean(false);
|
||||||
|
output.writeBoolean(false);
|
||||||
|
|
||||||
|
p.sendPluginMessage(Core.getInstance(), "WDL|CONTROL", output.toByteArray());
|
||||||
}
|
}
|
||||||
if (channel.equals("PERMISSIONSREPL") && new String(data).contains("mod.worlddownloader")) {
|
if (channel.equals("PERMISSIONSREPL") && string.contains("mod.worlddownloader")) {
|
||||||
//TODO: change to real warn reason
|
//TODO: change to real warn reason
|
||||||
p.warn(WarnReason.SPAM, null, "https://players.univento.eu/" + p.getUniqueId().toString() + "/hacks");
|
p.warn(WarnReason.SPAM, null, "https://players.univento.eu/" + p.getUniqueId().toString() + "/hacks");
|
||||||
p.sendMessage(p.getDatabasePlayer().getLanguage().getWord("Prefix") + p.getDatabasePlayer().getLanguage().getWord("Hack.WorldDownloader"));
|
p.sendMessage(p.getDatabasePlayer().getLanguage().getWord("Prefix") + p.getDatabasePlayer().getLanguage().getWord("Hack.WorldDownloader"));
|
||||||
}
|
}
|
||||||
if(channel.equals("5zig_Set")) {
|
if(channel.equals("5zig_Set")) {
|
||||||
try {
|
//https://gist.github.com/5zig/35e0854504edda418f4b shows why its done that way
|
||||||
String version = new String(data, "UTF-8");
|
|
||||||
Core.getCommons().getLoggingHandler().getCore().info(p.getName() + " hat den 5zig Mod Version : " + version);
|
ByteArrayDataOutput output1 = ByteStreams.newDataOutput();
|
||||||
//https://gist.github.com/5zig/35e0854504edda418f4b shows why
|
output1.write(0x01);
|
||||||
ByteArrayDataOutput dataOutput = ByteStreams.newDataOutput();
|
p.sendPluginMessage(Core.getInstance(), "5zig_Set", output1.toByteArray());
|
||||||
dataOutput.writeByte(0x01 | 0x02 | 0x02 | 0x04 | 0x08 | 0x010);
|
|
||||||
p.sendPluginMessage(Core.getInstance(), "5zig_Set", dataOutput.toByteArray());
|
ByteArrayDataOutput output2 = ByteStreams.newDataOutput();
|
||||||
p.sendPluginMessage(Core.getInstance(), "5zig_Set", new byte[]{0x01 | 0x02 | 0x04 | 0x08 | 0x10});
|
output2.write(0x02);
|
||||||
} catch (UnsupportedEncodingException e) {
|
p.sendPluginMessage(Core.getInstance(), "5zig_Set", output2.toByteArray());
|
||||||
e.printStackTrace();
|
|
||||||
|
ByteArrayDataOutput output3 = ByteStreams.newDataOutput();
|
||||||
|
output3.write(0x04);
|
||||||
|
p.sendPluginMessage(Core.getInstance(), "5zig_Set", output3.toByteArray());
|
||||||
|
|
||||||
|
ByteArrayDataOutput output4 = ByteStreams.newDataOutput();
|
||||||
|
output4.write(0x08);
|
||||||
|
p.sendPluginMessage(Core.getInstance(), "5zig_Set", output4.toByteArray());
|
||||||
|
|
||||||
|
ByteArrayDataOutput output5 = ByteStreams.newDataOutput();
|
||||||
|
output5.write(0x10);
|
||||||
|
p.sendPluginMessage(Core.getInstance(), "5zig_Set", output5.toByteArray());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//TODO:
|
|
||||||
private byte[] createWDLPacket(int saveRadius, boolean cacheChunks, boolean saveEntities, boolean saveTileEntities, boolean saveContainers) {
|
|
||||||
ByteArrayDataOutput output = ByteStreams.newDataOutput();
|
|
||||||
|
|
||||||
output.writeInt(1);
|
|
||||||
|
|
||||||
output.writeBoolean(cacheChunks);
|
|
||||||
output.writeInt(saveRadius);
|
|
||||||
output.writeBoolean(saveEntities);
|
|
||||||
output.writeBoolean(saveTileEntities);
|
|
||||||
output.writeBoolean(saveContainers);
|
|
||||||
output.writeBoolean(false);
|
|
||||||
|
|
||||||
return output.toByteArray();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author joethei
|
* @author joethei
|
||||||
* @version 0.1
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class WeaponEvents implements Listener {
|
public class WeaponEvents implements Listener {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue