Archiviert
13
0

Fly-Command #18

Manuell gemergt
YoyoNow hat 7 Commits von Fly-Command nach master 2020-12-30 16:04:14 +01:00 zusammengeführt
5 geänderte Dateien mit 82 neuen und 4 gelöschten Zeilen

Datei anzeigen

@ -19,6 +19,7 @@
package de.steamwar.lobby; package de.steamwar.lobby;
import de.steamwar.lobby.commands.FlyCommand;
import de.steamwar.lobby.listener.*; import de.steamwar.lobby.listener.*;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
@ -33,7 +34,6 @@ public class LobbySystem extends JavaPlugin {
instance = this; instance = this;
PluginManager pm = Bukkit.getPluginManager(); PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new PlayerMoveListener(), instance); pm.registerEvents(new PlayerMoveListener(), instance);
pm.registerEvents(new PlayerConnectionListener(), instance); pm.registerEvents(new PlayerConnectionListener(), instance);
pm.registerEvents(new PlayerInventoryListener(), instance); pm.registerEvents(new PlayerInventoryListener(), instance);
@ -41,6 +41,8 @@ public class LobbySystem extends JavaPlugin {
pm.registerEvents(new DoubleJumpListener(), instance); pm.registerEvents(new DoubleJumpListener(), instance);
pm.registerEvents(new ParticleListener(), instance); pm.registerEvents(new ParticleListener(), instance);
pm.registerEvents(new EnderPearlListener(), instance); pm.registerEvents(new EnderPearlListener(), instance);
getCommand("fly").setExecutor(new FlyCommand());
} }

Datei anzeigen

@ -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.");
Review

SteamWar-Prefix fehlt.

SteamWar-Prefix fehlt.
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;
}
}

Datei anzeigen

@ -19,6 +19,7 @@
package de.steamwar.lobby.listener; package de.steamwar.lobby.listener;
import de.steamwar.lobby.utils.LobbyPlayer;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
@ -47,6 +48,9 @@ public class DoubleJumpListener implements Listener {
if (player.getGameMode() != GameMode.ADVENTURE && player.getGameMode() != GameMode.SURVIVAL) { if (player.getGameMode() != GameMode.ADVENTURE && player.getGameMode() != GameMode.SURVIVAL) {
return; return;
} }
if (LobbyPlayer.getLobbyPlayer(player).isFlying()) {
return;
}
event.setCancelled(true); event.setCancelled(true);
player.setAllowFlight(false); player.setAllowFlight(false);
@ -65,8 +69,8 @@ public class DoubleJumpListener implements Listener {
public void handlePlayerMove(PlayerMoveEvent event) { public void handlePlayerMove(PlayerMoveEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
if(player.getLocation().add(0, -1, 0).getBlock().getType() == Material.AIR) if(player.getLocation().add(0, -1, 0).getBlock().getType() == Material.AIR) return;
return; if (LobbyPlayer.getLobbyPlayer(player).isFlying()) return;
player.setAllowFlight(true); player.setAllowFlight(true);
if (player.getGameMode() == GameMode.ADVENTURE || player.getGameMode() == GameMode.SURVIVAL) { if (player.getGameMode() == GameMode.ADVENTURE || player.getGameMode() == GameMode.SURVIVAL) {

Datei anzeigen

@ -20,6 +20,7 @@
package de.steamwar.lobby.utils; package de.steamwar.lobby.utils;
import org.bukkit.Particle; import org.bukkit.Particle;
import org.bukkit.entity.Player;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -37,11 +38,20 @@ public class LobbyPlayer {
private double particle_time = 0.001; private double particle_time = 0.001;
private boolean enderPearlUsed; private boolean enderPearlUsed;
private boolean fly;
private LobbyPlayer(UUID uuid) { private LobbyPlayer(UUID uuid) {
cache.put(uuid, this); cache.put(uuid, this);
} }
public boolean isFlying() {
return fly;
}
Review

isFly klingt so ein bisschen falsch, nenne es mal eher isFlying

isFly klingt so ein bisschen falsch, nenne es mal eher isFlying
Review

vllt lieber hasFly() weil isFlying klingt auch nicht so gut?

vllt lieber hasFly() weil isFlying klingt auch nicht so gut?
Review

if (LobbyPlayer.getLobbyPlayer(player).hasFly()) verwirrt auch erstmal. Deshalb isFlying.

if (LobbyPlayer.getLobbyPlayer(player).hasFly()) verwirrt auch erstmal. Deshalb isFlying.
Review

hab ich

hab ich
public void setFly(boolean fly) {
this.fly = fly;
}
public Particle getParticle() { public Particle getParticle() {
return particle; return particle;
} }
@ -97,4 +107,8 @@ public class LobbyPlayer {
LobbyPlayer lobbyPlayer = cache.get(uuid); LobbyPlayer lobbyPlayer = cache.get(uuid);
return lobbyPlayer == null ? new LobbyPlayer(uuid) : lobbyPlayer; return lobbyPlayer == null ? new LobbyPlayer(uuid) : lobbyPlayer;
} }
public static LobbyPlayer getLobbyPlayer(Player player) {
return getLobbyPlayer(player.getUniqueId());
}
} }

Datei anzeigen

@ -4,4 +4,7 @@ author: Yaruma3341
depend: depend:
- SpigotCore - SpigotCore
main: de.steamwar.lobby.LobbySystem main: de.steamwar.lobby.LobbySystem
api-version: "1.13" api-version: "1.13"
commands:
fly: