Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
3fdc1da
Initial cleanups & optimizations
tal5 Jul 12, 2025
b4b8006
Remove unnecessary `try`
tal5 Jul 12, 2025
78306a0
Cleanup reflection
tal5 Jul 12, 2025
06d6df9
Initial work on fake block light levels
tal5 Jul 17, 2025
d23b772
Minor optimization to `max` handling
tal5 Jul 17, 2025
0a660df
Pass in NMS world
tal5 Jul 17, 2025
a561830
Account for sky darkness
tal5 Jul 17, 2025
9bf7492
Set both block and sky light for smoother visuals
tal5 Jul 17, 2025
515940f
No need for ambient darkness
tal5 Jul 17, 2025
86c96cd
Merge remote-tracking branch 'upstream/dev' into fake_blocks_rewritin…
tal5 Jul 18, 2025
f211000
Bring back some short-circuiting
tal5 Jul 18, 2025
15d8371
Handle all semi-transparent blocks' lighting
tal5 Jul 24, 2025
47c2988
Naming, comments
tal5 Jul 27, 2025
54b908c
Skip lighting if the existing state isn't solid
tal5 Jul 27, 2025
97e44bc
Split up fake block packet handlers
tal5 Jul 28, 2025
2024dbf
Cleanup fake block handlers
tal5 Jul 28, 2025
365d4b6
Don't make new section blocks packet unless needed
tal5 Jul 28, 2025
ca77b2a
Merge remote-tracking branch 'upstream/dev' into fake_blocks_rewritin…
tal5 Jul 28, 2025
19c450b
Section block packets: use `MethodHandle`s
tal5 Jul 28, 2025
4d00a6e
Minor change
tal5 Jul 29, 2025
34d4e1d
Merge remote-tracking branch 'upstream/dev' into fake_blocks_rewritin…
tal5 Sep 23, 2025
29b3a87
Reflection fixup
tal5 Sep 23, 2025
6acdb14
Persist light through fake blocks between sections
tal5 Sep 27, 2025
46fedf5
No `EnumMap`
tal5 Sep 27, 2025
8577540
1.21.9 part 1: bump versions
tal5 Sep 30, 2025
fa3fa0c
1.21.9 part 2: bump import revisions
tal5 Sep 30, 2025
54288ea
1.21.9 part 3: update reflection mappings
tal5 Sep 30, 2025
eb89e66
1.21.9 part 4: update mappings check
tal5 Sep 30, 2025
5cdacb8
1.21.9 part 5: initial code updates
tal5 Oct 1, 2025
27b34f6
`debugblock`: minimal compatibility, meta note
tal5 Oct 1, 2025
af2d566
`1.21.10` update
tal5 Oct 7, 2025
2232f28
`server.recent_tps`: paper compatibility fix (#2782)
davight Oct 24, 2025
1eabd92
`entity exit vehicle, form/go in block, glide`: update (#2788)
MC-Samuel Nov 1, 2025
cae57ce
`entity pose, combust, create portal, despawn`: update (#2786)
MC-Samuel Nov 13, 2025
1494314
`EntityTag.variant`: copper golems support (#2780)
MC-Samuel Nov 13, 2025
8f57b87
`entity drops item, enters/exists portal, enters vehicle`: modernize …
MC-Samuel Nov 13, 2025
8e018cd
`EntityTag.detonate` mech: fix wind charge support (#2793)
davight Nov 16, 2025
955934f
`area enter/exit, creeper powered, entity breaks hanging/changes bloc…
MC-Samuel Nov 23, 2025
543e135
`entity interacts/spawns/swims/tamed`: update (#2789)
MC-Samuel Nov 23, 2025
c4760af
Server links support (#2754)
davight Nov 24, 2025
f2a556f
Minor cleanups to recent PRs
tal5 Nov 24, 2025
6481678
Minor cleanups to server links handling
tal5 Nov 24, 2025
7b64f0d
`PlayerTag.bed_spawn`: 1.21 paper fix (#2794)
MC-Samuel Nov 24, 2025
df922b2
Fix offline player ender chest loading
tal5 Dec 8, 2025
9ac08f2
1.21.11 part 1: bump version numbers
tal5 Dec 9, 2025
443b8ca
1.21.11 part 2: bump import revision numbers
tal5 Dec 9, 2025
cede8b0
1.21.11 part 3: update reflection mappings
tal5 Dec 9, 2025
70b2d5c
1.21.11 part 4: update mappings check
tal5 Dec 9, 2025
22e543d
1.21.11 part 5: initial code updates
tal5 Dec 10, 2025
42b15a8
1.21.11 part 6: minor meta updates
tal5 Dec 10, 2025
8f9438b
1.21.11 part 7: bump citizens version
tal5 Dec 10, 2025
72cc86f
1.21.11 update (#2798)
tal5 Dec 10, 2025
9b6c658
`<entity> explosion primes`: updates, meta fixes (#2776)
MC-Samuel Dec 12, 2025
f950c87
`MaterialTag.count`: add wild flowers and leaf litter (#2784)
MC-Samuel Dec 13, 2025
edce8c8
`EntityTag.profession`: 1.21 fix, updates (#2792)
MC-Samuel Dec 13, 2025
e238999
Various minor cleanups
tal5 Dec 15, 2025
df49914
Fix `PlayerHelper(1.21)#refreshPlayer` on Paper
tal5 Dec 15, 2025
117278f
`BiomeTag.foliage_color` mech: 1.21 fix
tal5 Dec 24, 2025
c2c8331
`NetworkInterceptCodeGen`: 1.21 fix (#2800)
tal5 Dec 25, 2025
e001ec2
`GameRuleReflect`: 1.21.11 paper fixes
tal5 Dec 26, 2025
a9d4e86
`MaterialTag.level`: dried ghast support (#2779)
MC-Samuel Jan 4, 2026
3206ac0
`LocationTag.disabled_slots` tag and mech (#2781)
MC-Samuel Jan 4, 2026
eed6708
`FakeEquipmentPacketHandlers`: 1.21.11 fix
tal5 Jan 7, 2026
81a6724
Adventure NBT: bump, list handling fixes, cleanups
tal5 Jan 9, 2026
afba41b
`WorldTag.respawn_dragon`: workaround API bug (#2804)
davight Jan 12, 2026
065417a
`title` command: update to modern format (#2797)
davight Jan 12, 2026
ee236cf
`player prepares item enchant`: null entries fix (#2799)
Remasuri Jan 13, 2026
2322fb1
`title` command: avoid null values, packet cleanup (#2806)
davight Jan 13, 2026
df5cff6
`EntityTag.variant`: zombie nautilus support (#2801)
MC-Samuel Jan 14, 2026
1932e42
`BlockProperty#as(Type)` util method
tal5 Jan 16, 2026
e6d3123
`item_enchanted:` namespace matching support
tal5 Jan 21, 2026
0eca54f
Modernize 10 block events (#2774)
MC-Samuel Jan 26, 2026
727c1e1
`MaterialTag.mode`: creaking heart support, update (#2783)
MC-Samuel Jan 26, 2026
35af462
Add `EntityTag.state` to control armadillo states (#2802)
MC-Samuel Jan 27, 2026
d53c6e1
smithing recipes: 1.21 fix (#2807)
davight Feb 4, 2026
54b3dab
consistency correction
mcmonkey4eva Feb 9, 2026
95d7ce4
patch for citizens change
mcmonkey4eva Feb 9, 2026
b1286a3
Compat with Spigot 1.21.11 R0.2
mcmonkey4eva Feb 12, 2026
19c7dfe
new tag: server.bukkit_name
mcmonkey4eva Feb 12, 2026
9b0ff5d
fix monkeystats platform name
mcmonkey4eva Feb 12, 2026
edf91f4
Item components framework (#2760)
tal5 Feb 22, 2026
321d1ae
`inventory` command: fix value-less adjusts
tal5 Mar 7, 2026
bad1492
26.1 part 1: copy over 1.21 module
tal5 Mar 25, 2026
2858f2f
`MaterialMode`: fix enum error on old versions
tal5 Mar 27, 2026
3bb9efd
26.1 part 2: bump versions
tal5 Mar 25, 2026
b336d97
26.1 part 3: handle import versions
tal5 Mar 25, 2026
909187e
26.1 part 4: handle obfuscation removal
tal5 Mar 27, 2026
a6b23a9
26.1 part 5: initial code updates
tal5 Mar 27, 2026
04b281c
26.1 part 6: handle Java 25
tal5 Mar 27, 2026
85a7bcb
`EntityTag.color`: bugfix for cat types (#2818)
MC-Samuel Mar 28, 2026
06c398a
26.1 part 7: bump Denizen version
tal5 Mar 28, 2026
a7abef7
26.1 support (#2819)
tal5 Mar 28, 2026
bc73dec
it is 2026
mcmonkey4eva Apr 3, 2026
3b4eb34
26.1.1 bump
tal5 Apr 3, 2026
65c796d
Fix and bump for Paper 26.1.1
tal5 Apr 5, 2026
d6b4f2b
Additional Paper NMS rename
tal5 Apr 5, 2026
7f6475f
`ItemTag.item_model/max_durability/max_stack_size/rarity` (#2734)
heypr Apr 8, 2026
87709c7
Trial Spawners and Vaults support (#2790)
MC-Samuel Apr 11, 2026
b427c5f
Several minor fixes
tal5 Apr 11, 2026
ae1a143
Bump to 26.1.2
tal5 Apr 13, 2026
335106e
Several Paper NMS renames
tal5 Apr 20, 2026
d26deb8
`attach`: fix velocity packet handling
tal5 Apr 20, 2026
ed35626
`MaterialTag.sides`: mossy carpet support (#2808)
MC-Samuel Apr 27, 2026
2653b75
`ChunkTag.regenerate`: was removed, deprecate (#2820)
MC-Samuel Jun 12, 2026
9662b50
Add a `EntityTag.restock_trades` mechanism (#2815)
heypr Jun 12, 2026
cc39ed6
`EntityTag.color`: patch for frogs (#2824)
MC-Samuel Jun 12, 2026
aa88bbe
Minor fixes to recent PRs
tal5 Jun 12, 2026
f19ee47
26.2 part 1: copy over 26.1 module
tal5 Jun 17, 2026
d1bb339
26.2 part 2: bump depends and denizen version
tal5 Jun 17, 2026
889cc47
26.2 part 3: initial code updates
tal5 Jun 18, 2026
10dad85
Sulfur cube & potent sulfur features (#2827)
MC-Samuel Jun 18, 2026
1630b0a
Minor fixes to recent PR
tal5 Jun 18, 2026
0ebde83
26.2 Paper NMS patch
tal5 Jun 18, 2026
c61d157
fix meta errors
mcmonkey4eva Jun 19, 2026
118a5b0
Multi-Sided Sign Support (#2796)
MC-Samuel Jul 9, 2026
f468a51
Minor fixups to sign PR
tal5 Jul 9, 2026
bcc2c7e
`map` command: fix default radius value (#2829)
davight Jul 9, 2026
ca30c91
`entity forms block` event: fix material context (#2822)
MC-Samuel Jul 9, 2026
d9b897c
`player raises|lowers <item>`: spear support (#2825)
MC-Samuel Jul 18, 2026
1750728
`FormattedTextHelper`: stricter URL parsing (#2832)
tal5 Jul 20, 2026
a284952
`pause`/`resume` commands: update & fix (#2816)
davight Jul 20, 2026
6aa77dd
`NPCTag`: modernize, `can_navigate_to` tag (#2811)
MC-Samuel Jul 22, 2026
ecede59
`server list ping` event: player count fix & support (#2831)
MC-Samuel Jul 26, 2026
f72546d
`EntityTag`: `is_enemy` tag, `enemy` matcher (#2837)
creaturesofhabit Aug 10, 2026
234fe8f
`FakeBlockHelper`: handle `fluidCount` in chunk data (#2834)
BehrRiley Aug 10, 2026
ec61942
Update MiniMessage documentation link (#2842)
BehrRiley Aug 22, 2026
0592bc0
Initial cleanups & optimizations
tal5 Jul 12, 2025
17bcd4d
Remove unnecessary `try`
tal5 Jul 12, 2025
04ef69f
Cleanup reflection
tal5 Jul 12, 2025
f60f396
Initial work on fake block light levels
tal5 Jul 17, 2025
169ba49
Minor optimization to `max` handling
tal5 Jul 17, 2025
4134ed6
Pass in NMS world
tal5 Jul 17, 2025
ef72f4e
Account for sky darkness
tal5 Jul 17, 2025
5f9f2ec
Set both block and sky light for smoother visuals
tal5 Jul 17, 2025
a44958d
No need for ambient darkness
tal5 Jul 17, 2025
381c9b1
Bring back some short-circuiting
tal5 Jul 18, 2025
8f451d5
Handle all semi-transparent blocks' lighting
tal5 Jul 24, 2025
1e2424a
Naming, comments
tal5 Jul 27, 2025
cc107e8
Skip lighting if the existing state isn't solid
tal5 Jul 27, 2025
95ca66c
Split up fake block packet handlers
tal5 Jul 28, 2025
b243ab5
Cleanup fake block handlers
tal5 Jul 28, 2025
b00bfde
Don't make new section blocks packet unless needed
tal5 Jul 28, 2025
8b8bf5f
Section block packets: use `MethodHandle`s
tal5 Jul 28, 2025
1da7331
Minor change
tal5 Jul 29, 2025
02e15f2
Reflection fixup
tal5 Sep 23, 2025
1b27c5e
Persist light through fake blocks between sections
tal5 Sep 27, 2025
9198b99
No `EnumMap`
tal5 Sep 27, 2025
378c527
Breakpoint commit
tal5 Nov 3, 2025
45033ce
Some more lighting edge-cases
tal5 Nov 13, 2025
d7d915c
Handle missing light data on first chunk load
tal5 Nov 29, 2025
752c8ca
Initial cleanups & optimizations
tal5 Jul 12, 2025
2ecc45a
Remove unnecessary `try`
tal5 Jul 12, 2025
84db05e
Cleanup reflection
tal5 Jul 12, 2025
78974d3
Initial work on fake block light levels
tal5 Jul 17, 2025
16e448a
Minor optimization to `max` handling
tal5 Jul 17, 2025
9eb49fb
Pass in NMS world
tal5 Jul 17, 2025
ecc2432
Account for sky darkness
tal5 Jul 17, 2025
6a8a7e3
Set both block and sky light for smoother visuals
tal5 Jul 17, 2025
c1a1541
No need for ambient darkness
tal5 Jul 17, 2025
4ecd0ef
Bring back some short-circuiting
tal5 Jul 18, 2025
7d952c3
Handle all semi-transparent blocks' lighting
tal5 Jul 24, 2025
29378c1
Naming, comments
tal5 Jul 27, 2025
6ccc2e5
Skip lighting if the existing state isn't solid
tal5 Jul 27, 2025
3aeb675
Split up fake block packet handlers
tal5 Jul 28, 2025
8256874
Cleanup fake block handlers
tal5 Jul 28, 2025
1388b8c
Don't make new section blocks packet unless needed
tal5 Jul 28, 2025
6145b05
Section block packets: use `MethodHandle`s
tal5 Jul 28, 2025
bb1bbfb
Minor change
tal5 Jul 29, 2025
77bd157
Reflection fixup
tal5 Sep 23, 2025
b84da18
Persist light through fake blocks between sections
tal5 Sep 27, 2025
10e784e
No `EnumMap`
tal5 Sep 27, 2025
97896b7
Rewrite 2.0
tal5 Aug 25, 2026
06d94b4
Reflection Mappings fix
tal5 Aug 25, 2026
475a420
Merge remote-tracking branch 'origin/fake_blocks_rewriting_fixes' int…
tal5 Aug 25, 2026
c998cbc
Minor cleanup
tal5 Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2019-2024 The Denizen Script Team
Copyright (c) 2019-2026 The Denizen Script Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ The Denizen Scripting Language - Spigot Impl

An implementation of the Denizen Scripting Language for Spigot servers, with strong Citizens interlinks to emphasize the power of using Denizen with NPCs!

**Version 1.3.1**: Compatible with Spigot 1.17.1, 1.18.2, 1.19.4, 1.20.6, and 1.21.8!
**Version 1.3.3**: Compatible with Spigot 1.17.1, 1.18.2, 1.19.4, 1.20.6, 1.21.11, 26.1.2, and 26.2!

**Learn about Denizen from the Beginner's guide:** https://guide.denizenscript.com/guides/background/index.html

Expand Down Expand Up @@ -45,7 +45,7 @@ An implementation of the Denizen Scripting Language for Spigot servers, with str
<dependency>
<groupId>com.denizenscript</groupId>
<artifactId>denizen</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>1.3.3-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
<exclusions>
Expand Down Expand Up @@ -78,7 +78,7 @@ Copyright (C) 2013-2019 The Denizen Script Team, All Rights Reserved.

The MIT License (MIT)

Copyright (c) 2019-2024 The Denizen Script Team
Copyright (c) 2019-2026 The Denizen Script Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
14 changes: 13 additions & 1 deletion dist/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>com.denizenscript</groupId>
<artifactId>denizen-parent</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>1.3.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down Expand Up @@ -60,6 +60,18 @@
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.denizenscript</groupId>
<artifactId>denizen-v26_1</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.denizenscript</groupId>
<artifactId>denizen-v26_2</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.denizenscript</groupId>
<artifactId>denizen-paper</artifactId>
Expand Down
6 changes: 3 additions & 3 deletions paper/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.denizenscript</groupId>
<artifactId>denizen-paper</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>1.3.3-SNAPSHOT</version>

<repositories>
<repository>
Expand All @@ -25,13 +25,13 @@
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.8-R0.1-SNAPSHOT</version>
<version>[26.2.build,)</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.citizensnpcs</groupId>
<artifactId>citizens-main</artifactId>
<version>2.0.38-SNAPSHOT</version>
<version>2.0.42-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
<exclusions>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.denizenscript.denizen.nms.interfaces.packets.PacketOutChat;
import com.denizenscript.denizen.objects.EntityTag;
import com.denizenscript.denizen.objects.ItemTag;
import com.denizenscript.denizen.paper.datacomponents.ComponentAdaptersRegistry;
import com.denizenscript.denizen.paper.events.*;
import com.denizenscript.denizen.paper.properties.*;
import com.denizenscript.denizen.paper.tags.PaperTagBase;
Expand All @@ -20,6 +21,9 @@
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;

import java.util.ArrayList;
import java.util.List;

public class PaperModule {

public static void init() {
Expand Down Expand Up @@ -67,7 +71,7 @@ public static void init() {
ScriptEvent.registerScriptEvent(PlayerJumpsScriptEventPaperImpl.class);
ScriptEvent.registerScriptEvent(PlayerLecternPageChangeScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerLoomPatternSelectScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerNameEntityScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerNamesEntityScriptEvent.class);
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_20)) {
ScriptEvent.registerScriptEvent(PlayerOpenSignScriptEvent.class);
}
Expand All @@ -76,6 +80,9 @@ public static void init() {
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_18)) {
ScriptEvent.registerScriptEvent(PlayerRaiseLowerItemScriptEventPaperImpl.class);
}
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
ScriptEvent.registerScriptEvent(PlayerReceivesLinksScriptEvent.class);
}
ScriptEvent.registerScriptEvent(PlayerSelectsStonecutterRecipeScriptEvent.class);
ScriptEvent.registerScriptEvent(PlayerSetSpawnScriptEvent.class);
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_20)) {
Expand All @@ -100,6 +107,9 @@ public static void init() {
ScriptEvent.registerScriptEvent(TNTPrimesScriptEvent.class);
}
ScriptEvent.registerScriptEvent(UnknownCommandScriptEvent.class);
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
ScriptEvent.registerScriptEvent(VaultChangesStateScriptEvent.class);
}
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19)) {
ScriptEvent.registerScriptEvent(WardenChangesAngerLevelScriptEvent.class);
}
Expand Down Expand Up @@ -127,6 +137,12 @@ public static void init() {
PropertyParser.registerProperty(EntityWitherInvulnerable.class, EntityTag.class);
PropertyParser.registerProperty(ItemArmorStand.class, ItemTag.class);

// Components system
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
PropertyParser.registerProperty(ItemRemovedComponents.class, ItemTag.class);
ComponentAdaptersRegistry.register();
}

// Paper object extensions
PaperElementExtensions.register();
PaperEntityExtensions.register();
Expand Down Expand Up @@ -162,6 +178,14 @@ public static String stringifyComponent(Component component) {
return FormattedTextHelper.stringify(FormattedTextHelper.parseJson(componentToJson(component)));
}

public static List<String> stringifyComponentList(List<Component> components) {
List<String> result = new ArrayList<>(components.size());
for (Component component : components) {
result.add(stringifyComponent(component));
}
return result;
}

public static Component jsonToComponent(String json) {
if (json == null) {
return null;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.denizenscript.denizen.paper.datacomponents;

public class ComponentAdaptersRegistry {

public static void register() {
DataComponentAdapter.register(new FoodAdapter());
DataComponentAdapter.register(new GliderAdapter());
DataComponentAdapter.register(new ItemModelAdapter());
DataComponentAdapter.register(new MaxDurabilityAdapter());
DataComponentAdapter.register(new MaxStackSizeAdapter());
DataComponentAdapter.register(new RarityAdapter());
}
}
Loading