13
0

Teleporter #12

Zusammengeführt
Lixfel hat 12 Commits von Teleporter nach master 2022-03-26 16:51:55 +01:00 zusammengeführt
3 geänderte Dateien mit 80 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -59,6 +59,7 @@ public class LobbySystem extends JavaPlugin {
new WorldInteraction();
new PlayerSeatListener();
new MapsRotateListener();
new TeleporterListener();
new TeamPlayer();
new AlphaWall(l -> l.getX() > 1199, AlphaWall.REFLECT_X);

Datei anzeigen

@ -36,11 +36,13 @@ import org.bukkit.inventory.PlayerInventory;
public class PlayerSpawn extends BasicListener {
public static final int FIREWORK_SLOT = 3;
public static final int FIREWORK_SLOT = 2;
public static final ItemStack FIREWORK = new ItemBuilder(Material.FIREWORK_ROCKET, 1).setDisplayName("§5Rakete").build();
public static final int PARTICLE_SLOT = 5;
public static final int PARTICLE_SLOT = 6;
public static final int NETHER_STAR_SLOT = 4;
public static final ItemStack PARTICLE = new ItemBuilder(Material.NAME_TAG).setDisplayName("§6Partikel").setUnbreakable(true).removeAllAttributes().build();
private static final ItemStack ELYTRA = new ItemBuilder(Material.ELYTRA).setDisplayName("§5Elytra").setUnbreakable(true).removeAllAttributes().build();
public static final ItemStack NETHER_STAR = new ItemBuilder(Material.NETHER_STAR).setDisplayName("§5Teleporter").setUnbreakable(true).removeAllAttributes().build();
@EventHandler(priority = EventPriority.HIGH)
public void onJoin(PlayerJoinEvent e) {
@ -66,6 +68,8 @@ public class PlayerSpawn extends BasicListener {
player.getInventory().setItem(FIREWORK_SLOT, FIREWORK);
player.getInventory().setItem(PARTICLE_SLOT, PARTICLE);
player.getInventory().setItem(NETHER_STAR_SLOT, NETHER_STAR);
}
@EventHandler(priority = EventPriority.HIGH)

Datei anzeigen

@ -0,0 +1,73 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2022 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.lobby.listener;
import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerInteractEvent;
public class TeleporterListener extends BasicListener {
private static final World world = Bukkit.getWorlds().get(0);
private static final Location spawn = world.getSpawnLocation().clone().add(0.5, 0, 0.5);
private static final Location team = new Location(world,1524,55,1440);
private static final Location map = new Location(world,2337,38,1424);
private static final Location bau = new Location(world,1951,66,1337);
private static final Location arenen = new Location(world,2255,21,1450);
@EventHandler
public void handlePlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
if (!PlayerSpawn.NETHER_STAR.equals(event.getItem())) return;
SWInventory swInventory = new SWInventory(player, () -> {
return Bukkit.createInventory(null, InventoryType.HOPPER, "§6Teleporter");
});
swInventory.setItem(0, new SWItem(Material.WOODEN_AXE, "§eBaubereich").getItemStack(), clickType -> {
teleport(bau, player);
});
swInventory.setItem(1, new SWItem(Material.MAGMA_CREAM, "§eSpawn").getItemStack(), clickType -> {
teleport(spawn, player);
});
swInventory.setItem(2, new SWItem(Material.BEACON, "§eTeamhalle").getItemStack(), clickType -> {
teleport(team, player);
});
swInventory.setItem(3, new SWItem(Material.MAP, "§eMap").getItemStack(), clickType -> {
teleport(map, player);
});
swInventory.setItem(4, new SWItem(Material.CLOCK, "§eArenen").getItemStack(), clickType -> {
teleport(arenen, player);
});
swInventory.open();
}
private void teleport(Location location, Player player) {
player.teleport(location);
Portals.getStack(player).clear();
}
}