Archived
Private
Public Access
1
0

Initial commit

This commit is contained in:
2022-09-04 12:45:01 +02:00
commit f4a01d6a69
11601 changed files with 4206660 additions and 0 deletions

3
Plugins/Old/1vs1-Marc/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
Plugins/Old/1vs1-Marc/.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
MySQL.java

View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="1vs1">
<output-path>$USER_HOME$/Desktop/</output-path>
<root id="archive" name="1vs1.jar">
<element id="module-output" name="1vs1-Marc" />
</root>
</artifact>
</component>

7
Plugins/Old/1vs1-Marc/.idea/discord.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="spigot 1.8.8">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../Spigot Versions/spigot 1.8.8.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../Spigot Versions/spigot 1.8.8.jar!/" />
</SOURCES>
</library>
</component>

11
Plugins/Old/1vs1-Marc/.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="1">
<item index="0" class="java.lang.String" itemvalue="org.bukkit.event.EventHandler" />
</list>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
Plugins/Old/1vs1-Marc/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/1vs1-Marc.iml" filepath="$PROJECT_DIR$/1vs1-Marc.iml" />
</modules>
</component>
</project>

124
Plugins/Old/1vs1-Marc/.idea/uiDesigner.xml generated Normal file
View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

6
Plugins/Old/1vs1-Marc/.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="spigot 1.8.8" level="project" />
</component>
</module>

View File

@@ -0,0 +1,11 @@
name: 1vs1
version: 1.0
api-version: 1.8
main: de.craftix.onevone.Main
commands:
addworld:
setspawn:
saveworld:
setlobby:
stats:

View File

@@ -0,0 +1,9 @@
package de.craftix.onevone;
public class MSG {
public static final String onlyPlayer = "§cNur Spieler können diesen Command benutzen!";
public static final String noPerm = "§cDu hast nicht genug Rechte, um diesen Command zu benutzen!";
public static final String syntax = "§cFalscher Syntax!";
}

View File

@@ -0,0 +1,71 @@
package de.craftix.onevone;
import de.craftix.onevone.commands.*;
import de.craftix.onevone.listener.onJoin;
import de.craftix.onevone.listener.onLobby;
import de.craftix.onevone.saving.*;
import de.craftix.onevone.utils.*;
import de.craftix.onevone.utils.kit.Kits;
import org.bukkit.Bukkit;
import org.bukkit.Difficulty;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
public class Main extends JavaPlugin {
public static ArrayList<FightWorld> worlds = new ArrayList<>();
@Override
public void onEnable() {
MySQL.connect();
SqlManager.createTables();
Kits.setup();
World lobby = Lobbymanager.getLobby();
if (lobby != null) {
lobby.setGameRuleValue("randomTickSpeed", "0");
lobby.setGameRuleValue("doFireTick", "false");
lobby.setGameRuleValue("doMobSpawning", "false");
lobby.setGameRuleValue("doDaylightCycle", "false");
lobby.setAnimalSpawnLimit(0);
lobby.setMonsterSpawnLimit(0);
lobby.setAutoSave(true);
lobby.setDifficulty(Difficulty.PEACEFUL);
}
getCommand("addworld").setExecutor(new AddWorld());
getCommand("setspawn").setExecutor(new SetSpawn());
getCommand("saveworld").setExecutor(new SaveWorld());
getCommand("setlobby").setExecutor(new SetLobby());
getCommand("stats").setExecutor(new Stats());
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new onJoin(), this);
pm.registerEvents(new onLobby(), this);
pm.registerEvents(new Lobbymanager(), this);
pm.registerEvents(new Gamemanager(), this);
}
@Override
public void onDisable() {
MySQL.disconnect();
for (Player p : Bukkit.getOnlinePlayers()) p.kickPlayer("Server restart");
for (Gamemanager games : Gamemanager.games){
World map = games.map;
Bukkit.unloadWorld(map, false);
Gamemanager.deleteWorld(map.getWorldFolder());
}
}
public static FightWorld getWorld(String cName){
for (FightWorld world : worlds){
if (world.cName.equalsIgnoreCase(cName)) return world;
}
return null;
}
}

View File

@@ -0,0 +1,8 @@
package de.craftix.onevone;
public class Perms {
public static final String setup = "1vs1.setup";
public static final String admin = "1vs1.admin";
}

View File

@@ -0,0 +1,38 @@
package de.craftix.onevone.commands;
import de.craftix.onevone.MSG;
import de.craftix.onevone.Main;
import de.craftix.onevone.Perms;
import de.craftix.onevone.utils.FightWorld;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class AddWorld implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (sender instanceof Player){
Player p = (Player) sender;
if (p.hasPermission(Perms.setup)){
if (args.length == 1){
if (FightWorld.checkName(args[0])){
FightWorld world = new FightWorld();
world.cName = args[0];
Main.worlds.add(world);
p.sendMessage("§aDie Welt wurde erstellt!");
}else {
p.sendMessage("§cDieser Name ist bereits vergeben!");
}
}else {
p.sendMessage(MSG.syntax);
}
}else {
p.sendMessage(MSG.noPerm);
}
}else {
sender.sendMessage(MSG.onlyPlayer);
}
return true;
}
}

View File

@@ -0,0 +1,41 @@
package de.craftix.onevone.commands;
import de.craftix.onevone.MSG;
import de.craftix.onevone.Main;
import de.craftix.onevone.Perms;
import de.craftix.onevone.utils.FightWorld;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SaveWorld implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (sender instanceof Player){
Player p = (Player) sender;
if (p.hasPermission(Perms.setup)){
if (args.length == 1){
FightWorld world = Main.getWorld(args[0]);
if (world != null){
if (world.spawn1 != null && world.spawn2 != null && world.world != null && world.cName != null){
FightWorld.saveWorld(world);
p.sendMessage("§aDie Welt wurde erfolgreich gespeichert!");
}else {
p.sendMessage("§cDie Welt wurde noch nicht fertig konfiguriert!");
}
}else {
p.sendMessage("§cDiese Welt existiert nicht!");
}
}else {
p.sendMessage(MSG.syntax);
}
}else {
p.sendMessage(MSG.noPerm);
}
}else {
sender.sendMessage(MSG.onlyPlayer);
}
return true;
}
}

View File

@@ -0,0 +1,28 @@
package de.craftix.onevone.commands;
import de.craftix.onevone.MSG;
import de.craftix.onevone.Perms;
import de.craftix.onevone.saving.MySQL;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SetLobby implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (sender instanceof Player){
Player p = (Player)sender;
if (p.hasPermission(Perms.setup)){
Location loc = p.getLocation();
MySQL.insert("DELETE FROM lobby");
String qry1 = "INSERT INTO lobby (World, x, y, z, yaw, pitch) VALUES (";
String qry2 = "\"" + loc.getWorld().getName() + "\", \"" + loc.getX() + "\", \"" + loc.getY() + "\", \"" + loc.getZ() + "\", \"" + loc.getYaw() + "\", \"" + loc.getPitch() + "\")";
MySQL.insert(qry1 + qry2);
p.sendMessage("§aDie Lobby wurde gesetzt");
}else p.sendMessage(MSG.noPerm);
}else sender.sendMessage(MSG.onlyPlayer);
return true;
}
}

View File

@@ -0,0 +1,42 @@
package de.craftix.onevone.commands;
import de.craftix.onevone.MSG;
import de.craftix.onevone.Main;
import de.craftix.onevone.Perms;
import de.craftix.onevone.utils.FightWorld;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SetSpawn implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (sender instanceof Player){
Player p = (Player) sender;
if (p.hasPermission(Perms.setup)){
if (args.length == 2 && (args[1].equalsIgnoreCase("1") || args[1].equalsIgnoreCase("2"))){
FightWorld world = Main.getWorld(args[0]);
if(world != null){
if (args[1].equalsIgnoreCase("1")){
world.spawn1 = p.getLocation();
}else {
world.spawn2 = p.getLocation();
}
world.world = p.getLocation().getWorld();
p.sendMessage("§aDer Spawn §6" + args[1] + " §awurde hinzugefügt");
}else {
p.sendMessage("§cDiese Welt existiert nicht!");
}
}else {
p.sendMessage(MSG.syntax);
}
}else {
p.sendMessage(MSG.noPerm);
}
}else {
sender.sendMessage(MSG.onlyPlayer);
}
return true;
}
}

View File

@@ -0,0 +1,27 @@
package de.craftix.onevone.commands;
import de.craftix.onevone.MSG;
import de.craftix.onevone.utils.Gamemanager;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class Stats implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (sender instanceof Player){
Player p = (Player) sender;
List<Integer> stats = Gamemanager.getStats(p);
int wins = stats.get(0);
int looses = stats.get(1);
p.sendMessage("§6------------§bStats§6------------");
p.sendMessage("§aGewonnene Matches: §e" + wins);
p.sendMessage("§cVerlorene Matches: §e" + looses);
p.sendMessage("§6-----------------------------");
}else sender.sendMessage(MSG.onlyPlayer);
return true;
}
}

View File

@@ -0,0 +1,39 @@
package de.craftix.onevone.listener;
import de.craftix.onevone.utils.Gamemanager;
import de.craftix.onevone.utils.Lobbymanager;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class onJoin implements Listener {
@EventHandler
public void onJoinEvent(PlayerJoinEvent e){
e.setJoinMessage(null);
Location spawn = Lobbymanager.getSpawn();
if (spawn != null) e.getPlayer().teleport(spawn);
Lobbymanager.giveInv(e.getPlayer());
if (Gamemanager.getStats(e.getPlayer()) == null){
Gamemanager.setStats(e.getPlayer(), 0, 0);
}
}
@EventHandler
public void onQuitEvent(PlayerQuitEvent e){
e.setQuitMessage(null);
Player p = e.getPlayer();
Gamemanager manager = null;
for (Gamemanager game : Gamemanager.games){
if (game.p1 == p || game.p2 == p) {
manager = game;
break;
}
}
if (manager != null) Gamemanager.handleWinning(manager.map, manager, p);
}
}

