Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-18 20:40:08 +01:00
Added new Server.getPlayerExact() method, added whitelist methods and don't use vanilla commands
Dieser Commit ist enthalten in:
Ursprung
09d90e639b
Commit
c8d77561b1
@ -42,7 +42,7 @@ public class ServerConfigurationManager {
|
|||||||
private File l;
|
private File l;
|
||||||
private File m;
|
private File m;
|
||||||
public PlayerFileData playerFileData; // CraftBukkit - private - >public
|
public PlayerFileData playerFileData; // CraftBukkit - private - >public
|
||||||
private boolean o;
|
public boolean o; // Craftbukkit - private -> public
|
||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private CraftServer cserver;
|
private CraftServer cserver;
|
||||||
|
@ -49,4 +49,16 @@ public class CraftOfflinePlayer implements OfflinePlayer {
|
|||||||
server.getHandle().b(name.toLowerCase());
|
server.getHandle().b(name.toLowerCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isWhitelisted() {
|
||||||
|
return server.getHandle().e().contains(name.toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWhitelisted(boolean value) {
|
||||||
|
if (value) {
|
||||||
|
server.getHandle().k(name.toLowerCase());
|
||||||
|
} else {
|
||||||
|
server.getHandle().l(name.toLowerCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,9 +46,6 @@ import net.minecraft.server.WorldLoaderServer;
|
|||||||
import net.minecraft.server.WorldManager;
|
import net.minecraft.server.WorldManager;
|
||||||
import net.minecraft.server.WorldServer;
|
import net.minecraft.server.WorldServer;
|
||||||
import net.minecraft.server.ServerCommand;
|
import net.minecraft.server.ServerCommand;
|
||||||
import net.minecraft.server.ICommandListener;
|
|
||||||
import net.minecraft.server.Packet;
|
|
||||||
import net.minecraft.server.Packet3Chat;
|
|
||||||
import net.minecraft.server.Item;
|
import net.minecraft.server.Item;
|
||||||
import net.minecraft.server.ItemStack;
|
import net.minecraft.server.ItemStack;
|
||||||
import net.minecraft.server.WorldMap;
|
import net.minecraft.server.WorldMap;
|
||||||
@ -66,12 +63,10 @@ import org.bukkit.craftbukkit.inventory.CraftFurnaceRecipe;
|
|||||||
import org.bukkit.craftbukkit.inventory.CraftRecipe;
|
import org.bukkit.craftbukkit.inventory.CraftRecipe;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftShapedRecipe;
|
import org.bukkit.craftbukkit.inventory.CraftShapedRecipe;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftShapelessRecipe;
|
import org.bukkit.craftbukkit.inventory.CraftShapelessRecipe;
|
||||||
import org.bukkit.craftbukkit.command.ServerCommandListener;
|
|
||||||
import org.bukkit.craftbukkit.map.CraftMapView;
|
import org.bukkit.craftbukkit.map.CraftMapView;
|
||||||
import org.bukkit.scheduler.BukkitWorker;
|
import org.bukkit.scheduler.BukkitWorker;
|
||||||
import org.bukkit.craftbukkit.scheduler.CraftScheduler;
|
import org.bukkit.craftbukkit.scheduler.CraftScheduler;
|
||||||
import org.bukkit.util.permissions.DefaultPermissions;
|
import org.bukkit.util.permissions.DefaultPermissions;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
|
||||||
import org.bukkit.event.world.WorldInitEvent;
|
import org.bukkit.event.world.WorldInitEvent;
|
||||||
import org.bukkit.permissions.Permission;
|
import org.bukkit.permissions.Permission;
|
||||||
import org.bukkit.plugin.PluginLoadOrder;
|
import org.bukkit.plugin.PluginLoadOrder;
|
||||||
@ -227,6 +222,18 @@ public final class CraftServer implements Server {
|
|||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Player getPlayerExact(String name) {
|
||||||
|
String lname = name.toLowerCase();
|
||||||
|
|
||||||
|
for (Player player : getOnlinePlayers()) {
|
||||||
|
if (player.getName().equalsIgnoreCase(lname)) {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public int broadcastMessage(String message) {
|
public int broadcastMessage(String message) {
|
||||||
return broadcast(message, BROADCAST_CHANNEL_USERS);
|
return broadcast(message, BROADCAST_CHANNEL_USERS);
|
||||||
}
|
}
|
||||||
@ -332,64 +339,17 @@ public final class CraftServer implements Server {
|
|||||||
|
|
||||||
// NOTE: Should only be called from MinecraftServer.b()
|
// NOTE: Should only be called from MinecraftServer.b()
|
||||||
public boolean dispatchCommand(CommandSender sender, ServerCommand serverCommand) {
|
public boolean dispatchCommand(CommandSender sender, ServerCommand serverCommand) {
|
||||||
if (commandMap.dispatch(sender, serverCommand.command)) {
|
return dispatchCommand(sender, serverCommand.command);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return console.consoleCommandHandler.handle(serverCommand);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean dispatchCommand(CommandSender sender, String commandLine) {
|
public boolean dispatchCommand(CommandSender sender, String commandLine) {
|
||||||
// CraftBukkit native commands
|
|
||||||
if (commandMap.dispatch(sender, commandLine)) {
|
if (commandMap.dispatch(sender, commandLine)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sender instanceof Player) {
|
sender.sendMessage("Unknown command. Type \"help\" for help.");
|
||||||
Player player = (Player)sender;
|
|
||||||
if (commandLine.toLowerCase().startsWith("me ")) {
|
|
||||||
if (!player.hasPermission("bukkit.command.me")) {
|
|
||||||
player.sendMessage(ChatColor.RED + "You do not have permission to perform this command.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
commandLine = "* " + player.getDisplayName() + " " + commandLine.substring(commandLine.indexOf(" ")).trim();
|
return false;
|
||||||
server.server.serverConfigurationManager.sendAll(new Packet3Chat(commandLine));
|
|
||||||
return true;
|
|
||||||
} else if (commandLine.toLowerCase().startsWith("kill")) {
|
|
||||||
if (!player.hasPermission("bukkit.command.kill")) {
|
|
||||||
player.sendMessage(ChatColor.RED + "You do not have permission to perform this command.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
EntityDamageEvent ede = new EntityDamageEvent(player, EntityDamageEvent.DamageCause.SUICIDE, 1000);
|
|
||||||
getPluginManager().callEvent(ede);
|
|
||||||
if (ede.isCancelled()) return true;
|
|
||||||
|
|
||||||
player.damage(ede.getDamage());
|
|
||||||
return true;
|
|
||||||
} else if (commandLine.toLowerCase().startsWith("tell ")) {
|
|
||||||
if (!player.hasPermission("bukkit.command.tell")) {
|
|
||||||
player.sendMessage(ChatColor.RED + "You do not have permission to perform this command.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String[] astring = commandLine.split(" ");
|
|
||||||
|
|
||||||
if (astring.length >= 3) {
|
|
||||||
commandLine = commandLine.substring(commandLine.indexOf(" ")).trim();
|
|
||||||
commandLine = commandLine.substring(commandLine.indexOf(" ")).trim();
|
|
||||||
commandLine = "\u00A77" + player.getDisplayName() + " whispers " + commandLine;
|
|
||||||
if (!server.server.serverConfigurationManager.a(astring[1], (Packet) (new Packet3Chat(commandLine)))) {
|
|
||||||
player.sendMessage(ChatColor.RED + "There's no player by that name online.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// See if the server can process this command
|
|
||||||
return console.consoleCommandHandler.handle(new ServerCommand(commandLine, (ICommandListener) new ServerCommandListener(sender)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reload() {
|
public void reload() {
|
||||||
@ -839,4 +799,24 @@ public final class CraftServer implements Server {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setWhitelist(boolean value) {
|
||||||
|
server.o = value;
|
||||||
|
console.propertyManager.b("white-list", value);
|
||||||
|
console.propertyManager.savePropertiesFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<OfflinePlayer> getWhitelistedPlayers() {
|
||||||
|
Set<OfflinePlayer> result = new HashSet<OfflinePlayer>();
|
||||||
|
|
||||||
|
for (Object name : server.e()) {
|
||||||
|
result.add(getOfflinePlayer((String)name));
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reloadWhitelist() {
|
||||||
|
server.f();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -366,4 +366,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||||||
server.getHandle().b(getName().toLowerCase());
|
server.getHandle().b(getName().toLowerCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isWhitelisted() {
|
||||||
|
return server.getHandle().e().contains(getName().toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWhitelisted(boolean value) {
|
||||||
|
if (value) {
|
||||||
|
server.getHandle().k(getName().toLowerCase());
|
||||||
|
} else {
|
||||||
|
server.getHandle().l(getName().toLowerCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren