Skip to content

Commit

Permalink
Add /npc packet
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Mar 2, 2023
1 parent 98e95b6 commit cb6f8be
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 3 deletions.
3 changes: 0 additions & 3 deletions main/src/main/java/net/citizensnpcs/EventListen.java
Expand Up @@ -224,9 +224,6 @@ public void onEntityBlockForm(EntityBlockFormEvent event) {
}
}

/*
* Entity events
*/
@EventHandler
public void onEntityCombust(EntityCombustEvent event) {
NPC npc = CitizensAPI.getNPCRegistry().getNPC(event.getEntity());
Expand Down
22 changes: 22 additions & 0 deletions main/src/main/java/net/citizensnpcs/commands/NPCCommands.java
Expand Up @@ -1861,6 +1861,28 @@ public void owner(CommandContext args, CommandSender sender, NPC npc) throws Com
Messaging.sendTr(sender, serverOwner ? Messages.OWNER_SET_SERVER : Messages.OWNER_SET, npc.getName(), uuid);
}

@Command(
aliases = { "npc" },
usage = "packet --enabled [true|false]",
desc = "Controls packet NPC settings",
modifiers = { "packet" },
min = 1,
max = 1,
permission = "citizens.npc.packet")
@Requirements(selected = true, ownership = true)
public void packet(CommandContext args, CommandSender sender, NPC npc, @Flag("enabled") Boolean explicit)
throws CommandException {
if (explicit != null) {
if (explicit) {
npc.getOrAddTrait(PacketNPC.class);
Messaging.sendTr(sender, Messages.NPC_PACKET_ENABLED, npc.getName());
} else {
npc.removeTrait(PacketNPC.class);
Messaging.sendTr(sender, Messages.NPC_PACKET_DISABLED, npc.getName());
}
}
}

@Command(
aliases = { "npc" },
usage = "passive (--set [true|false])",
Expand Down
10 changes: 10 additions & 0 deletions main/src/main/java/net/citizensnpcs/trait/PacketNPC.java
Expand Up @@ -2,12 +2,15 @@

import java.util.function.Consumer;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;

import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.LocationLookup.PerPlayerMetadata;
import net.citizensnpcs.api.event.DespawnReason;
import net.citizensnpcs.api.event.SpawnReason;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.trait.TraitName;
Expand All @@ -24,6 +27,13 @@ public PacketNPC() {
super("packet");
}

@Override
public void onRemove() {
npc.despawn(DespawnReason.PENDING_RESPAWN);
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(),
() -> npc.spawn(npc.getStoredLocation(), SpawnReason.RESPAWN));
}

@Override
public void onSpawn() {
playerTracker = NMS.getPlayerTracker(npc.getEntity());
Expand Down
1 change: 1 addition & 0 deletions main/src/main/java/net/citizensnpcs/trait/ShopTrait.java
Expand Up @@ -183,6 +183,7 @@ public NPCShopContentsEditor(NPCShop shop) {

public void changePage(int newPage) {
this.page = newPage;
ctx.setTitle("NPC Shop Contents Editor Page " + newPage);
NPCShopPage shopPage = shop.getOrCreatePage(page);
for (int i = 0; i < ctx.getInventory().getSize(); i++) {
InventoryMenuSlot slot = ctx.getSlot(i);
Expand Down
2 changes: 2 additions & 0 deletions main/src/main/java/net/citizensnpcs/util/Messages.java
Expand Up @@ -273,6 +273,8 @@ public class Messages {
public static final String NPC_NOT_DAMAGEABLE = "citizens.commands.npc.hurt.not-damageable";
public static final String NPC_NOT_FOUND = "citizens.notifications.npc-not-found";
public static final String NPC_OWNER = "citizens.commands.npc.owner.owner";
public static final String NPC_PACKET_DISABLED = "citizens.commands.npc.packet.disabled";
public static final String NPC_PACKET_ENABLED = "citizens.commands.npc.packet.enabled";
public static final String NPC_PROTECTED = "citizens.commands.npc.hurt.protected";
public static final String NPC_REMOVED = "citizens.commands.npc.remove.removed";
public static final String NPC_RENAMED = "citizens.commands.npc.rename.renamed";
Expand Down
2 changes: 2 additions & 0 deletions main/src/main/resources/messages_en.properties
Expand Up @@ -189,6 +189,8 @@ citizens.commands.npc.owner.already-owner={0} is already the owner of [[{1}]].
citizens.commands.npc.owner.owner=[[{0}]]''s owner is [[{1}]].
citizens.commands.npc.owner.set-server=[[The server]] is now the owner of [[{0}]].
citizens.commands.npc.owner.set=[[{1}]] is now the owner of [[{0}]].
citizens.commands.npc.packet.enabled=[[{0}]] is now a packet NPC.
citizens.commands.npc.packet.disabled=[[{0}]] is no longer a packet NPC.
citizens.commands.npc.panda.invalid-gene=Invalid gene. Valid genes are [[{0}]].
citizens.commands.npc.panda.sneezing=Started sneezing.
citizens.commands.npc.panda.sneezing-stopped=Stopped sneezing.
Expand Down

0 comments on commit cb6f8be

Please sign in to comment.