View File

@@ -0,0 +1,92 @@
package de.craftix.onevone.listener;
import de.craftix.onevone.saving.MySQL;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
import java.sql.ResultSet;
public class onLobby implements Listener {
private World getLobby(){
try {
ResultSet rs = MySQL.getData("SELECT * FROM lobby");
rs.next();
return Bukkit.getWorld(rs.getString("World"));
}catch (Exception e) {}
return null;
}
@EventHandler
public void onBreak(BlockBreakEvent e){
if (e.getBlock().getWorld().equals(getLobby())) e.setCancelled(true);
else if (!e.getBlock().getType().equals(Material.SANDSTONE)) e.setCancelled(true);
}
@EventHandler
public void onBuild(BlockPlaceEvent e){
if (e.getBlock().getWorld().equals(getLobby())) e.setCancelled(true);
}
@EventHandler
public void onInteract(PlayerInteractEvent e){
try {
if (e.getClickedBlock().getWorld().equals(getLobby())) e.setCancelled(true);
}catch (Exception exception) {}
}
@EventHandler
public void onDamage(EntityDamageEvent e){
if (e.getEntity().getWorld().equals(getLobby())) e.setCancelled(true);
}
@EventHandler
public void onHunger(FoodLevelChangeEvent e){
if (e.getEntity().getWorld().equals(getLobby())) {
e.setCancelled(true);
((Player) e.getEntity()).setFoodLevel(20);
((Player) e.getEntity()).setSaturation(5);
}
}
@EventHandler
public void onInvClick(InventoryClickEvent e){
if (e.getWhoClicked().getWorld().equals(getLobby())) e.setCancelled(true);
}
@EventHandler
public void onDrop(PlayerDropItemEvent e){
if (e.getItemDrop().getWorld().equals(getLobby())) e.setCancelled(true);
}
@EventHandler
public void onPickUP(PlayerPickupItemEvent e){
if (e.getItem().getWorld().equals(getLobby())) e.setCancelled(true);
}
@EventHandler
public void onWeatherChange(WeatherChangeEvent e){
e.setCancelled(true);
}
@EventHandler
public void onMobSpawn(EntitySpawnEvent e){
if (e.getEntity() instanceof Player) return;
e.setCancelled(true);
}
}

View File

@@ -0,0 +1,65 @@
package de.craftix.onevone.saving;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MySQL {
public static final String server = "localhost";
public static final Integer port = 3306;
public static final String db = "CloudNet";
public static final String user = "CloudNet";
public static final String pass = "GXRD9geCHrUhF0c3";
private static Connection con = null;
public static boolean connect(){
String conString = "jdbc:mysql://" + server + ":" + port + "/" + db;
try {
con = DriverManager.getConnection(conString, user, pass);
System.out.println("[1vs1] MySQL connected");
return true;
}catch (SQLException e){
System.out.println("[1vs1] MySQL connection failed");
return false;
}
}
public static boolean disconnect(){
if (!isConnected()) return true;
try {
con.close();
con = null;
System.out.println("[1vs1] MySQL disconnected");
return true;
}catch (SQLException e){
System.out.println("[1vs1] MySQL disconnecting failed");
return false;
}
}
public static boolean isConnected(){
if (con == null) return false;
else return true;
}
public static void insert(String qry){
try {
con.prepareStatement(qry).executeUpdate();
}catch (SQLException e){
e.printStackTrace();
}
}
public static ResultSet getData(String qry){
try {
return con.prepareStatement(qry).executeQuery();
}catch (SQLException e){
e.printStackTrace();
return null;
}
}
}

View File

@@ -0,0 +1,17 @@
package de.craftix.onevone.saving;
public class SqlManager {
public static void createTables(){
if (!MySQL.isConnected()) MySQL.connect();
//World Presets
MySQL.insert("CREATE TABLE IF NOT EXISTS worlds (Name VARCHAR(100), x1 VARCHAR(100), y1 VARCHAR(100), z1 VARCHAR(100), yaw1 VARCHAR(100), pitch1 VARCHAR(100), x2 VARCHAR(100), y2 VARCHAR(100), z2 VARCHAR(100), yaw2 VARCHAR(100), pitch2 VARCHAR(100), CName VARCHAR(100))");
//Scores
MySQL.insert("CREATE TABLE IF NOT EXISTS Stats (UUID VARCHAR(100), Wins INT(100), Looses INT(100))");
//Lobby Data
MySQL.insert("CREATE TABLE IF NOT EXISTS Kits (UUID VARCHAR(100), Kit INT(10))");
//Lobby
MySQL.insert("CREATE TABLE IF NOT EXISTS lobby (World VARCHAR(100), x VARCHAR(100), y VARCHAR(100), z VARCHAR(100), yaw VARCHAR(100), pitch VARCHAR(100))");
}
}

View File

@@ -0,0 +1,133 @@
package de.craftix.onevone.utils;
import de.craftix.onevone.Main;
import de.craftix.onevone.saving.MySQL;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class FightWorld {
//static
public static FightWorld getWorld(String cName) {
ResultSet rs = MySQL.getData("SELECT * FROM worlds WHERE CName = \"" + cName + "\"");
try {
if (rs.next()){
String x1 = rs.getString("x1");
String y1 = rs.getString("y1");
String z1 = rs.getString("z1");
String yaw1 = rs.getString("yaw1");
String pitch1 = rs.getString("pitch1");
String x2 = rs.getString("x2");
String y2 = rs.getString("y2");
String z2 = rs.getString("z2");
String yaw2 = rs.getString("yaw2");
String pitch2 = rs.getString("pitch2");
String world = rs.getString("Name");
return new FightWorld(world, x1, y1, z1, yaw1, pitch1, x2, y2, z2, yaw2, pitch2, cName);
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void saveWorld(FightWorld world){
try {
ResultSet rs = MySQL.getData("SELECT * FROM worlds WHERE CName = \"" + world.cName + "\"");
if (rs.next()) MySQL.insert("DELETE FROM worlds WHERE CName = \"" + world.cName + "\"");
String name = world.world.getName();
String x1 = String.valueOf(world.spawn1.getX());
String y1 = String.valueOf(world.spawn1.getY());
String z1 = String.valueOf(world.spawn1.getZ());
String yaw1 = String.valueOf(world.spawn1.getYaw());
String pitch1 = String.valueOf(world.spawn1.getPitch());
String x2 = String.valueOf(world.spawn2.getX());
String y2 = String.valueOf(world.spawn2.getY());
String z2 = String.valueOf(world.spawn2.getZ());
String yaw2 = String.valueOf(world.spawn2.getYaw());
String pitch2 = String.valueOf(world.spawn2.getPitch());
String qry1 = "INSERT INTO worlds (Name, x1, y1, z1, yaw1, pitch1, x2, y2, z2, yaw2, pitch2, CName) VALUES ";
String qry2 = "(\"" + world.world.getName() + "\", ";
String qry3 = "\"" + x1 + "\", \"" + y1 + "\", \"" + z1 + "\", \"" + yaw1 + "\", \"" + pitch1 + "\", ";
String qry4 = "\"" + x2 + "\", \"" + y2 + "\", \"" + z2 + "\", \"" + yaw2 + "\", \"" + pitch2 + "\", \"" + world.cName + "\")";
MySQL.insert(qry1 + qry2 + qry3 + qry4);
}catch (Exception e){
e.printStackTrace();
}
}
public static void deleteWorld(String cName){
MySQL.insert("DELETE FROM worlds WHERE CName = \"" + cName + "\"");
}
public static boolean checkName(String cName){
String ram = null;
try {
ResultSet rs = MySQL.getData("SELECT * FROM worlds WHERE CName = \"" + cName + "\"");
rs.next();
try {
ram = rs.getString("Name");
}catch (Exception e){}
}catch (Exception e){
e.printStackTrace();
}
if (Main.getWorld(cName) == null && ram == null) return true;
return false;
}
public static ArrayList<FightWorld> getAllWorlds(){
ArrayList<FightWorld> worlds = new ArrayList<>();
ResultSet rs = MySQL.getData("SELECT * FROM worlds");
try {
while (rs.next()){
String x1 = rs.getString("x1");
String y1 = rs.getString("y1");
String z1 = rs.getString("z1");
String yaw1 = rs.getString("yaw1");
String pitch1 = rs.getString("pitch1");
String x2 = rs.getString("x2");
String y2 = rs.getString("y2");
String z2 = rs.getString("z2");
String yaw2 = rs.getString("yaw2");
String pitch2 = rs.getString("pitch2");
String world = rs.getString("Name");
String cName = rs.getString("CName");
worlds.add(new FightWorld(world, x1, y1, z1, yaw1, pitch1, x2, y2, z2, yaw2, pitch2, cName));
}
}catch (Exception e){
e.printStackTrace();
}
return worlds;
}
//nonStatic
public Location spawn1;
public Location spawn2;
public World world;
public String cName;
public FightWorld() {}
public FightWorld(String world, String x1, String y1, String z1, String yaw1, String pitch1, String x2, String y2, String z2, String yaw2, String pitch2, String cName){
this.world = Bukkit.getWorld(world);
spawn1 = new Location(this.world, Double.valueOf(x1), Double.valueOf(y1), Double.valueOf(z1), Float.valueOf(yaw1), Float.valueOf(pitch1));
spawn2 = new Location(this.world, Double.valueOf(x2), Double.valueOf(y2), Double.valueOf(z2), Float.valueOf(yaw2), Float.valueOf(pitch2));
this.cName = cName;
}
public FightWorld(World world, Location spawn1, Location spawn2, String cName){
this.world = world;
this.cName = cName;
this.spawn1 = spawn1;
this.spawn2 = spawn2;
}
public void setMap(World map){
spawn1.setWorld(map);
spawn2.setWorld(map);
}
}

View File

@@ -0,0 +1,192 @@
package de.craftix.onevone.utils;
import de.craftix.onevone.saving.MySQL;
import de.craftix.onevone.utils.kit.Kits;
import org.bukkit.*;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import java.io.*;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Gamemanager implements Listener {
public static ArrayList<Gamemanager> games = new ArrayList<>();
private static void copyFileStructure(File source, File target){
try {
ArrayList<String> ignore = new ArrayList<>(Arrays.asList("uid.dat", "session.lock"));
if(!ignore.contains(source.getName())) {
if(source.isDirectory()) {
if(!target.exists())
if (!target.mkdirs())
throw new IOException("Couldn't create world directory!");
String files[] = source.list();
for (String file : files) {
File srcFile = new File(source, file);
File destFile = new File(target, file);
copyFileStructure(srcFile, destFile);
}
} else {
InputStream in = new FileInputStream(source);
OutputStream out = new FileOutputStream(target);
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0)
out.write(buffer, 0, length);
in.close();
out.close();
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static List<Integer> getStats(Player p){
try {
ResultSet rs = MySQL.getData("SELECT * FROM Stats WHERE UUID = \"" + p.getUniqueId().toString() + "\"");
if (rs.next()){
int wins = rs.getInt("Wins");
int looses = rs.getInt("Looses");
List<Integer> stats = new ArrayList<>();
stats.add(wins);
stats.add(looses);
return stats;
}
}catch (Exception e) {}
return null;
}
public static void setStats(Player p, int wins, int looses){
MySQL.insert("DELETE FROM Stats WHERE UUID = \"" + p.getUniqueId().toString() + "\"");
MySQL.insert("INSERT INTO Stats (UUID, Wins, Looses) VALUES (\"" + p.getUniqueId().toString() + "\", " + wins + ", " + looses + ")");
}
public static void addWin(Player p){
List<Integer> stats = getStats(p);
setStats(p, stats.get(0) + 1, stats.get(1));
}
public static void addLoose(Player p){
List<Integer> stats = getStats(p);
setStats(p, stats.get(0), stats.get(1) + 1);
}
public static void addGame(Player p1, Player p2, FightWorld preset){
Gamemanager manager = new Gamemanager(p1, p2, preset);
manager.startGame();
games.add(manager);
}
private static int getFreeGameID(){
int i = 0;
for (Gamemanager game : games){
if (game.id == i) i++;
}
return i;
}
public static boolean deleteWorld(File path){
if(path.exists()) {
File files[] = path.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
deleteWorld(files[i]);
} else {
files[i].delete();
}
}
}
return(path.delete());
}
//nonStatic
public Player p1;
public Player p2;
public FightWorld preset;
public World map;
public int id;
public Gamemanager() {}
public Gamemanager(Player p1, Player p2, FightWorld preset){
this.p1 = p1;
this.p2 = p2;
this.preset = preset;
}
public void startGame(){
id = getFreeGameID();
copyFileStructure(preset.world.getWorldFolder(), new File(Bukkit.getWorldContainer(), preset.cName + "-" + id));
new WorldCreator(preset.cName + "-" + id).createWorld();
map = Bukkit.getWorld(preset.cName + "-" + id);
preset.setMap(map);
//map settings
map.setGameRuleValue("randomTickSpeed", "0");
map.setGameRuleValue("doFireTick", "false");
map.setGameRuleValue("doMobSpawning", "false");
map.setGameRuleValue("doDaylightCycle", "false");
map.setAnimalSpawnLimit(0);
map.setMonsterSpawnLimit(0);
map.setAutoSave(false);
map.setDifficulty(Difficulty.NORMAL);
for (Entity e : map.getEntities()){
if (e instanceof Player) continue;
e.remove();
}
p1.teleport(preset.spawn1);
p2.teleport(preset.spawn2);
Kits.preparePlayer(Lobbymanager.getKittype(p1), p1);
Kits.preparePlayer(Lobbymanager.getKittype(p2), p2);
p1.sendMessage("§aDein gegner hat das kit §6" + Lobbymanager.getKittype(p2).name() + " §agewählt");
p2.sendMessage("§aDein gegner hat das kit §6" + Lobbymanager.getKittype(p1).name() + " §agewählt");
}
@EventHandler
public void onDeath(PlayerDeathEvent event){
try {
for (Gamemanager manager : games){
if (event.getEntity().getWorld().equals(manager.map)){
event.setDeathMessage(null);
event.setKeepInventory(true);
handleWinning(event.getEntity().getWorld(), manager, event.getEntity());
break;
}
}
Location spawn = Lobbymanager.getSpawn();
spawn.setY(spawn.getY() + 1);
event.getEntity().spigot().respawn();
event.getEntity().teleport(spawn);
}catch (Exception e) {}
}
public static void handleWinning(World world, Gamemanager manager, Player looser){
try {
Location spawn = Lobbymanager.getSpawn();
spawn.setY(spawn.getY() + 1);
for (Player p : world.getPlayers()){
if (!p.getUniqueId().equals(looser.getUniqueId())){
p.sendMessage("§aDu hast den Kampf gewonnen");
looser.spigot().respawn();
looser.teleport(spawn);
Lobbymanager.giveInv(looser);
addLoose(looser);
looser.sendMessage("§6" + p.getDisplayName() + " §ahatte noch §b" + ((int)p.getHealth() / 2) + " §aHerzen");
p.teleport(spawn);
Lobbymanager.giveInv(p);
addWin(p);
}
}
Bukkit.unloadWorld(world, false);
deleteWorld(world.getWorldFolder());
games.remove(manager);
}catch (Exception e){}
}
}

View File

@@ -0,0 +1,255 @@
package de.craftix.onevone.utils;
import de.craftix.onevone.saving.MySQL;
import de.craftix.onevone.utils.kit.Kit;
import de.craftix.onevone.utils.kit.Kits;
import de.craftix.onevone.utils.kit.Kittype;
import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Random;
public class Lobbymanager implements Listener {
public static World getLobby(){
try {
ResultSet rs = MySQL.getData("SELECT * FROM lobby");
rs.next();
return Bukkit.getWorld(rs.getString("World"));
}catch (Exception e) {}
return null;
}
public static Location getSpawn(){
try {
ResultSet rs = MySQL.getData("SELECT * FROM lobby");
rs.next();
String x = rs.getString("x");
String y = rs.getString("y");
String z = rs.getString("z");
String yaw = rs.getString("yaw");
String pitch = rs.getString("pitch");
String world = rs.getString("world");
Location loc = new Location(Bukkit.getWorld(world), Double.valueOf(x), Double.valueOf(y), Double.valueOf(z), Float.valueOf(yaw), Float.valueOf(pitch));
return loc;
}catch (Exception exception){}
return null;
}
public static void giveInv(Player p){
p.getInventory().clear();
p.getInventory().setHelmet(null);
p.getInventory().setChestplate(null);
p.getInventory().setLeggings(null);
p.getInventory().setBoots(null);
p.setHealth(20);
ItemStack selectKit = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta sKitMeta = selectKit.getItemMeta();
sKitMeta.setDisplayName("§eKit wählen");
selectKit.setItemMeta(sKitMeta);
p.getInventory().setItem(4, selectKit);
}
public static Kittype getKittype(Player p){
try {
ResultSet rs = MySQL.getData("SELECT * FROM Kits WHERE UUID = \"" + p.getUniqueId() + "\"");
if (rs.next()){
int kit = rs.getInt("Kit");
return Kits.getTypeByID(kit);
}
}catch (Exception e){}
return Kittype.RANDOM;
}
private static void saveKit(Kittype type, Player p){
MySQL.insert("DELETE FROM Kits WHERE UUID = \"" + p.getUniqueId() + "\"");
MySQL.insert("INSERT INTO Kits (UUID, Kit) VALUES (\"" + p.getUniqueId() + "\", " + Kits.getKitID(type) + ")");
}
@EventHandler
public void onInteract(PlayerInteractEvent e){
if (!e.getPlayer().getWorld().equals(getLobby())) return;
e.setCancelled(true);
if (e.getMaterial().equals(Material.DIAMOND_SWORD)) openKitGUI(e.getPlayer());
}
private static final String guiName = "§6§lKits";
public static void openKitGUI(Player p){
Inventory inv = Bukkit.createInventory(null, 3*9, guiName);
for (int slot = 0; slot < inv.getSize(); slot++){
ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 7);
ItemMeta glassMeta = glass.getItemMeta();
glassMeta.setDisplayName(" ");
glass.setItemMeta(glassMeta);
inv.setItem(slot, glass);
}
ItemStack random = new ItemStack(Material.NETHER_STAR);
ItemMeta randomMeta = random.getItemMeta();
randomMeta.setDisplayName("§eRANDOM");
random.setItemMeta(randomMeta);
inv.setItem(inv.getSize() - 1, random);
int slot = 0;
for (Kit kit : Kits.kits){
inv.setItem(slot, kit.invItem);
slot++;
}
p.openInventory(inv);
}
@EventHandler
public void onInvClick(InventoryClickEvent e){
try {
if (!e.getView().getTitle().equals(guiName)) return;
String item = e.getCurrentItem().getItemMeta().getDisplayName();
if (item.equals("§eRANDOM")){
saveKit(Kittype.RANDOM, (Player) e.getWhoClicked());
e.getWhoClicked().sendMessage("§aDu hast das Kit " + item + " §agewählt");
e.getWhoClicked().closeInventory();
return;
}
for (Kit kit : Kits.kits){
if (kit.invItem.getItemMeta().getDisplayName().equals(item)){
Player p = (Player) e.getWhoClicked();
if (p.hasPermission(kit.permission)){
saveKit(kit.type, (Player) e.getWhoClicked());
e.getWhoClicked().sendMessage("§aDu hast das Kit " + item + " §agewählt");
}else {
p.sendMessage("§cDu darfts dieses Kit nicht benutzen!");
}
e.getWhoClicked().closeInventory();
}
}
}catch (Exception exception) {}
}
@EventHandler
public void onInteractEntity(PlayerInteractEntityEvent e){
if (!e.getPlayer().getWorld().equals(getLobby())) return;
if (e.getPlayer().getInventory().getHeldItemSlot() == 4) return;
if (!(e.getRightClicked() instanceof Player)) return;
Player req = e.getPlayer();
Player t = (Player) e.getRightClicked();
Acception acc = Acception.getAcception(t, req);
if (acc == null) {
if (Acception.getAcception(req, t) == null){
new Acception(req, t);
}
}else {
Acception.acceptions.remove(acc);
ArrayList<Acception> as = new ArrayList<>();
for (Acception a : Acception.acceptions){
if (a.requester == req) as.add(a);
else if (a.target == req) as.add(a);
else if (a.requester == t) as.add(a);
else if (a.target == t) as.add(a);
}
for (Acception a : as){
Acception.acceptions.remove(a);
}
openWorldGUI(t, req);
}
}
public static final String worldGUIName = "§a§lMap auswählen";
public static void openWorldGUI(Player p, Player p2){
Inventory inv = Bukkit.createInventory(null, 3*9, worldGUIName);
for (int slot = 0; slot < inv.getSize(); slot++){
ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 7);
ItemMeta glassMeta = glass.getItemMeta();
glassMeta.setDisplayName(" ");
glass.setItemMeta(glassMeta);
inv.setItem(slot, glass);
}
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
SkullMeta skullMeta = (SkullMeta)skull.getItemMeta();
skullMeta.setOwner(p2.getName());
skullMeta.setDisplayName("§cGegner: " + p2.getDisplayName());
skull.setItemMeta(skullMeta);
inv.setItem(4, skull);
try {
int slot = 9;
for (FightWorld world : FightWorld.getAllWorlds()){
if (slot >= inv.getSize() - 2) break;
ItemStack w = new ItemStack(Material.GRASS);
ItemMeta wMeta = w.getItemMeta();
wMeta.setDisplayName(world.cName);
w.setItemMeta(wMeta);
inv.setItem(slot, w);
slot++;
}
}catch (Exception e) {}
ItemStack random = new ItemStack(Material.NETHER_STAR);
ItemMeta randomMeta = random.getItemMeta();
randomMeta.setDisplayName("§eRANDOM");
random.setItemMeta(randomMeta);
inv.setItem(inv.getSize() - 1, random);
p.openInventory(inv);
}
@EventHandler
public void onWorldGUIClick(InventoryClickEvent e){
try {
if (!e.getView().getTitle().equals(worldGUIName)) return;
e.setCancelled(true);
Player p2 = Bukkit.getPlayer(((SkullMeta)e.getClickedInventory().getItem(4).getItemMeta()).getOwner());
if (e.getCurrentItem().getType().equals(Material.NETHER_STAR)){
ArrayList<FightWorld> worlds = FightWorld.getAllWorlds();
int rand = new Random().nextInt(worlds.size() - 1);
createGame((Player) e.getWhoClicked(), p2, worlds.get(rand));
}
if (!e.getCurrentItem().getType().equals(Material.GRASS)) return;
String map = e.getCurrentItem().getItemMeta().getDisplayName();
createGame((Player) e.getWhoClicked(), p2, FightWorld.getWorld(map));
}catch (Exception exception){}
}
public static void createGame(Player p1, Player p2, FightWorld preset){
Gamemanager.addGame(p1, p2, preset);
}
}
class Acception {
public static ArrayList<Acception> acceptions = new ArrayList<>();
public static Acception getAcception(Player req, Player t){
for (Acception a : acceptions){
if (a.target == t && a.requester == req) return a;
}
return null;
}
public Player requester;
public Player target;
public Acception(Player req, Player t){
requester = req;
target = t;
t.sendMessage("§6" + requester.getDisplayName() + " §ahat dich herausgefordert. Klicke ihn an, um die Herausforderung anzunehmen");
req.sendMessage("§aDu hast §6" + target.getDisplayName() + " §aherausgefordert. Warte, bis er sie annimmt...");
acceptions.add(this);
}
}

View File

@@ -0,0 +1,23 @@
package de.craftix.onevone.utils.kit;
import org.bukkit.inventory.ItemStack;
import java.util.HashMap;
public class Kit {
public HashMap<Integer, ItemStack> items = new HashMap<>();
public ItemStack helmet;
public ItemStack chestplate;
public ItemStack leggins;
public ItemStack boots;
public Kittype type;
public ItemStack invItem;
public String permission;
public Kit(Kittype type){
this.type = type;
permission = "1vs1.kit." + type.name().toLowerCase();
}
}

View File

@@ -0,0 +1,165 @@
package de.craftix.onevone.utils.kit;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Kits {
public static ArrayList<Kit> kits = new ArrayList<>();
public static void setup(){
//UHC
Kit uhc = new Kit(Kittype.UHC);
uhc.items.put(6, new ItemStack(Material.SANDSTONE, 64));
uhc.items.put(7, new ItemStack(Material.SANDSTONE, 64));
uhc.items.put(4, new ItemStack(Material.LAVA_BUCKET));
uhc.items.put(13, new ItemStack(Material.LAVA_BUCKET));
uhc.items.put(5, new ItemStack(Material.WATER_BUCKET));
uhc.items.put(14, new ItemStack(Material.WATER_BUCKET));
uhc.items.put(1, new ItemStack(Material.BOW));
uhc.items.put(9, new ItemStack(Material.ARROW, 16));
ItemStack uhcSword = new ItemStack(Material.DIAMOND_SWORD);
uhcSword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
uhc.items.put(0, uhcSword);
uhc.items.put(3, new ItemStack(Material.GOLDEN_APPLE, 4));
uhc.items.put(8, new ItemStack(Material.COOKED_BEEF, 32));
uhc.items.put(2, new ItemStack(Material.FISHING_ROD));
uhc.helmet = new ItemStack(Material.IRON_HELMET);
uhc.chestplate = new ItemStack(Material.IRON_CHESTPLATE);
uhc.leggins = new ItemStack(Material.IRON_LEGGINGS);
uhc.boots = new ItemStack(Material.IRON_BOOTS);
uhc.invItem = createInvItem(Material.GOLDEN_APPLE, "§eUHC");
kits.add(uhc);
//OP
Kit op = new Kit(Kittype.OP);
ItemStack opHelmet = new ItemStack(Material.DIAMOND_HELMET);
opHelmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
ItemStack opChestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
opChestplate.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
ItemStack opLeggins = new ItemStack(Material.DIAMOND_LEGGINGS);
opLeggins.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
ItemStack opBoots = new ItemStack(Material.DIAMOND_BOOTS);
opBoots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
op.helmet = opHelmet;
op.chestplate = opChestplate;
op.leggins = opLeggins;
op.boots = opBoots;
op.items.put(8, new ItemStack(Material.COOKED_BEEF, 32));
ItemStack opSword = new ItemStack(Material.WOOD_SWORD);
opSword.addEnchantment(Enchantment.DURABILITY, 1);
op.items.put(0, opSword);
op.invItem = createInvItem(Material.COMMAND, "§cOP");
kits.add(op);
//SG
Kit sg = new Kit(Kittype.SG);
sg.helmet = new ItemStack(Material.IRON_HELMET);
sg.chestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
sg.leggins = new ItemStack(Material.DIAMOND_LEGGINGS);
sg.boots = new ItemStack(Material.IRON_BOOTS);
ItemStack sgSword = new ItemStack(Material.IRON_SWORD);
sgSword.addEnchantment(Enchantment.DAMAGE_ALL, 3);
sg.items.put(0, sgSword);
sg.items.put(8, new ItemStack(Material.COOKED_BEEF, 32));
sg.items.put(4, new ItemStack(Material.GOLDEN_APPLE, 4));
sg.items.put(2, new ItemStack(Material.FISHING_ROD));
ItemStack sgBow = new ItemStack(Material.BOW);
sgBow.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
sg.items.put(1, sgBow);
sg.items.put(9, new ItemStack(Material.ARROW, 4));
sg.invItem = createInvItem(Material.FISHING_ROD, "§eSG");
kits.add(sg);
//TANK
Kit tank = new Kit(Kittype.TANK);
ItemStack tankHelmet = new ItemStack(Material.IRON_HELMET);
tankHelmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
ItemStack tankChestplate = new ItemStack(Material.IRON_CHESTPLATE);
tankChestplate.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
ItemStack tankLeggins = new ItemStack(Material.IRON_LEGGINGS);
tankLeggins.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
ItemStack tankBoots = new ItemStack(Material.IRON_BOOTS);
tankBoots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
tank.helmet = tankHelmet;
tank.chestplate = tankChestplate;
tank.leggins = tankLeggins;
tank.boots = tankBoots;
tank.items.put(8, new ItemStack(Material.COOKED_BEEF, 32));
ItemStack tankSword = new ItemStack(Material.STONE_SWORD);
tankSword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
tank.items.put(0, tankSword);
tank.invItem = createInvItem(Material.IRON_CHESTPLATE, "§eTANK");
kits.add(tank);
}
public static Kit getKit(Kittype type){
for (Kit kit : kits){
if (kit.type == type) return kit;
}
return null;
}
public static Kittype getTypeByID(int id){
//0 = RANDOM
if (id == 0) return Kittype.RANDOM;
//1 = UHC
if (id == 1) return Kittype.UHC;
//2 = OP
if (id == 2) return Kittype.OP;
//3 = SG
if (id == 3) return Kittype.SG;
//4 = TANK
if (id == 4) return Kittype.TANK;
return Kittype.RANDOM;
}
public static int getKitID(Kittype type){
if (type == Kittype.RANDOM) return 0;
if (type == Kittype.UHC) return 1;
if (type == Kittype.OP) return 2;
if (type == Kittype.SG) return 3;
if (type == Kittype.TANK) return 4;
return 0;
}
private static void setItems(Kit kit, Player p){
p.getInventory().setHelmet(kit.helmet);
p.getInventory().setChestplate(kit.chestplate);
p.getInventory().setLeggings(kit.leggins);
p.getInventory().setBoots(kit.boots);
for (int slot : kit.items.keySet()){
p.getInventory().setItem(slot, kit.items.get(slot));
}
p.getInventory().setHeldItemSlot(0);
}
public static void preparePlayer(Kittype kit, Player p){
p.getInventory().setHelmet(null);
p.getInventory().setChestplate(null);
p.getInventory().setLeggings(null);
p.getInventory().setBoots(null);
p.getInventory().clear();
if (kit == Kittype.RANDOM){
List<Kit> allowedKits = new ArrayList<>();
for (Kit k : kits){
if (p.hasPermission(k.permission)) allowedKits.add(k);
}
int rand = new Random().nextInt(allowedKits.size() - 1);
setItems(allowedKits.get(rand), p);
}else setItems(getKit(kit), p);
}
private static ItemStack createInvItem(Material type, String name){
ItemStack item = new ItemStack(type);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(name);
item.setItemMeta(meta);
return item;
}
}

View File

@@ -0,0 +1,9 @@
package de.craftix.onevone.utils.kit;
public enum Kittype {
UHC,
OP,
SG,
TANK,
RANDOM
}

View File

@@ -0,0 +1,11 @@
name: 1vs1
version: 1.0
api-version: 1.8
main: de.craftix.onevone.Main
commands:
addworld:
setspawn:
saveworld:
setlobby:
stats:

3
Plugins/Old/1vs1/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="1vs1">
<output-path>S:/Plugins</output-path>
<root id="archive" name="1vs1.jar">
<element id="module-output" name="1vs1" />
</root>
</artifact>
</component>

7
Plugins/Old/1vs1/.idea/discord.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

View File

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="CloudNetAPI">
<CLASSES>
<root url="jar://S:/Plugins/CloudNetAPI.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="CoinAPI">
<CLASSES>
<root url="jar://S:/Plugins/CoinAPI.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="spigot 1.8.8">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../Spigot Versions/spigot 1.8.8.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../Spigot Versions/spigot 1.8.8.jar!/" />
</SOURCES>
</library>
</component>

11
Plugins/Old/1vs1/.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="1">
<item index="0" class="java.lang.String" itemvalue="org.bukkit.event.EventHandler" />
</list>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
Plugins/Old/1vs1/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/1vs1.iml" filepath="$PROJECT_DIR$/1vs1.iml" />
</modules>
</component>
</project>

23
Plugins/Old/1vs1/1vs1.iml Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="spigot 1.8.8" level="project" />
<orderEntry type="library" name="CoinAPI" level="project" />
<orderEntry type="library" name="CloudNetAPI" level="project" />
</component>
</module>

View File

@@ -0,0 +1,9 @@
name: 1vs1
version: 1.8.8
main: de.craftix.pvp.general.Main
commands:
setlobby:
setspec:
addspawn:
start:

View File

@@ -0,0 +1,27 @@
package de.craftix.pvp.commands;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamemanager;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class AddspawnCmd implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
if (sender instanceof Player){
if (sender.hasPermission("1vs1.setup")){
Player p = (Player)sender;
if (Main.config.contains("Spawn.1.World")){
Gamemanager.saveSpawn(p.getLocation(), 2);
p.sendMessage("§aDer Spawn 2 wurde erfolgreich gesetzt");
}else {
Gamemanager.saveSpawn(p.getLocation(), 1);
p.sendMessage("§aDer Spawn 1 wurde erfolgreich gesetzt");
}
}
}
return true;
}
}

