mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-12-23 01:27:33 +01:00
Reset packetrotationsession yaw to physical yaw on removal
This commit is contained in:
parent
1416557ce3
commit
8ca8c14f89
@ -451,7 +451,7 @@ public class EventListen implements Listener {
|
|||||||
if (!tracker.isValid() || !event.getPlayer().isValid())
|
if (!tracker.isValid() || !event.getPlayer().isValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
NMS.sendPositionUpdate(tracker, false, null, null, NMS.getHeadYaw(tracker));
|
NMS.sendPositionUpdateNearby(tracker, false, null, null, NMS.getHeadYaw(tracker));
|
||||||
}, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks() + 1);
|
}, Setting.TABLIST_REMOVE_PACKET_DELAY.asTicks() + 1);
|
||||||
|
|
||||||
boolean resetYaw = event.getNPC().data().get(NPC.Metadata.RESET_YAW_ON_SPAWN,
|
boolean resetYaw = event.getNPC().data().get(NPC.Metadata.RESET_YAW_ON_SPAWN,
|
||||||
|
@ -55,7 +55,6 @@ import com.google.common.collect.Lists;
|
|||||||
import com.google.common.io.BaseEncoding;
|
import com.google.common.io.BaseEncoding;
|
||||||
|
|
||||||
import net.citizensnpcs.Citizens;
|
import net.citizensnpcs.Citizens;
|
||||||
import net.citizensnpcs.ProtocolLibListener;
|
|
||||||
import net.citizensnpcs.Settings.Setting;
|
import net.citizensnpcs.Settings.Setting;
|
||||||
import net.citizensnpcs.StoredShops;
|
import net.citizensnpcs.StoredShops;
|
||||||
import net.citizensnpcs.api.CitizensAPI;
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
@ -163,7 +162,6 @@ import net.citizensnpcs.util.Util;
|
|||||||
@Requirements(selected = true, ownership = true)
|
@Requirements(selected = true, ownership = true)
|
||||||
public class NPCCommands {
|
public class NPCCommands {
|
||||||
private final CommandHistory history;
|
private final CommandHistory history;
|
||||||
private final ProtocolLibListener protocolListener;
|
|
||||||
private final NPCSelector selector;
|
private final NPCSelector selector;
|
||||||
private final StoredShops shops;
|
private final StoredShops shops;
|
||||||
private final NPCRegistry temporaryRegistry;
|
private final NPCRegistry temporaryRegistry;
|
||||||
@ -173,7 +171,6 @@ public class NPCCommands {
|
|||||||
shops = plugin.getShops();
|
shops = plugin.getShops();
|
||||||
temporaryRegistry = CitizensAPI.createCitizensBackedNPCRegistry(new MemoryNPCDataStore());
|
temporaryRegistry = CitizensAPI.createCitizensBackedNPCRegistry(new MemoryNPCDataStore());
|
||||||
history = new CommandHistory(selector);
|
history = new CommandHistory(selector);
|
||||||
protocolListener = plugin.getProtocolLibListener();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Command(
|
@Command(
|
||||||
@ -458,7 +455,7 @@ public class NPCCommands {
|
|||||||
|
|
||||||
@Command(
|
@Command(
|
||||||
aliases = { "npc" },
|
aliases = { "npc" },
|
||||||
usage = "command|cmd (add [command] | remove [id] | permissions [permissions] | sequential | random | clearerror [type] (name|uuid) | errormsg [type] [msg] | persistsequence [true|false] | cost [cost] (id) | expcost [cost] (id) | itemcost (id)) (-s(hift)) (-l[eft]/-r[ight]) (-p[layer] -o[p]), --cooldown --gcooldown [seconds] --delay [ticks] --permissions [perms] --n [max # of uses]",
|
usage = "command|cmd (add [command] | remove [id|all] | permissions [permissions] | sequential | random | clearerror [type] (name|uuid) | errormsg [type] [msg] | persistsequence [true|false] | cost [cost] (id) | expcost [cost] (id) | itemcost (id)) (-s(hift)) (-l[eft]/-r[ight]) (-p[layer] -o[p]), --cooldown --gcooldown [seconds] --delay [ticks] --permissions [perms] --n [max # of uses]",
|
||||||
desc = "Controls commands which will be run when clicking on an NPC",
|
desc = "Controls commands which will be run when clicking on an NPC",
|
||||||
help = Messages.NPC_COMMAND_HELP,
|
help = Messages.NPC_COMMAND_HELP,
|
||||||
modifiers = { "command", "cmd" },
|
modifiers = { "command", "cmd" },
|
||||||
@ -535,11 +532,16 @@ public class NPCCommands {
|
|||||||
} else if (action.equalsIgnoreCase("remove")) {
|
} else if (action.equalsIgnoreCase("remove")) {
|
||||||
if (args.argsLength() == 2)
|
if (args.argsLength() == 2)
|
||||||
throw new CommandUsageException();
|
throw new CommandUsageException();
|
||||||
int id = args.getInteger(2, -1);
|
if (args.getString(2).equalsIgnoreCase("all")) {
|
||||||
if (!commands.hasCommandId(id))
|
commands.clear();
|
||||||
throw new CommandException(Messages.COMMAND_UNKNOWN_COMMAND_ID, id);
|
Messaging.sendTr(sender, Messages.COMMANDS_CLEARED, npc.getName());
|
||||||
commands.removeCommandById(id);
|
} else {
|
||||||
Messaging.sendTr(sender, Messages.COMMAND_REMOVED, id);
|
int id = args.getInteger(2, -1);
|
||||||
|
if (!commands.hasCommandId(id))
|
||||||
|
throw new CommandException(Messages.COMMAND_UNKNOWN_COMMAND_ID, id);
|
||||||
|
commands.removeCommandById(id);
|
||||||
|
Messaging.sendTr(sender, Messages.COMMAND_REMOVED, id);
|
||||||
|
}
|
||||||
} else if (action.equalsIgnoreCase("permissions") || action.equalsIgnoreCase("perms")) {
|
} else if (action.equalsIgnoreCase("permissions") || action.equalsIgnoreCase("perms")) {
|
||||||
if (!sender.hasPermission("citizens.admin"))
|
if (!sender.hasPermission("citizens.admin"))
|
||||||
throw new NoPermissionsException();
|
throw new NoPermissionsException();
|
||||||
@ -2556,7 +2558,8 @@ public class NPCCommands {
|
|||||||
if (yaw != null) {
|
if (yaw != null) {
|
||||||
NMS.setBodyYaw(npc.getEntity(), yaw);
|
NMS.setBodyYaw(npc.getEntity(), yaw);
|
||||||
if (npc.getEntity().getType() == EntityType.PLAYER) {
|
if (npc.getEntity().getType() == EntityType.PLAYER) {
|
||||||
NMS.sendPositionUpdate(npc.getEntity(), true, yaw, npc.getStoredLocation().getPitch(), null);
|
NMS.sendPositionUpdateNearby(npc.getEntity(), true, yaw, npc.getEntity().getLocation().getPitch(),
|
||||||
|
null);
|
||||||
PlayerAnimation.ARM_SWING.play((Player) npc.getEntity());
|
PlayerAnimation.ARM_SWING.play((Player) npc.getEntity());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.citizensnpcs.npc;
|
package net.citizensnpcs.npc;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -306,8 +305,7 @@ public class CitizensNPC extends AbstractNPC {
|
|||||||
if (getEntity() instanceof SkinnableEntity && !hasTrait(SkinLayers.class)) {
|
if (getEntity() instanceof SkinnableEntity && !hasTrait(SkinLayers.class)) {
|
||||||
((SkinnableEntity) getEntity()).setSkinFlags(EnumSet.allOf(SkinLayers.Layer.class));
|
((SkinnableEntity) getEntity()).setSkinFlags(EnumSet.allOf(SkinLayers.Layer.class));
|
||||||
}
|
}
|
||||||
Collection<Trait> onPreSpawn = traits.values();
|
for (Trait trait : traits.values().toArray(new Trait[traits.values().size()])) {
|
||||||
for (Trait trait : onPreSpawn.toArray(new Trait[onPreSpawn.size()])) {
|
|
||||||
try {
|
try {
|
||||||
trait.onPreSpawn();
|
trait.onPreSpawn();
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
@ -315,12 +313,12 @@ public class CitizensNPC extends AbstractNPC {
|
|||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean loaded = Messaging.isDebugging() ? false : Util.isLoaded(at);
|
boolean wasLoaded = Messaging.isDebugging() ? Util.isLoaded(at) : false;
|
||||||
boolean couldSpawn = entityController.spawn(at);
|
boolean couldSpawn = entityController.spawn(at);
|
||||||
|
|
||||||
if (!couldSpawn) {
|
if (!couldSpawn) {
|
||||||
if (Messaging.isDebugging()) {
|
if (Messaging.isDebugging()) {
|
||||||
Messaging.debug("Retrying spawn of", this, "later, SpawnReason." + reason + ". Was loaded", loaded,
|
Messaging.debug("Retrying spawn of", this, "later, SpawnReason." + reason + ". Was loaded", wasLoaded,
|
||||||
"is loaded", Util.isLoaded(at));
|
"is loaded", Util.isLoaded(at));
|
||||||
}
|
}
|
||||||
// we need to wait before trying to spawn
|
// we need to wait before trying to spawn
|
||||||
|
@ -142,6 +142,10 @@ public class CommandTrait extends Trait {
|
|||||||
return action == null ? Transaction.success() : action.take(player, 1);
|
return action == null ? Transaction.success() : action.take(player, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
commands.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public void clearHistory(CommandTraitError which, String raw) {
|
public void clearHistory(CommandTraitError which, String raw) {
|
||||||
if (which == CommandTraitError.ON_GLOBAL_COOLDOWN && raw != null) {
|
if (which == CommandTraitError.ON_GLOBAL_COOLDOWN && raw != null) {
|
||||||
globalCooldowns.remove(BaseEncoding.base64().encode(raw.getBytes()));
|
globalCooldowns.remove(BaseEncoding.base64().encode(raw.getBytes()));
|
||||||
|
@ -340,8 +340,7 @@ public class HologramTrait extends Trait {
|
|||||||
}
|
}
|
||||||
if (nameLine != null && nameLine.hologram.isSpawned()) {
|
if (nameLine != null && nameLine.hologram.isSpawned()) {
|
||||||
if (updatePosition && !useDisplayEntities) {
|
if (updatePosition && !useDisplayEntities) {
|
||||||
nameLine.hologram.teleport(npcLoc.clone().add(0, getEntityBbHeight(), 0),
|
nameLine.hologram.teleport(npcLoc.clone().add(0, getEntityBbHeight(), 0), TeleportCause.PLUGIN);
|
||||||
TeleportCause.PLUGIN);
|
|
||||||
}
|
}
|
||||||
if (updateName) {
|
if (updateName) {
|
||||||
nameLine.setText(npc.getRawName());
|
nameLine.setText(npc.getRawName());
|
||||||
|
@ -3,7 +3,6 @@ package net.citizensnpcs.trait;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -110,18 +109,18 @@ public class LookClose extends Trait implements Toggleable {
|
|||||||
session.getSession().rotateToFace(player);
|
session.getSession().rotateToFace(player);
|
||||||
seen.add(player.getUniqueId());
|
seen.add(player.getUniqueId());
|
||||||
}
|
}
|
||||||
for (Iterator<Entry<UUID, PacketRotationSession>> iterator = sessions.entrySet().iterator(); iterator
|
for (Iterator<UUID> iterator = sessions.keySet().iterator(); iterator.hasNext();) {
|
||||||
.hasNext();) {
|
UUID uuid = iterator.next();
|
||||||
Entry<UUID, PacketRotationSession> entry = iterator.next();
|
if (!seen.contains(uuid)) {
|
||||||
if (!seen.contains(entry.getKey())) {
|
rotationTrait.resetPlayerToPhysicalSession(uuid);
|
||||||
entry.getValue().end();
|
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if (sessions.size() > 0) {
|
} else if (sessions.size() > 0) {
|
||||||
for (PacketRotationSession session : sessions.values()) {
|
RotationTrait rotationTrait = npc.getOrAddTrait(RotationTrait.class);
|
||||||
session.end();
|
for (UUID uuid : sessions.keySet()) {
|
||||||
|
rotationTrait.resetPlayerToPhysicalSession(uuid);
|
||||||
}
|
}
|
||||||
sessions.clear();
|
sessions.clear();
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,13 @@ import java.util.function.Function;
|
|||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
@ -93,6 +95,16 @@ public class RotationTrait extends Trait {
|
|||||||
return globalSession;
|
return globalSession;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetPlayerToPhysicalSession(UUID uuid) {
|
||||||
|
PacketRotationSession prs = packetSessionsByUUID.remove(uuid);
|
||||||
|
if (prs == null || !npc.isSpawned())
|
||||||
|
return;
|
||||||
|
Player player = Bukkit.getPlayer(uuid);
|
||||||
|
if (player == null)
|
||||||
|
return;
|
||||||
|
NMS.sendPositionUpdate(npc.getEntity(), ImmutableList.of(player), false);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (!npc.isSpawned())
|
if (!npc.isSpawned())
|
||||||
@ -205,7 +217,7 @@ public class RotationTrait extends Trait {
|
|||||||
@Override
|
@Override
|
||||||
public void apply() {
|
public void apply() {
|
||||||
if (Math.abs(lastBodyYaw - bodyYaw) + Math.abs(lastHeadYaw - headYaw) + Math.abs(pitch - lastPitch) > 1) {
|
if (Math.abs(lastBodyYaw - bodyYaw) + Math.abs(lastHeadYaw - headYaw) + Math.abs(pitch - lastPitch) > 1) {
|
||||||
NMS.sendPositionUpdate(entity, false, bodyYaw, pitch, headYaw);
|
NMS.sendPositionUpdateNearby(entity, false, bodyYaw, pitch, headYaw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -547,9 +547,9 @@ public class ShopTrait extends Trait {
|
|||||||
int pos = 0;
|
int pos = 0;
|
||||||
|
|
||||||
for (GUI template : NPCShopAction.getGUIs()) {
|
for (GUI template : NPCShopAction.getGUIs()) {
|
||||||
if (template.createMenuItem(null) == null) {
|
if (template.createMenuItem(null) == null)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
NPCShopAction oldCost = modified.cost.stream().filter(template::manages).findFirst().orElse(null);
|
NPCShopAction oldCost = modified.cost.stream().filter(template::manages).findFirst().orElse(null);
|
||||||
costItems.getSlots().get(pos)
|
costItems.getSlots().get(pos)
|
||||||
.setItemStack(Util.editTitle(template.createMenuItem(oldCost), title -> title + " Cost"));
|
.setItemStack(Util.editTitle(template.createMenuItem(oldCost), title -> title + " Cost"));
|
||||||
|
@ -78,6 +78,7 @@ public class Messages {
|
|||||||
public static final String COMMAND_TRIGGER_ADDED = "citizens.editors.waypoints.triggers.command.added";
|
public static final String COMMAND_TRIGGER_ADDED = "citizens.editors.waypoints.triggers.command.added";
|
||||||
public static final String COMMAND_TRIGGER_PROMPT = "citizens.editors.waypoints.triggers.command.prompt";
|
public static final String COMMAND_TRIGGER_PROMPT = "citizens.editors.waypoints.triggers.command.prompt";
|
||||||
public static final String COMMAND_UNKNOWN_COMMAND_ID = "citizens.commands.npc.command.unknown-id";
|
public static final String COMMAND_UNKNOWN_COMMAND_ID = "citizens.commands.npc.command.unknown-id";
|
||||||
|
public static final String COMMANDS_CLEARED = "citizens.commands.npc.command.cleared";
|
||||||
public static final String COMMANDS_PERSIST_SEQUENCE_SET = "citizens.commands.npc.command.persist-sequence-set";
|
public static final String COMMANDS_PERSIST_SEQUENCE_SET = "citizens.commands.npc.command.persist-sequence-set";
|
||||||
public static final String COMMANDS_PERSIST_SEQUENCE_UNSET = "citizens.commands.npc.command.persist-sequence-unset";
|
public static final String COMMANDS_PERSIST_SEQUENCE_UNSET = "citizens.commands.npc.command.persist-sequence-unset";
|
||||||
public static final String COMMANDS_RANDOM_SET = "citizens.commands.npc.commands.random-set";
|
public static final String COMMANDS_RANDOM_SET = "citizens.commands.npc.commands.random-set";
|
||||||
|
@ -42,6 +42,7 @@ import com.mojang.authlib.GameProfile;
|
|||||||
import com.mojang.authlib.ProfileLookupCallback;
|
import com.mojang.authlib.ProfileLookupCallback;
|
||||||
|
|
||||||
import net.citizensnpcs.Settings.Setting;
|
import net.citizensnpcs.Settings.Setting;
|
||||||
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
import net.citizensnpcs.api.ai.NavigatorParameters;
|
import net.citizensnpcs.api.ai.NavigatorParameters;
|
||||||
import net.citizensnpcs.api.astar.pathfinder.SwimmingExaminer;
|
import net.citizensnpcs.api.astar.pathfinder.SwimmingExaminer;
|
||||||
import net.citizensnpcs.api.command.CommandManager;
|
import net.citizensnpcs.api.command.CommandManager;
|
||||||
@ -517,6 +518,22 @@ public class NMS {
|
|||||||
return BRIDGE.getNBT(item);
|
return BRIDGE.getNBT(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Collection<Player> getNearbyPlayers(Entity from) {
|
||||||
|
return getNearbyPlayers(from, from.getLocation(), 64);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Collection<Player> getNearbyPlayers(Entity from, Location location, double radius) {
|
||||||
|
List<Player> players = Lists.newArrayList();
|
||||||
|
for (Player player : CitizensAPI.getLocationLookup().getNearbyPlayers(location, radius)) {
|
||||||
|
if (location.getWorld() != player.getWorld() || from != null && !player.canSee(from)
|
||||||
|
|| location.distance(player.getLocation()) > radius)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
players.add(player);
|
||||||
|
}
|
||||||
|
return players;
|
||||||
|
}
|
||||||
|
|
||||||
public static NPC getNPC(Entity entity) {
|
public static NPC getNPC(Entity entity) {
|
||||||
return BRIDGE.getNPC(entity);
|
return BRIDGE.getNPC(entity);
|
||||||
}
|
}
|
||||||
@ -734,8 +751,23 @@ public class NMS {
|
|||||||
BRIDGE.replaceTrackerEntry(entity);
|
BRIDGE.replaceTrackerEntry(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPositionUpdate(Entity from, boolean position, Float bodyYaw, Float pitch, Float headYaw) {
|
public static void sendPositionUpdate(Entity from, Collection<Player> to, boolean position) {
|
||||||
BRIDGE.sendPositionUpdate(from, position, bodyYaw, pitch, headYaw);
|
sendPositionUpdate(from, to, position, NMS.getYaw(from), from.getLocation().getPitch(), NMS.getHeadYaw(from));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendPositionUpdate(Entity from, Collection<Player> to, boolean position, Float bodyYaw,
|
||||||
|
Float pitch, Float headYaw) {
|
||||||
|
BRIDGE.sendPositionUpdate(from, to, position, bodyYaw, pitch, headYaw);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendPositionUpdateNearby(Entity from, boolean position) {
|
||||||
|
sendPositionUpdate(from, getNearbyPlayers(from), position, NMS.getYaw(from), from.getLocation().getPitch(),
|
||||||
|
NMS.getHeadYaw(from));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendPositionUpdateNearby(Entity from, boolean position, Float bodyYaw, Float pitch,
|
||||||
|
Float headYaw) {
|
||||||
|
sendPositionUpdate(from, getNearbyPlayers(from), position, bodyYaw, pitch, headYaw);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean sendTabListAdd(Player recipient, Player listPlayer) {
|
public static boolean sendTabListAdd(Player recipient, Player listPlayer) {
|
||||||
|
@ -168,7 +168,8 @@ public interface NMSBridge {
|
|||||||
|
|
||||||
public void replaceTrackerEntry(Entity entity);
|
public void replaceTrackerEntry(Entity entity);
|
||||||
|
|
||||||
public void sendPositionUpdate(Entity from, boolean position, Float bodyYaw, Float pitch, Float headYaw);
|
public void sendPositionUpdate(Entity from, Collection<Player> to, boolean position, Float bodyYaw, Float pitch,
|
||||||
|
Float headYaw);
|
||||||
|
|
||||||
public boolean sendTabListAdd(Player recipient, Player listPlayer);
|
public boolean sendTabListAdd(Player recipient, Player listPlayer);
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
"citizens.commands.npc.collidable.unset" : "[[{0}]] will no longer collide with entities.",
|
"citizens.commands.npc.collidable.unset" : "[[{0}]] will no longer collide with entities.",
|
||||||
"citizens.commands.npc.command.command-added" : "Command [[{0}]] added with id [[{1}]].",
|
"citizens.commands.npc.command.command-added" : "Command [[{0}]] added with id [[{1}]].",
|
||||||
"citizens.commands.npc.command.command-removed" : "Command [[{0}]] removed.",
|
"citizens.commands.npc.command.command-removed" : "Command [[{0}]] removed.",
|
||||||
|
"citizens.commands.npc.command.cleared" : "[[{0}]]''s commands cleared.",
|
||||||
"citizens.commands.npc.command.cost-missing" : "Missing cost to set.",
|
"citizens.commands.npc.command.cost-missing" : "Missing cost to set.",
|
||||||
"citizens.commands.npc.command.cost-set" : "Set cost per click to [[{0}]].",
|
"citizens.commands.npc.command.cost-set" : "Set cost per click to [[{0}]].",
|
||||||
"citizens.commands.npc.command.describe-format" : "<br> - {0} [{1}s] [cost:{2}] [exp:{3}] [<click:run_command:/npc cmd remove {4}><hover:show_text:Remove this command><red><u>-</hover></click>]",
|
"citizens.commands.npc.command.describe-format" : "<br> - {0} [{1}s] [cost:{2}] [exp:{3}] [<click:run_command:/npc cmd remove {4}><hover:show_text:Remove this command><red><u>-</hover></click>]",
|
||||||
|
@ -1080,8 +1080,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1110,7 +1110,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1881,6 +1883,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
sendPacketsNearby(from, location, list, radius);
|
sendPacketsNearby(from, location, list, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
|
if (packets == null)
|
||||||
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
radius *= radius;
|
radius *= radius;
|
||||||
final org.bukkit.World world = location.getWorld();
|
final org.bukkit.World world = location.getWorld();
|
||||||
|
@ -1133,8 +1133,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1163,7 +1163,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1940,6 +1942,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
sendPacketsNearby(from, location, list, radius);
|
sendPacketsNearby(from, location, list, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
|
if (packets == null)
|
||||||
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
radius *= radius;
|
radius *= radius;
|
||||||
final org.bukkit.World world = location.getWorld();
|
final org.bukkit.World world = location.getWorld();
|
||||||
|
@ -1140,8 +1140,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1170,7 +1170,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1947,6 +1949,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
sendPacketsNearby(from, location, list, radius);
|
sendPacketsNearby(from, location, list, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
|
if (packets == null)
|
||||||
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
radius *= radius;
|
radius *= radius;
|
||||||
final org.bukkit.World world = location.getWorld();
|
final org.bukkit.World world = location.getWorld();
|
||||||
|
@ -1177,8 +1177,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1207,7 +1207,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2061,6 +2063,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
sendPacketsNearby(from, location, list, radius);
|
sendPacketsNearby(from, location, list, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
|
if (packets == null)
|
||||||
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
radius *= radius;
|
radius *= radius;
|
||||||
final org.bukkit.World world = location.getWorld();
|
final org.bukkit.World world = location.getWorld();
|
||||||
|
@ -4,7 +4,6 @@ import java.lang.invoke.MethodHandle;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -1196,8 +1195,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1226,7 +1225,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2101,14 +2102,12 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((EntityPlayer) NMSImpl.getHandle(player)).playerConnection.sendPacket(packet);
|
((EntityPlayer) NMSImpl.getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
}
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
|
@ -4,7 +4,6 @@ import java.lang.invoke.MethodHandle;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -1213,8 +1212,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1243,7 +1242,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2166,14 +2167,12 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((EntityPlayer) NMSImpl.getHandle(player)).playerConnection.sendPacket(packet);
|
((EntityPlayer) NMSImpl.getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
}
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
|
@ -4,7 +4,6 @@ import java.lang.invoke.MethodHandle;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -1249,8 +1248,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1279,7 +1278,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2164,14 +2165,12 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((EntityPlayer) NMSImpl.getHandle(player)).playerConnection.sendPacket(packet);
|
((EntityPlayer) NMSImpl.getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
}
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
|
@ -4,8 +4,6 @@ import java.lang.invoke.MethodHandle;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
@ -1243,8 +1241,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.getYRot();
|
bodyYaw = handle.getYRot();
|
||||||
@ -1273,7 +1271,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2163,34 +2163,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((ServerPlayer) NMSImpl.getHandle(player)).connection.send(packet);
|
((ServerPlayer) NMSImpl.getHandle(player)).connection.send(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((ServerPlayer) getHandle(player)).connection.send(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
|
||||||
radius *= radius;
|
|
||||||
final org.bukkit.World world = location.getWorld();
|
|
||||||
for (Player player : CitizensAPI.getLocationLookup().getNearbyPlayers(location, radius)) {
|
|
||||||
if (world != player.getWorld() || from != null && !player.canSee(from)
|
|
||||||
|| location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Packet<?> packet : packets) {
|
|
||||||
NMSImpl.sendPacket(player, packet);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Packet<?>... packets) {
|
|
||||||
NMSImpl.sendPacketsNearby(from, location, Arrays.asList(packets), 64);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
||||||
try {
|
try {
|
||||||
ADVANCEMENTS_PLAYER_FIELD.invoke(getHandle(entity), instance);
|
ADVANCEMENTS_PLAYER_FIELD.invoke(getHandle(entity), instance);
|
||||||
|
@ -3,8 +3,6 @@ package net.citizensnpcs.nms.v1_18_R2.util;
|
|||||||
import java.lang.invoke.MethodHandle;
|
import java.lang.invoke.MethodHandle;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
@ -1252,8 +1250,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.getYRot();
|
bodyYaw = handle.getYRot();
|
||||||
@ -1282,7 +1280,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new ClientboundRotateHeadPacket(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2170,34 +2170,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((ServerPlayer) NMSImpl.getHandle(player)).connection.send(packet);
|
((ServerPlayer) NMSImpl.getHandle(player)).connection.send(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((ServerPlayer) getHandle(player)).connection.send(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
|
||||||
radius *= radius;
|
|
||||||
final org.bukkit.World world = location.getWorld();
|
|
||||||
for (Player player : CitizensAPI.getLocationLookup().getNearbyPlayers(location, radius)) {
|
|
||||||
if (world != player.getWorld() || from != null && !player.canSee(from)
|
|
||||||
|| location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Packet<?> packet : packets) {
|
|
||||||
NMSImpl.sendPacket(player, packet);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Packet<?>... packets) {
|
|
||||||
NMSImpl.sendPacketsNearby(from, location, Arrays.asList(packets), 64);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
||||||
try {
|
try {
|
||||||
ADVANCEMENTS_PLAYER_FIELD.invoke(getHandle(entity), instance);
|
ADVANCEMENTS_PLAYER_FIELD.invoke(getHandle(entity), instance);
|
||||||
|
@ -4,7 +4,6 @@ package net.citizensnpcs.nms.v1_19_R3.util;
|
|||||||
import java.lang.invoke.MethodHandle;
|
import java.lang.invoke.MethodHandle;
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -1375,10 +1374,12 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
List<Packet<?>> toSend = getPositionUpdate(from, position, bodyYaw, pitch, headYaw);
|
List<Packet<?>> toSend = getPositionUpdate(from, position, bodyYaw, pitch, headYaw);
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player dest : to) {
|
||||||
|
sendPackets(dest, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2396,34 +2397,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((ServerPlayer) getHandle(player)).connection.send(packet);
|
((ServerPlayer) getHandle(player)).connection.send(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((ServerPlayer) getHandle(player)).connection.send(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
|
||||||
radius *= radius;
|
|
||||||
final org.bukkit.World world = location.getWorld();
|
|
||||||
for (Player player : CitizensAPI.getLocationLookup().getNearbyPlayers(location, radius)) {
|
|
||||||
if (world != player.getWorld() || from != null && !player.canSee(from)
|
|
||||||
|| location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Packet<?> packet : packets) {
|
|
||||||
sendPacket(player, packet);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Packet<?>... packets) {
|
|
||||||
sendPacketsNearby(from, location, Arrays.asList(packets), 64);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
||||||
try {
|
try {
|
||||||
ADVANCEMENTS_PLAYER_SETTER.invoke(getHandle(entity), instance);
|
ADVANCEMENTS_PLAYER_SETTER.invoke(getHandle(entity), instance);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.citizensnpcs.nms.v1_20_R3.util;
|
package net.citizensnpcs.nms.v1_20_R3.util;
|
||||||
|
|
||||||
import java.lang.invoke.MethodHandle;
|
import java.lang.invoke.MethodHandle;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -1346,10 +1345,12 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
List<Packet<?>> toSend = getPositionUpdate(from, position, bodyYaw, pitch, headYaw);
|
List<Packet<?>> toSend = getPositionUpdate(from, position, bodyYaw, pitch, headYaw);
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player dest : to) {
|
||||||
|
sendPackets(dest, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -2357,34 +2358,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
((ServerPlayer) getHandle(player)).connection.send(packet);
|
((ServerPlayer) getHandle(player)).connection.send(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet) {
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
sendPacketNearby(from, location, packet, 64);
|
if (packets == null)
|
||||||
}
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
public static void sendPacketNearby(Player from, Location location, Packet<?> packet, double radius) {
|
((ServerPlayer) getHandle(player)).connection.send(packet);
|
||||||
List<Packet<?>> list = new ArrayList<>();
|
|
||||||
list.add(packet);
|
|
||||||
sendPacketsNearby(from, location, list, radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
|
||||||
radius *= radius;
|
|
||||||
final org.bukkit.World world = location.getWorld();
|
|
||||||
for (Player player : CitizensAPI.getLocationLookup().getNearbyPlayers(location, radius)) {
|
|
||||||
if (world != player.getWorld() || from != null && !player.canSee(from)
|
|
||||||
|| location.distanceSquared(player.getLocation(PACKET_CACHE_LOCATION)) > radius) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (Packet<?> packet : packets) {
|
|
||||||
sendPacket(player, packet);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Packet<?>... packets) {
|
|
||||||
sendPacketsNearby(from, location, Arrays.asList(packets), 64);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
public static void setAdvancement(Player entity, PlayerAdvancements instance) {
|
||||||
try {
|
try {
|
||||||
ADVANCEMENTS_PLAYER_SETTER.invoke(getHandle(entity), instance);
|
ADVANCEMENTS_PLAYER_SETTER.invoke(getHandle(entity), instance);
|
||||||
|
@ -1006,8 +1006,8 @@ public class NMSImpl implements NMSBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPositionUpdate(org.bukkit.entity.Entity from, boolean position, Float bodyYaw, Float pitch,
|
public void sendPositionUpdate(org.bukkit.entity.Entity from, Collection<Player> to, boolean position,
|
||||||
Float headYaw) {
|
Float bodyYaw, Float pitch, Float headYaw) {
|
||||||
Entity handle = getHandle(from);
|
Entity handle = getHandle(from);
|
||||||
if (bodyYaw == null) {
|
if (bodyYaw == null) {
|
||||||
bodyYaw = handle.yaw;
|
bodyYaw = handle.yaw;
|
||||||
@ -1030,7 +1030,9 @@ public class NMSImpl implements NMSBridge {
|
|||||||
if (headYaw != null) {
|
if (headYaw != null) {
|
||||||
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
toSend.add(new PacketPlayOutEntityHeadRotation(handle, (byte) (headYaw * 256.0F / 360.0F)));
|
||||||
}
|
}
|
||||||
sendPacketsNearby(null, from.getLocation(), toSend, 64);
|
for (Player player : to) {
|
||||||
|
sendPackets(player, toSend);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1738,6 +1740,14 @@ public class NMSImpl implements NMSBridge {
|
|||||||
sendPacketsNearby(from, location, list, radius);
|
sendPacketsNearby(from, location, list, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sendPackets(Player player, Iterable<Packet<?>> packets) {
|
||||||
|
if (packets == null)
|
||||||
|
return;
|
||||||
|
for (Packet<?> packet : packets) {
|
||||||
|
((EntityPlayer) getHandle(player)).playerConnection.sendPacket(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
public static void sendPacketsNearby(Player from, Location location, Collection<Packet<?>> packets, double radius) {
|
||||||
radius *= radius;
|
radius *= radius;
|
||||||
final org.bukkit.World world = location.getWorld();
|
final org.bukkit.World world = location.getWorld();
|
||||||
|
Loading…
Reference in New Issue
Block a user