Fly-Command #18
@ -19,6 +19,7 @@
|
||||
|
||||
package de.steamwar.lobby;
|
||||
|
||||
import de.steamwar.lobby.commands.FlyCommand;
|
||||
import de.steamwar.lobby.listener.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
@ -33,7 +34,6 @@ public class LobbySystem extends JavaPlugin {
|
||||
instance = this;
|
||||
|
||||
PluginManager pm = Bukkit.getPluginManager();
|
||||
|
||||
pm.registerEvents(new PlayerMoveListener(), instance);
|
||||
pm.registerEvents(new PlayerConnectionListener(), instance);
|
||||
pm.registerEvents(new PlayerInventoryListener(), instance);
|
||||
@ -41,6 +41,8 @@ public class LobbySystem extends JavaPlugin {
|
||||
pm.registerEvents(new DoubleJumpListener(), instance);
|
||||
pm.registerEvents(new ParticleListener(), instance);
|
||||
pm.registerEvents(new EnderPearlListener(), instance);
|
||||
|
||||
getCommand("fly").setExecutor(new FlyCommand());
|
||||
}
|
||||
|
||||
|
||||
|
55
src/de/steamwar/lobby/commands/FlyCommand.java
Normale Datei
55
src/de/steamwar/lobby/commands/FlyCommand.java
Normale Datei
@ -0,0 +1,55 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2020 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.commands;
|
||||
|
||||
import de.steamwar.lobby.utils.LobbyPlayer;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import de.steamwar.sql.UserGroup;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class FlyCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (!(sender instanceof Player)) return false;
|
||||
|
||||
Player player = (Player) sender;
|
||||
SteamwarUser steamwarUser = SteamwarUser.get(player.getUniqueId());
|
||||
UserGroup userGroup = steamwarUser.getUserGroup();
|
||||
|
||||
if (userGroup == UserGroup.Member) {
|
||||
player.sendMessage("§cUnbekannter Befehl.");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
LobbyPlayer lobbyPlayer = LobbyPlayer.getLobbyPlayer(player);
|
||||
boolean newFlightState = !lobbyPlayer.isFlying();
|
||||
|
||||
lobbyPlayer.setFly(newFlightState);
|
||||
player.setAllowFlight(newFlightState);
|
||||
player.setFlying(newFlightState);
|
||||
player.sendMessage("§7Du kannst jetzt " + (newFlightState ? "§afliegen§7." : "§cnicht §7mehr fliegen."));
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
@ -19,6 +19,7 @@
|
||||
|
||||
package de.steamwar.lobby.listener;
|
||||
|
||||
import de.steamwar.lobby.utils.LobbyPlayer;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
@ -47,6 +48,9 @@ public class DoubleJumpListener implements Listener {
|
||||
if (player.getGameMode() != GameMode.ADVENTURE && player.getGameMode() != GameMode.SURVIVAL) {
|
||||
return;
|
||||
}
|
||||
if (LobbyPlayer.getLobbyPlayer(player).isFlying()) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
player.setAllowFlight(false);
|
||||
@ -65,8 +69,8 @@ public class DoubleJumpListener implements Listener {
|
||||
public void handlePlayerMove(PlayerMoveEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if(player.getLocation().add(0, -1, 0).getBlock().getType() == Material.AIR)
|
||||
return;
|
||||
if(player.getLocation().add(0, -1, 0).getBlock().getType() == Material.AIR) return;
|
||||
if (LobbyPlayer.getLobbyPlayer(player).isFlying()) return;
|
||||
|
||||
player.setAllowFlight(true);
|
||||
if (player.getGameMode() == GameMode.ADVENTURE || player.getGameMode() == GameMode.SURVIVAL) {
|
||||
|
@ -20,6 +20,7 @@
|
||||
package de.steamwar.lobby.utils;
|
||||
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -37,11 +38,20 @@ public class LobbyPlayer {
|
||||
private double particle_time = 0.001;
|
||||
|
||||
private boolean enderPearlUsed;
|
||||
private boolean fly;
|
||||
|
||||
private LobbyPlayer(UUID uuid) {
|
||||
cache.put(uuid, this);
|
||||
}
|
||||
|
||||
public boolean isFlying() {
|
||||
return fly;
|
||||
}
|
||||
|
||||
Lixfel
hat
isFly klingt so ein bisschen falsch, nenne es mal eher isFlying isFly klingt so ein bisschen falsch, nenne es mal eher isFlying
YoyoNow
hat
vllt lieber hasFly() weil isFlying klingt auch nicht so gut? vllt lieber hasFly() weil isFlying klingt auch nicht so gut?
Lixfel
hat
if (LobbyPlayer.getLobbyPlayer(player).hasFly()) verwirrt auch erstmal. Deshalb isFlying. if (LobbyPlayer.getLobbyPlayer(player).hasFly()) verwirrt auch erstmal. Deshalb isFlying.
YoyoNow
hat
hab ich hab ich
|
||||
public void setFly(boolean fly) {
|
||||
this.fly = fly;
|
||||
}
|
||||
|
||||
public Particle getParticle() {
|
||||
return particle;
|
||||
}
|
||||
@ -97,4 +107,8 @@ public class LobbyPlayer {
|
||||
LobbyPlayer lobbyPlayer = cache.get(uuid);
|
||||
return lobbyPlayer == null ? new LobbyPlayer(uuid) : lobbyPlayer;
|
||||
}
|
||||
|
||||
public static LobbyPlayer getLobbyPlayer(Player player) {
|
||||
return getLobbyPlayer(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
@ -5,3 +5,6 @@ depend:
|
||||
- SpigotCore
|
||||
main: de.steamwar.lobby.LobbySystem
|
||||
api-version: "1.13"
|
||||
|
||||
commands:
|
||||
fly:
|
In neuem Issue referenzieren
Einen Benutzer sperren
SteamWar-Prefix fehlt.