View File

@@ -0,0 +1,21 @@
package de.craftix.pvp.commands;
import de.craftix.pvp.manager.Gamemanager;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SetlobbyCmd implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (sender instanceof Player){
if (sender.hasPermission("1vs1.setup")){
Player p = (Player)sender;
Gamemanager.saveLobby(p.getLocation());
p.sendMessage("§aDie Lobby wurde erfolgreich gesetzt");
}
}
return true;
}
}

View File

@@ -0,0 +1,21 @@
package de.craftix.pvp.commands;
import de.craftix.pvp.manager.Gamemanager;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SetspecCmd implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
if (sender instanceof Player){
if (sender.hasPermission("1vs1.setup")){
Player p = (Player)sender;
Gamemanager.saveSpec(p.getLocation());
p.sendMessage("§aDer Spectatorspawn wurde erfolgreich gesetzt");
}
}
return true;
}
}

View File

@@ -0,0 +1,43 @@
package de.craftix.pvp.commands;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamemanager;
import de.craftix.pvp.manager.Gamestates;
import de.craftix.pvp.manager.Kitmanager;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class StartCmd implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {
if (sender.hasPermission("1vs1.start")){
if (Main.state != Gamestates.LOBBY) return true;
if (Bukkit.getOnlinePlayers().size() < 2) return true;
Bukkit.getScheduler().cancelAllTasks();
Main.state = Gamestates.INGAME;
Player p = Gamemanager.inGame.get(0);
p.teleport(Gamemanager.getSpawn(1));
p = Gamemanager.inGame.get(1);
p.teleport(Gamemanager.getSpawn(2));
boolean p1 = false, p2 = false;
for (Kitmanager k : Gamemanager.kitmanagers){
if (k.p.equals(Gamemanager.inGame.get(0))) p1 = true;
if (k.p.equals(Gamemanager.inGame.get(1))) p2 = true;
}
if (p1 == false){
new Kitmanager(Gamemanager.inGame.get(0), 2);
}
if (p2 == false){
new Kitmanager(Gamemanager.inGame.get(1), 2);
}
for (Kitmanager k : Gamemanager.kitmanagers){
k.giveItems();
}
}
return true;
}
}

View File

@@ -0,0 +1,58 @@
package de.craftix.pvp.general;
import de.craftix.pvp.commands.*;
import de.craftix.pvp.listener.*;
import de.craftix.pvp.manager.*;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
private static Main plugin;
public static FileConfiguration config;
public static Gamestates state;
public static boolean isConfigured;
@Override
public void onEnable() {
//Listener
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new onDamage(), this);
pm.registerEvents(new onJoin(), this);
pm.registerEvents(new onQuit(), this);
pm.registerEvents(new onBuild(), this);
pm.registerEvents(new onDeath(), this);
pm.registerEvents(new onDrop(), this);
pm.registerEvents(new LobbyItems(), this);
pm.registerEvents(new onFood(), this);
//Commands
getCommand("setlobby").setExecutor(new SetlobbyCmd());
getCommand("addspawn").setExecutor(new AddspawnCmd());
getCommand("setspec").setExecutor(new SetspecCmd());
getCommand("start").setExecutor(new StartCmd());
plugin = this;
config = this.getConfig();
state = Gamestates.LOBBY;
checkIfConfigured();
}
@Override
public void onDisable() {
}
public static Main getPlugin(){
return plugin;
}
public void checkIfConfigured(){
if (config.contains(("Lobby.World")) && config.contains("Spawn.1.World") && config.contains("Spawn.2.World") && config.contains("Spec.World")){
isConfigured = true;
}else isConfigured = false;
}
}

View File

@@ -0,0 +1,31 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamestates;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerInteractEvent;
public class onBuild implements Listener {
@EventHandler
public void onBuildEvent(BlockPlaceEvent event){
if (Main.state == Gamestates.INGAME) return;
event.setCancelled(true);
}
@EventHandler
public void onBreakEvent(BlockBreakEvent event){
if (Main.state == Gamestates.INGAME) return;
event.setCancelled(true);
}
@EventHandler
public void onInteractEvent(PlayerInteractEvent event){
if (Main.state == Gamestates.INGAME) return;
event.setCancelled(true);
}
}

View File

@@ -0,0 +1,21 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamestates;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
public class onDamage implements Listener {
@EventHandler
public void onDamageEvent(EntityDamageEvent event){
if (event.getEntity() instanceof Player){
if (Main.state == Gamestates.LOBBY || Main.state == Gamestates.RESTART){
event.setCancelled(true);
}
}
}
}

View File

@@ -0,0 +1,51 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamemanager;
import de.craftix.pvp.manager.Gamestates;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
public class onDeath implements Listener {
@EventHandler
public void onDeathEvent(PlayerDeathEvent event){
for (Player all : Bukkit.getOnlinePlayers()){
all.getInventory().clear();
all.getInventory().setBoots(null);
all.getInventory().setLeggings(null);
all.getInventory().setChestplate(null);
all.getInventory().setHelmet(null);
}
event.setDeathMessage(null);
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "kill @e[type=Item]");
Player p = event.getEntity();
if (Gamemanager.inGame.contains(p)){
Gamemanager.looser = p;
Gamemanager.inGame.remove(p);
Gamemanager.winner = Gamemanager.inGame.get(0);
Main.state = Gamestates.RESTART;
Gamemanager.winner.teleport(Gamemanager.getLobby());
Gamemanager.looser.teleport(Gamemanager.getLobby());
Bukkit.broadcastMessage("§aHerzlichen Glückwunsch §6" + Gamemanager.winner.getName());
Gamemanager.startTimer();
Gamemanager.giveRewards(Gamemanager.winner);
for (Player a : Bukkit.getServer().getOnlinePlayers()){
a.setHealth(20);
a.setFoodLevel(25);
a.getInventory().clear();
a.getInventory().setBoots(null);
a.getInventory().setLeggings(null);
a.getInventory().setChestplate(null);
a.getInventory().setHelmet(null);
a.teleport(Gamemanager.getLobby());
a.setGameMode(GameMode.SURVIVAL);
}
}
}
}

View File

@@ -0,0 +1,24 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamestates;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
public class onDrop implements Listener {
@EventHandler
public void onDropEvent(PlayerDropItemEvent event){
if (Main.state != Gamestates.LOBBY) return;
event.setCancelled(true);
}
@EventHandler
public void onInvClickEvent(InventoryClickEvent event){
if (Main.state != Gamestates.LOBBY) return;
event.setCancelled(true);
}
}

View File

@@ -0,0 +1,21 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamestates;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.FoodLevelChangeEvent;
public class onFood implements Listener {
@EventHandler
public void onFoodEvent(FoodLevelChangeEvent event){
if (Main.state != Gamestates.INGAME){
event.setCancelled(true);
Player p = (Player)event.getEntity();
p.setFoodLevel(20);
}
}
}

View File

@@ -0,0 +1,60 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamemanager;
import de.craftix.pvp.manager.Gamestates;
import de.craftix.pvp.manager.LobbyItems;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
public class onJoin implements Listener {
@EventHandler
public void onJoinEvent(PlayerJoinEvent event){
if (!Main.isConfigured){
Bukkit.broadcastMessage("§7-- §cBitte konfiguriere das Plugin §7 --");
Bukkit.broadcastMessage("§7-- §c/setlobby §7: §aSetze die Lobby §7 --");
Bukkit.broadcastMessage("§7-- §c/addspawn §7: §aSetze einen Spawn §7 --");
Bukkit.broadcastMessage("§7-- §c/setspec §7: §aSetze den Spectatorspawn §7--");
Bukkit.broadcastMessage("§7-- §arestarte den Server §7 --");
Bukkit.broadcastMessage("§7-- §aPlugin by §6§lTube Craft §7 --");
return;
}
event.setJoinMessage("§b1vs1 §7| §aDer Spieler §6" + event.getPlayer().getName() + " §ahat das Spiel betreten");
Player p = event.getPlayer();
p.setHealth(20);
p.setFoodLevel(25);
p.getInventory().clear();
p.getInventory().setBoots(null);
p.getInventory().setLeggings(null);
p.getInventory().setChestplate(null);
p.getInventory().setHelmet(null);
if (Main.state == Gamestates.LOBBY){
if (Bukkit.getServer().getOnlinePlayers().size() <= 2){
p.teleport(Gamemanager.getLobby());
p.setGameMode(GameMode.SURVIVAL);
Gamemanager.inGame.add(p);
if (Gamemanager.inGame.size() == 2){
Gamemanager.startTimer();
}
LobbyItems.giveInventory(p);
}else {
p.setGameMode(GameMode.SPECTATOR);
Gamemanager.spectator.add(p);
}
}
if (Main.state == Gamestates.INGAME){
p.teleport(Gamemanager.getSpec());
p.setGameMode(GameMode.SPECTATOR);
Gamemanager.spectator.add(p);
}
if (Main.state == Gamestates.RESTART){
p.kickPlayer("§cDer Server startet gerade neu!");
}
}
}

View File

@@ -0,0 +1,50 @@
package de.craftix.pvp.listener;
import de.craftix.pvp.general.Main;
import de.craftix.pvp.manager.Gamemanager;
import de.craftix.pvp.manager.Gamestates;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
public class onQuit implements Listener {
@EventHandler
public void onQuitEvent(PlayerQuitEvent event){
Player p = event.getPlayer();
event.setQuitMessage("§b1vs1 §7| §cDer Spieler §6" + event.getPlayer().getName() + " §chat das Spiel verlassen");
if (Main.state == Gamestates.LOBBY){
Gamemanager.stopTimer();
}
if (Main.state == Gamestates.INGAME){
if (Gamemanager.inGame.contains(p)){
Gamemanager.looser = p;
Gamemanager.inGame.remove(p);
Gamemanager.winner = Gamemanager.inGame.get(0);
Main.state = Gamestates.RESTART;
Gamemanager.winner.teleport(Gamemanager.getLobby());
Gamemanager.looser.teleport(Gamemanager.getLobby());
Bukkit.broadcastMessage("§aHerzlichen Glückwunsch §6" + Gamemanager.winner.getName());
Gamemanager.startTimer();
Gamemanager.giveRewards(Gamemanager.winner);
for (Player a : Bukkit.getServer().getOnlinePlayers()){
a.setHealth(20);
a.setFoodLevel(25);
a.getInventory().clear();
a.getInventory().setBoots(null);
a.getInventory().setLeggings(null);
a.getInventory().setChestplate(null);
a.getInventory().setHelmet(null);
a.teleport(Gamemanager.getLobby());
a.setGameMode(GameMode.SURVIVAL);
}
}
}
Gamemanager.inGame.remove(p);
Gamemanager.spectator.remove(p);
}
}

View File

@@ -0,0 +1,160 @@
package de.craftix.pvp.manager;
import de.craftix.pvp.general.Main;
import de.dytanic.cloudnet.api.CloudAPI;
import de.dytanic.cloudnet.bridge.CloudServer;
import de.dytanic.cloudnet.lib.cloudserver.CloudServerMeta;
import de.dytanic.cloudnet.lib.server.ServerState;
import de.welovemcskript.capi.CoinAPI;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Random;
public class Gamemanager {
public static Player winner;
public static Player looser;
public static ArrayList<Player> inGame = new ArrayList<>();
public static ArrayList<Player> spectator = new ArrayList<>();
public static ArrayList<Kitmanager> kitmanagers = new ArrayList<>();
public static int cache;
public static Location getLobby(){
FileConfiguration config = Main.config;
World world = Bukkit.getWorld(config.getString("Lobby.World"));
double x = config.getDouble("Lobby.X");
double y = config.getDouble("Lobby.Y");
double z = config.getDouble("Lobby.Z");
float yaw = (float) config.getDouble("Lobby.Yaw");
float pitch = (float) config.getDouble("Lobby.Pitch");
return new Location(world, x, y, z, yaw, pitch);
}
public static Location getSpec(){
FileConfiguration config = Main.config;
World world = Bukkit.getWorld(config.getString("Spec.World"));
double x = config.getDouble("Spec.X");
double y = config.getDouble("Spec.Y");
double z = config.getDouble("Spec.Z");
float yaw = (float) config.getDouble("Spec.Yaw");
float pitch = (float) config.getDouble("Spec.Pitch");
return new Location(world, x, y, z, yaw, pitch);
}
public static Location getSpawn(int id){
FileConfiguration config = Main.config;
World world = Bukkit.getWorld(config.getString("Spawn." + id +".World"));
double x = config.getDouble("Spawn." + id +".X");
double y = config.getDouble("Spawn." + id +".Y");
double z = config.getDouble("Spawn." + id +".Z");
float yaw = (float) config.getDouble("Spawn." + id +".Yaw");
float pitch = (float) config.getDouble("Spawn." + id +".Pitch");
return new Location(world, x, y, z, yaw, pitch);
}
public static void saveLobby(Location loc){
FileConfiguration config = Main.config;
config.set("Lobby.World", loc.getWorld().getName());
config.set("Lobby.X", loc.getBlockX() + 0.5);
config.set("Lobby.Y", loc.getBlockY() + 2);
config.set("Lobby.Z", loc.getBlockZ() + 0.5);
config.set("Lobby.Yaw", loc.getYaw());
config.set("Lobby.Pitch", loc.getPitch());
Main.getPlugin().saveConfig();
}
public static void saveSpec(Location loc){
FileConfiguration config = Main.config;
config.set("Spec.World", loc.getWorld().getName());
config.set("Spec.X", loc.getBlockX() + 0.5);
config.set("Spec.Y", loc.getBlockY());
config.set("Spec.Z", loc.getBlockZ() + 0.5);
config.set("Spec.Yaw", loc.getYaw());
config.set("Spec.Pitch", loc.getPitch());
Main.getPlugin().saveConfig();
}
public static void saveSpawn(Location loc, int id){
FileConfiguration config = Main.config;
config.set("Spawn." + id +".World", loc.getWorld().getName());
config.set("Spawn." + id +".X", loc.getBlockX() + 0.5);
config.set("Spawn." + id +".Y", loc.getBlockY() + 1);
config.set("Spawn." + id +".Z", loc.getBlockZ() + 0.5);
config.set("Spawn." + id +".Yaw", loc.getYaw());
config.set("Spawn." + id +".Pitch", loc.getPitch());
Main.getPlugin().saveConfig();
}
public static void startTimer(){
cache = 0;
int maxLobby = 60;
int maxReset = 15;
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), () -> {
if (Main.state == Gamestates.LOBBY && cache == maxLobby){
stopTimer();
Main.state = Gamestates.INGAME;
Player p = Gamemanager.inGame.get(0);
p.teleport(Gamemanager.getSpawn(1));
p = Gamemanager.inGame.get(1);
p.teleport(Gamemanager.getSpawn(2));
boolean p1 = false, p2 = false;
for (Kitmanager k : kitmanagers){
if (k.p.equals(inGame.get(0))) p1 = true;
if (k.p.equals(inGame.get(1))) p2 = true;
}
if (!p1){
new Kitmanager(inGame.get(0), 2);
}
if (!p2){
new Kitmanager(inGame.get(1), 2);
}
for (Kitmanager k : kitmanagers){
k.giveItems();
}
}
if (Main.state == Gamestates.RESTART && cache == maxReset){
stopTimer();
for (Player a : Bukkit.getServer().getOnlinePlayers()) {
a.kickPlayer(null);
}
Bukkit.getServer().shutdown();
}
if (Main.state == Gamestates.LOBBY){
int ram = maxLobby - cache;
switch (ram){
case 60: case 30: case 15: case 10: case 5: case 4: case 3: case 2: case 1: case 0:
Bukkit.broadcastMessage("§aSpiel startet in §6" + ram);
break;
}
}else if (Main.state == Gamestates.RESTART){
int ram = maxReset - cache;
switch (ram){
case 15: case 10: case 5: case 4: case 3: case 2: case 1: case 0:
Bukkit.broadcastMessage("§aServer stoppt in §6" + ram);
break;
}
}
cache++;
},0, 20);
}
public static void stopTimer(){
Bukkit.getScheduler().cancelAllTasks();
Bukkit.broadcastMessage("§aDer Timer wurde gestopt");
}
public static void giveRewards(Player p){
CoinAPI.addMoney(p, 10);
p.sendMessage("§6+10 §aCoins");
}
}

View File

@@ -0,0 +1,7 @@
package de.craftix.pvp.manager;
public enum Gamestates {
LOBBY,
INGAME,
RESTART
}

View File

@@ -0,0 +1,140 @@
package de.craftix.pvp.manager;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemFactory;
import org.bukkit.inventory.ItemStack;
import java.util.Random;
public class Kitmanager {
//0 = UHC
//1 = SOUP
//2 = RANDOM
//3 = SG
//4 = TANK
public Player p;
public int kitID;
public Kitmanager(Player p, int id){
this.p = p;
kitID = id;
Gamemanager.kitmanagers.add(this);
}
public void giveItems(){
p.getInventory().clear();
if (kitID == 0){ //UHC
//Blöcke 128
p.getInventory().setItem(6, new ItemStack(Material.SANDSTONE, 64));
p.getInventory().setItem(7, new ItemStack(Material.SANDSTONE, 64));
//Lava 2
p.getInventory().setItem(4, new ItemStack(Material.LAVA_BUCKET));
p.getInventory().setItem(13, new ItemStack(Material.LAVA_BUCKET));
//Wasser 2
p.getInventory().setItem(5, new ItemStack(Material.WATER_BUCKET));
p.getInventory().setItem(14, new ItemStack(Material.WATER_BUCKET));
//Bogen | 16 Pfeile
p.getInventory().setItem(1, new ItemStack(Material.BOW));
p.getInventory().setItem(9, new ItemStack(Material.ARROW, 16));
//Dia Schwert Schärfe 1
ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
sword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
p.getInventory().setItem(0, sword);
//Eisenrüstung
p.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
p.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE));
p.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS));
p.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS));
//Goldäpfel 4
p.getInventory().setItem(3, new ItemStack(Material.GOLDEN_APPLE, 4));
//Essen 32
p.getInventory().setItem(8, new ItemStack(Material.COOKED_BEEF, 32));
//Angel
p.getInventory().setItem(2, new ItemStack(Material.FISHING_ROD));
}
if (kitID == 1){ //OP
//Diamantrüstung Protection 2
ItemStack helmet = new ItemStack(Material.DIAMOND_HELMET);
helmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
ItemStack chestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
chestplate.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
ItemStack leggins = new ItemStack(Material.DIAMOND_LEGGINGS);
leggins.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
boots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
p.getInventory().setHelmet(helmet);
p.getInventory().setChestplate(chestplate);
p.getInventory().setLeggings(leggins);
p.getInventory().setBoots(boots);
//Essen
p.getInventory().setItem(8, new ItemStack(Material.COOKED_BEEF, 32));
//Holzschwert Unbreaking 1
ItemStack sw = new ItemStack(Material.WOOD_SWORD);
sw.addEnchantment(Enchantment.DURABILITY, 1);
p.getInventory().setItem(0, sw);
}
if (kitID == 2){ //RANDOM
Random rand = new Random();
int ram = rand.nextInt(3);
if (ram == 2) ram = 4;
kitID = ram;
giveItems();
}
if (kitID == 3){ //SG
//Rüstung Dia/Eisen
p.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET));
p.getInventory().setChestplate(new ItemStack(Material.DIAMOND_CHESTPLATE));
p.getInventory().setLeggings(new ItemStack(Material.DIAMOND_LEGGINGS));
p.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS));
//Eisenschwert Schärfe 3
ItemStack sword = new ItemStack(Material.IRON_SWORD);
sword.addEnchantment(Enchantment.DAMAGE_ALL, 3);
p.getInventory().setItem(0, sword);
//Essen 32
p.getInventory().setItem(8, new ItemStack(Material.COOKED_BEEF, 32));
//Goldäpfel 4
p.getInventory().setItem(4, new ItemStack(Material.GOLDEN_APPLE, 4));
//Angel
p.getInventory().setItem(2, new ItemStack(Material.FISHING_ROD));
//Bogen Power 1 | 4 Pfeile
ItemStack bow = new ItemStack(Material.BOW);
bow.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
p.getInventory().setItem(1, bow);
p.getInventory().setItem(9, new ItemStack(Material.ARROW, 4));
}
if (kitID == 4){ //TANK
//Eisenrüstung Protection und so
ItemStack helmet = new ItemStack(Material.IRON_HELMET);
helmet.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
ItemStack chestplate = new ItemStack(Material.IRON_CHESTPLATE);
chestplate.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
ItemStack leggins = new ItemStack(Material.IRON_LEGGINGS);
leggins.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
ItemStack boots = new ItemStack(Material.IRON_BOOTS);
boots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
p.getInventory().setHelmet(helmet);
p.getInventory().setChestplate(chestplate);
p.getInventory().setLeggings(leggins);
p.getInventory().setBoots(boots);
//Essen 10
p.getInventory().setItem(8, new ItemStack(Material.COOKED_BEEF, 32));
//Steinschwert Schärfe 1
ItemStack sword = new ItemStack(Material.STONE_SWORD);
sword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
p.getInventory().setItem(0, sword);
}
}
}

View File

@@ -0,0 +1,93 @@
package de.craftix.pvp.manager;
import de.craftix.pvp.general.Main;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class LobbyItems implements Listener {
private static ItemStack kits;
public static void giveInventory(Player p){
kits = new ItemStack(Material.CHEST);
ItemMeta kitsMeta = kits.getItemMeta();
kitsMeta.setDisplayName("§aKits");
kits.setItemMeta(kitsMeta);
p.getInventory().setItem(4, kits);
}
@EventHandler
public void onKlick(PlayerInteractEvent event){
if (Main.state != Gamestates.LOBBY) return;
if (event.getItem() == null) return;
if (event.getItem().getItemMeta().getDisplayName().equals("§aKits")) openInventory(event.getPlayer());
}
private ItemStack uhc;
private ItemStack op;
private ItemStack sg;
private ItemStack tank;
private ItemStack random;
private void openInventory(Player p){
Inventory inv = Bukkit.createInventory(null, 9, "§aKits");
//UHC
uhc = new ItemStack(Material.GOLDEN_APPLE);
ItemMeta uhcMeta = uhc.getItemMeta();
uhcMeta.setDisplayName("§6UHC");
uhc.setItemMeta(uhcMeta);
//Coming Soon
op = new ItemStack(Material.COMMAND);
ItemMeta csMeta = op.getItemMeta();
csMeta.setDisplayName("§6OP");
op.setItemMeta(csMeta);
//SG
sg = new ItemStack(Material.FISHING_ROD);
ItemMeta sgMeta = sg.getItemMeta();
sgMeta.setDisplayName("§6SG");
sg.setItemMeta(sgMeta);
//TANK
tank = new ItemStack(Material.IRON_CHESTPLATE);
ItemMeta tankMeta = tank.getItemMeta();
tankMeta.setDisplayName("§6TANK");
tank.setItemMeta(tankMeta);
//RANDOM
random = new ItemStack(Material.NETHER_STAR);
ItemMeta randomMeta = random.getItemMeta();
randomMeta.setDisplayName("§6RANDOM");
random.setItemMeta(randomMeta);
inv.setItem(0, uhc);
inv.setItem(2, op);
inv.setItem(4, random);
inv.setItem(6, sg);
inv.setItem(8, tank);
p.openInventory(inv);
}
@EventHandler
public void onInvClick(InventoryClickEvent event){
if (Main.state != Gamestates.LOBBY) return;
if (!Gamemanager.inGame.contains(event.getWhoClicked())) return;
if (!event.getClickedInventory().getTitle().equals("§aKits")) return;
int kitID = event.getSlot() / 2;
for (Kitmanager k : Gamemanager.kitmanagers){
if (k.p == event.getWhoClicked()) Gamemanager.kitmanagers.remove(k);
}
new Kitmanager((Player) event.getWhoClicked(), kitID);
event.getWhoClicked().sendMessage("§aDu hast das Kit §6" + event.getCurrentItem().getItemMeta().getDisplayName() + " §aausgewählt");
}
}

View File

@@ -0,0 +1,9 @@
name: 1vs1
version: 1.8.8
main: de.craftix.pvp.general.Main
commands:
setlobby:
setspec:
addspawn:
start:

113
Plugins/Old/API/.gitignore vendored Normal file
View File

@@ -0,0 +1,113 @@
# User-specific stuff
.idea/
*.iml
*.ipr
*.iws
# IntelliJ
out/
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
.flattened-pom.xml
# Common working directory
run/

74
Plugins/Old/API/pom.xml Normal file
View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.craftix</groupId>
<artifactId>API</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>API</name>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<repositories>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.12-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,42 @@
package de.craftix.api;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
public final class API extends JavaPlugin {
private static API instance;
private static final ArrayList<MySQL> sqlConnections = new ArrayList<>();
private static boolean spawnCmd = true;
private static boolean gamemodeCmd = true;
private static boolean defaultListener = false;
public static void setSpawnCmd(boolean spawnCmd) {
API.spawnCmd = spawnCmd;
}
public static void setGamemodeCmd(boolean gamemodeCmd) {
API.gamemodeCmd = gamemodeCmd;
}
public static void setDefaultListener(boolean defaultListener) {
API.defaultListener = defaultListener;
}
@Override
public void onEnable() {
instance = this;
Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> {
if (spawnCmd) new Spawn(this);
if (gamemodeCmd) new Gamemode(this);
if (defaultListener) Bukkit.getPluginManager().registerEvents(new DefaultListener(), this);
}, 20);
}
@Override
public void onDisable() {
for (MySQL all : sqlConnections) all.disconnect();
}
public static API getInstance() { return instance; }
public static ArrayList<MySQL> getSqlConnections() { return sqlConnections; }
}

View File

@@ -0,0 +1,72 @@
package de.craftix.api;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import java.util.ArrayList;
public class CfgLocationManager {
protected FileConfiguration config;
protected String prefix;
public CfgLocationManager(FileConfiguration config, String prefix) {
this.config = config;
this.prefix = prefix;
}
private int getNextID() {
int id = 0;
while (id <= 100) {
if (config.contains(prefix + "." + id)) id++;
else return id;
}
return -1;
}
public void setLocation(Location loc) {
int id = getNextID();
String currPrefix = prefix + "." + id + ".";
config.set(currPrefix + ".World", loc.getWorld().getName());
config.set(currPrefix + ".X", loc.getX());
config.set(currPrefix + ".Y", loc.getY());
config.set(currPrefix + ".Z", loc.getZ());
config.set(currPrefix + ".Yaw", loc.getYaw());
config.set(currPrefix + ".Pitch", loc.getPitch());
try { config.save(config.getCurrentPath()); }
catch (Exception e) { e.printStackTrace(); }
}
public Location getLocation(int id) {
if (!config.contains(prefix + "." + id)) return null;
World w = Bukkit.getWorld(config.getString(prefix + "." + id + ".World"));
double x = config.getDouble(prefix + "." + id + ".X");
double y = config.getDouble(prefix + "." + id + ".Y");
double z = config.getDouble(prefix + "." + id + ".Z");
float yaw = Float.parseFloat(config.getString(prefix + "." + id + ".Yaw"));
float pitch = Float.parseFloat(config.getString(prefix + "." + id + ".Pitch"));
return new Location(w, x, y, z, yaw, pitch);
}
public Location[] getLocations(int... ids) {
Location[] locs = new Location[ids.length];
for (int i = 0; i < ids.length; i++) {
locs[i] = getLocation(ids[i]);
}
return locs;
}
public Location[] getLocations() {
ArrayList<Location> locs = new ArrayList<>();
int id = -1;
while (id <= 100) {
id++;
if (getLocation(id) == null) continue;
locs.add(getLocation(id));
}
return locs.toArray(new Location[0]);
}
}

View File

@@ -0,0 +1,44 @@
package de.craftix.api;
import net.minecraft.server.v1_8_R3.IChatBaseComponent;
import net.minecraft.server.v1_8_R3.PacketPlayOutChat;
import net.minecraft.server.v1_8_R3.PacketPlayOutTitle;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
public class Contact {
public static void sendActionBar(Player p, String msg) {
IChatBaseComponent base = IChatBaseComponent.ChatSerializer.a("{\"text\": \"\"}").a(msg);
PacketPlayOutChat chat = new PacketPlayOutChat(base, (byte) 2);
CraftPlayer cp = (CraftPlayer)p;
cp.getHandle().playerConnection.sendPacket(chat);
}
public static void sendTitle(Player p, String title, int fadeIn, int stay, int fadeOut) {
IChatBaseComponent base = IChatBaseComponent.ChatSerializer.a("{\"text\": \"\"}").a(title);
PacketPlayOutTitle packet = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, base);
PacketPlayOutTitle length = new PacketPlayOutTitle(fadeIn, stay, fadeOut);
((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
((CraftPlayer) p).getHandle().playerConnection.sendPacket(length);
}
public static void sendTitle(Player p, String title, String subtitle, int fadeIn, int stay, int fadeOut) {
sendTitle(p, title, fadeIn, stay, fadeOut);
sendSubtitle(p, subtitle, fadeIn, stay, fadeOut);
}
public static void sendSubtitle(Player p, String subtitle, int fadeIn, int stay, int fadeOut) {
IChatBaseComponent base = IChatBaseComponent.ChatSerializer.a("{\"text\": \"\"}").a(subtitle);
PacketPlayOutTitle packet = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, base);
PacketPlayOutTitle length = new PacketPlayOutTitle(fadeIn, stay, fadeOut);
((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
((CraftPlayer) p).getHandle().playerConnection.sendPacket(length);
}
}

View File

@@ -0,0 +1,76 @@
package de.craftix.api;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
public class DefaultListener implements Listener {
private static boolean weather = true;
private static String joinMSG = "§ePlayer joined the game";
private static String quitMSG = "§ePlayer left the game";
private static String deathMSG = "Player died";
private static boolean canDestroyBlock = true;
private static boolean canPlaceBlock = true;
private static boolean canInteract = true;
private static boolean canInteractAtEntity = true;
public static void setWeather(boolean weather) {
DefaultListener.weather = weather;
Bukkit.getWorlds().forEach(world -> world.setStorm(false));
Bukkit.getWorlds().forEach(world -> world.setThundering(false));
}
public static void setJoinMSG(String joinMSG) {
DefaultListener.joinMSG = joinMSG;
}
public static void setQuitMSG(String quitMSG) {
DefaultListener.quitMSG = quitMSG;
}
public static void setDeathMSG(String deathMSG) {
DefaultListener.deathMSG = deathMSG;
}
public static void setCanDestroyBlock(boolean canDestroyBlock) {
DefaultListener.canDestroyBlock = canDestroyBlock;
}
public static void setCanPlaceBlock(boolean canPlaceBlock) {
DefaultListener.canPlaceBlock = canPlaceBlock;
}
public static void setCanInteract(boolean canInteract) {
DefaultListener.canInteract = canInteract;
}
public static void setCanInteractAtEntity(boolean canInteractAtEntity) {
DefaultListener.canInteractAtEntity = canInteractAtEntity;
}
@EventHandler
public void onWeather(WeatherChangeEvent event) { event.setCancelled(!weather); }
@EventHandler
public void onBreak(BlockBreakEvent event) { event.setCancelled(!canDestroyBlock); }
@EventHandler
public void onPlace(BlockPlaceEvent event) { event.setCancelled(!canPlaceBlock); }
@EventHandler
public void onInteract(PlayerInteractEvent event) { event.setCancelled(!canInteract); }
@EventHandler
public void onInteractEntity(PlayerInteractAtEntityEvent event) { event.setCancelled(!canInteractAtEntity); }
@EventHandler
public void onJoin(PlayerJoinEvent event) { event.setJoinMessage(joinMSG.replace("Player", event.getPlayer().getDisplayName())); }
@EventHandler
public void onQuit(PlayerQuitEvent event) { event.setQuitMessage(quitMSG.replace("Player", event.getPlayer().getDisplayName())); }
@EventHandler
public void onDeath(PlayerDeathEvent event) { event.setDeathMessage(deathMSG.replace("Player", event.getEntity().getDisplayName())); }
}

View File

@@ -0,0 +1,51 @@
package de.craftix.api;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Gamemode implements CommandExecutor {
public Gamemode(JavaPlugin plugin) {
PluginCommand cmd = plugin.getCommand("gm");
cmd.setPermission("minecraft.command.gamemode");
cmd.setExecutor(this);
}
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (!(sender instanceof Player)) return true;
Player p = (Player) sender;
Player t = null;
if (args.length == 1) t = p;
else {
t = Bukkit.getPlayer(args[1]);
if (t == null) {
p.sendMessage("§cDieser Spieler existiert nicht!");
return true;
}
}
if (args[0].equals("0") || args[0].equals("s") || args[0].equalsIgnoreCase("survival")) {
t.setGameMode(GameMode.SURVIVAL);
t.sendMessage("§aDu bist nun im §6Überlebensmodus§a.");
}
if (args[0].equals("1") || args[0].equalsIgnoreCase("c") || args[0].equalsIgnoreCase("creative")) {
t.setGameMode(GameMode.CREATIVE);
t.sendMessage("§aDu bist nun im §6Creativmodus§a.");
}
if (args[0].equals("2") || args[0].equalsIgnoreCase("a") || args[0].equalsIgnoreCase("adventure")) {
t.setGameMode(GameMode.ADVENTURE);
t.sendMessage("§aDu bist nun im §6Adventuremodus§a.");
}
if (args[0].equals("3") || args[0].equals("S") || args[0].equalsIgnoreCase("spectator")) {
t.setGameMode(GameMode.SPECTATOR);
t.sendMessage("§aDu bist nun im §6Spectatormodus§a.");
}
return false;
}
}

Some files were not shown because too many files have changed in this diff Show More