diff --git a/docs/developers/modules/cooldown.mdx b/docs/developers/modules/cooldown.mdx
index eb7fe96c..500624ab 100644
--- a/docs/developers/modules/cooldown.mdx
+++ b/docs/developers/modules/cooldown.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Cooldown Module
## Overview
@@ -17,6 +19,13 @@ Apollo's cooldown module allows servers to interact with the Cooldown mod found
## Integration
### Sample Code
+Explore each integration by cycling through each tab, to find the best fit for your requirements and needs.
+
+
+
+
+
+### Displaying a Cooldown with an item
```java
public void displayCooldownItemExample(Player viewer) {
@@ -34,7 +43,11 @@ public void displayCooldownItemExample(Player viewer) {
);
});
}
+```
+
+### Displaying a Cooldown with a resource
+```java
public void displayCooldownResourceExample(Player viewer) {
Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
@@ -53,46 +66,172 @@ public void displayCooldownResourceExample(Player viewer) {
}
```
-### `Cooldown` Options
+### Removing a Cooldown
-`.name(String)` should include a unique identifier for the each cooldown.
```java
-.name("enderpearl-cooldown")
+public void removeCooldownExample(Player viewer) {
+ Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
+
+ apolloPlayerOpt.ifPresent(apolloPlayer -> {
+ this.cooldownModule.removeCooldown(apolloPlayer, "enderpearl-cooldown");
+ this.cooldownModule.removeCooldown(apolloPlayer, "lunar-cooldown");
+ });
+}
```
-`.duration(java.time.Duration)` the duration the cooldown should last for. See the [java.time.Duration Javadocs](https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html) for more.
+### Resetting all Cooldowns
+
```java
-.duration(Duration.ofSeconds(15))
+public void resetCooldownsExample(Player viewer) {
+ Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
+ apolloPlayerOpt.ifPresent(this.cooldownModule::resetCooldowns);
+}
```
-`.icon(itemStackIcon)` is how you display a custom item icon. Read the [icons utilities page](/apollo/developers/utilities/icons) to learn more about icons.
+
+
+
+
+### Displaying a Cooldown with an item
+
```java
-.icon(ItemStackIcon.builder().itemId("ENDER_PEARL").build())
+public void displayCooldownItemExample(Player viewer) {
+ DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder()
+ .setName("enderpearl-cooldown")
+ .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15)))
+ .setIcon(ProtobufUtil.createIconProto(ItemStackIcon.builder()
+ .itemName("ENDER_PEARL")
+ .build()))
+ .build();
+
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
```
-`.icon(SimpleResourceLocationIcon)` is how you display a custom texture icon. Read the [icons utilities page](/apollo/developers/utilities/icons) to learn more about icons.
+### Displaying a Cooldown with a resource
+
```java
-.icon(SimpleResourceLocationIcon.builder().resourceLocation("lunar:logo/logo-200x182.svg").size(12).build())
+public void displayCooldownResourceExample(Player viewer) {
+ DisplayCooldownMessage message = DisplayCooldownMessage.newBuilder()
+ .setName("lunar-cooldown")
+ .setDuration(ProtobufUtil.createDurationProto(Duration.ofSeconds(15)))
+ .setIcon(ProtobufUtil.createIconProto(SimpleResourceLocationIcon.builder()
+ .resourceLocation("lunar:logo/logo-200x182.svg")
+ .size(12)
+ .build()))
+ .build();
+
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
```
-### Removing a specific cooldown for a player
+### Removing a Cooldown
```java
public void removeCooldownExample(Player viewer) {
- Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
+ RemoveCooldownMessage enderpearlMessage = RemoveCooldownMessage.newBuilder()
+ .setName("enderpearl-cooldown")
+ .build();
- apolloPlayerOpt.ifPresent(apolloPlayer -> {
- this.cooldownModule.removeCooldown(apolloPlayer, "enderpearl-cooldown");
- this.cooldownModule.removeCooldown(apolloPlayer, "lunar-cooldown");
- });
+ ProtobufPacketUtil.sendPacket(viewer, enderpearlMessage);
}
```
-### Resetting all cooldowns for a player
+### Resetting all Cooldowns
```java
public void resetCooldownsExample(Player viewer) {
- Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId());
- apolloPlayerOpt.ifPresent(this.cooldownModule::resetCooldowns);
+ ResetCooldownsMessage message = ResetCooldownsMessage.getDefaultInstance();
+ ProtobufPacketUtil.sendPacket(viewer, message);
}
```
+
+
+
+
+
+### Displaying a Cooldown with an item
+
+```java
+public void displayCooldownItemExample(Player viewer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.DisplayCooldownMessage");
+ message.addProperty("name", "enderpearl-cooldown");
+ message.addProperty("duration", JsonUtil.createDurationObject(Duration.ofSeconds(15)));
+ message.add("icon", JsonUtil.createIconObject(
+ ItemStackIcon.builder()
+ .itemName("ENDER_PEARL")
+ .build())
+ );
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Displaying a Cooldown with a resource
+
+```java
+public void displayCooldownResourceExample(Player viewer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.DisplayCooldownMessage");
+ message.addProperty("name", "lunar-cooldown");
+ message.addProperty("duration", JsonUtil.createDurationObject(Duration.ofSeconds(15)));
+ message.add("icon", JsonUtil.createIconObject(
+ SimpleResourceLocationIcon.builder()
+ .resourceLocation("lunar:logo/logo-200x182.svg")
+ .size(12)
+ .build())
+ );
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Removing a Cooldown
+
+```java
+public void removeCooldownExample(Player viewer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.RemoveCooldownMessage");
+ message.addProperty("name", "enderpearl-cooldown");
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Resetting all Cooldowns
+
+```java
+public void resetCooldownsExample(Player viewer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.cooldown.v1.ResetCooldownsMessage");
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+
+
+
+
+### `Cooldown` Options
+
+`.name(String)` should include a unique identifier for the each cooldown.
+```java
+.name("enderpearl-cooldown")
+```
+
+`.duration(java.time.Duration)` the duration the cooldown should last for. See the [java.time.Duration Javadocs](https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html) for more.
+```java
+.duration(Duration.ofSeconds(15))
+```
+
+`.icon(itemStackIcon)` is how you display a custom item icon. Read the [icons utilities page](/apollo/developers/utilities/icons) to learn more about icons.
+```java
+.icon(ItemStackIcon.builder().itemId("ENDER_PEARL").build())
+```
+
+`.icon(SimpleResourceLocationIcon)` is how you display a custom texture icon. Read the [icons utilities page](/apollo/developers/utilities/icons) to learn more about icons.
+```java
+.icon(SimpleResourceLocationIcon.builder().resourceLocation("lunar:logo/logo-200x182.svg").size(12).build())
+```
diff --git a/docs/developers/modules/entity.mdx b/docs/developers/modules/entity.mdx
index 19fb8e2f..ecb1be7c 100644
--- a/docs/developers/modules/entity.mdx
+++ b/docs/developers/modules/entity.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Entity Module
## Overview
@@ -9,7 +11,14 @@ The entity module allows you to interact with entities client-sided.
## Integration
-### Override rainbow sheep for a player
+### Sample Code
+Explore each integration by cycling through each tab, to find the best fit for your requirements and needs.
+
+
+
+
+
+### Override Sheep rainbow state
```java
public void overrideRainbowSheepExample(Player viewer) {
@@ -25,14 +34,7 @@ public void overrideRainbowSheepExample(Player viewer) {
}
```
-#### `overrideRainbowSheep` Parameters
-
-1. `ApolloPlayer Viewer`
- - The player you want to view the rainbow sheep.
-2. `List sheepEntities`
- - A list of all sheep entities you want to be rainbow.
-
-#### Resetting rainbow sheep for a player
+### Reset Sheep rainbow state
```java
public void resetRainbowSheepExample(Player viewer) {
@@ -49,14 +51,7 @@ public void resetRainbowSheepExample(Player viewer) {
}
```
-#### `resetRainbowSheep` Parameters
-
-1. `ApolloPlayer Viewer`
- - The player you want to reset the rainbow sheep for.
-2. `List sheepEntities`
- - A list of all sheep entities you want to remove the rainbow state from.
-
-### Flip entities for a player
+### Override Entity flip state
```java
public void flipEntityExample(Player viewer) {
@@ -75,14 +70,7 @@ public void flipEntityExample(Player viewer) {
}
```
-#### `flipEntity` Parameters
-
-1. `ApolloPlayer Viewer`
- - The player you want to see the flipped entity.
-2. `List entities`
- - A list of all entities you want to flip.
-
-#### Resetting flipped entities for a player
+### Reset Entity flip state
```java
public void resetFlippedEntityExample(Player viewer) {
@@ -101,9 +89,157 @@ public void resetFlippedEntityExample(Player viewer) {
}
```
-#### `resetFlippedEntity` Parameters
+
+
+
+
+### Override Sheep rainbow state
+
+```java
+public void overrideRainbowSheepExample(Player viewer) {
+ Set sheepUuidsProto = viewer.getWorld().getEntitiesByClass(Sheep.class).stream()
+ .map(sheep -> ProtobufUtil.createEntityIdProto(sheep.getEntityId(), sheep.getUniqueId()))
+ .collect(Collectors.toSet());
+
+ OverrideRainbowSheepMessage message = OverrideRainbowSheepMessage.newBuilder()
+ .addAllEntityIds(sheepUuidsProto)
+ .build();
+
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Reset Sheep rainbow state
+
+```java
+public void resetRainbowSheepExample(Player viewer) {
+ Set sheepUuidsProto = viewer.getWorld().getEntitiesByClass(Sheep.class).stream()
+ .map(sheep -> ProtobufUtil.createEntityIdProto(sheep.getEntityId(), sheep.getUniqueId()))
+ .collect(Collectors.toSet());
+
+ ResetRainbowSheepMessage message = ResetRainbowSheepMessage.newBuilder()
+ .addAllEntityIds(sheepUuidsProto)
+ .build();
+
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Override Entity flip state
+
+```java
+public void flipEntityExample(Player viewer) {
+ Set entityUuidsProto = viewer.getWorld()
+ .getNearbyEntities(viewer.getLocation(), 10, 10, 10)
+ .stream().filter(entity -> entity instanceof Cow)
+ .map(sheep -> ProtobufUtil.createEntityIdProto(sheep.getEntityId(), sheep.getUniqueId()))
+ .collect(Collectors.toSet());
+
+ FlipEntityMessage message = FlipEntityMessage.newBuilder()
+ .addAllEntityIds(entityUuidsProto)
+ .build();
+
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Reset Entity flip state
+
+```java
+public void resetFlippedEntityExample(Player viewer) {
+ Set entityUuidsProto = viewer.getWorld()
+ .getNearbyEntities(viewer.getLocation(), 10, 10, 10)
+ .stream().filter(entity -> entity instanceof Cow)
+ .map(sheep -> ProtobufUtil.createEntityIdProto(sheep.getEntityId(), sheep.getUniqueId()))
+ .collect(Collectors.toSet());
+
+ ResetFlipedEntityMessage message = ResetFlipedEntityMessage.newBuilder()
+ .addAllEntityIds(entityUuidsProto)
+ .build();
+
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
+```
+
+
+
+
+
+### Override Sheep rainbow state
+
+```java
+public void overrideRainbowSheepExample(Player viewer) {
+ JsonArray entityIds = viewer.getWorld().getEntitiesByClass(Sheep.class).stream()
+ .map(JsonUtil::createEntityIdObject)
+ .collect(JsonArray::new, JsonArray::add, JsonArray::addAll);
+
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.entity.v1.OverrideRainbowSheepMessage");
+ message.add("entity_ids", entityIds);
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Reset Sheep rainbow state
+
+```java
+public void resetRainbowSheepExample(Player viewer) {
+ JsonArray entityIds = viewer.getWorld().getEntitiesByClass(Sheep.class).stream()
+ .map(JsonUtil::createEntityIdObject)
+ .collect(JsonArray::new, JsonArray::add, JsonArray::addAll);
+
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.entity.v1.ResetRainbowSheepMessage");
+ message.add("entity_ids", entityIds);
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Override Entity flip state
+
+```java
+public void flipEntityExample(Player viewer) {
+ JsonArray entityIds = viewer.getWorld()
+ .getNearbyEntities(viewer.getLocation(), 10, 10, 10)
+ .stream().filter(entity -> entity instanceof Cow)
+ .map(JsonUtil::createEntityIdObject)
+ .collect(JsonArray::new, JsonArray::add, JsonArray::addAll);
+
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.entity.v1.FlipEntityMessage");
+ message.add("entity_ids", entityIds);
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+### Reset Entity flip state
+
+```java
+public void resetFlippedEntityExample(Player viewer) {
+ JsonArray entityIds = viewer.getWorld()
+ .getNearbyEntities(viewer.getLocation(), 10, 10, 10)
+ .stream().filter(entity -> entity instanceof Cow)
+ .map(JsonUtil::createEntityIdObject)
+ .collect(JsonArray::new, JsonArray::add, JsonArray::addAll);
+
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.entity.v1.ResetFlipedEntityMessage");
+ message.add("entity_ids", entityIds);
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+
+
+
+
+#### `Entity` Parameters
-1. `ApolloPlayer Viewer`
- - The player you want to reset the flipped entity for.
+1. `Recipients recipients`
+ - A list of all the player(s) you want to be able to see the updated fire color.
2. `List entities`
- A list of all entities you want to reset the flip state from.
diff --git a/docs/developers/modules/glow.mdx b/docs/developers/modules/glow.mdx
index fc0e7c5b..667bb972 100644
--- a/docs/developers/modules/glow.mdx
+++ b/docs/developers/modules/glow.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Glow Module
## Overview
@@ -17,6 +19,13 @@ The glow module allows you to take advantage of the vanilla Minecraft Glow Effec
## Integration
### Sample Code
+Explore each integration by cycling through each tab, to find the best fit for your requirements and needs.
+
+
+
+
+
+### Override a Glow Effect
```java
public void overrideGlowEffectExample(UUID glowingPlayer) {
@@ -27,16 +36,7 @@ public void overrideGlowEffectExample(UUID glowingPlayer) {
}
```
-### `overrideGlowEffectExample` Parameters
-
-1. `Recipients recipients`
- - A list of all the player(s) you want to be able to see the updated glow effect.
-2. `UUID target`
- - The player or living entity you want to display the glow effect on.
-3. `Color glowColor`
- - How you'll dictate the color of the glow effect, see the [colors page](/apollo/developers/utilities/colors) for more.
-
-### Removing a specific targets glow effect for viewers
+### Removing a Glow Effect
```java
public void resetGlowEffectExample(UUID glowingPlayer) {
@@ -44,7 +44,7 @@ public void resetGlowEffectExample(UUID glowingPlayer) {
}
```
-### Resetting all glow effects for all viewers
+### Resetting all Glow Effects
```java
public void resetGlowEffectsExample(Player viewer) {
@@ -52,3 +52,94 @@ public void resetGlowEffectsExample(Player viewer) {
apolloPlayerOpt.ifPresent(this.glowModule::resetGlow);
}
```
+
+
+
+
+
+### Override a Glow Effect
+
+```java
+public void overrideGlowEffectExample(UUID glowingPlayer) {
+ OverrideGlowEffectMessage message = OverrideGlowEffectMessage.newBuilder()
+ .setPlayerUuid(ProtobufUtil.createUuidProto(glowingPlayer))
+ .setColor(ProtobufUtil.createColorProto(Color.RED))
+ .build();
+
+ ProtobufPacketUtil.broadcastPacket(message);
+}
+```
+
+### Removing a Glow Effect
+
+```java
+public void resetGlowEffectExample(UUID glowingPlayer) {
+ ResetGlowEffectMessage message = ResetGlowEffectMessage.newBuilder()
+ .setPlayerUuid(ProtobufUtil.createUuidProto(glowingPlayer))
+ .build();
+
+ ProtobufPacketUtil.broadcastPacket(message);
+}
+```
+
+### Resetting all Glow Effects
+
+```java
+public void resetGlowEffectsExample(Player viewer) {
+ ResetGlowEffectsMessage message = ResetGlowEffectsMessage.getDefaultInstance();
+ ProtobufPacketUtil.sendPacket(viewer, message);
+}
+```
+
+
+
+
+
+### Override a Glow Effect
+
+```java
+public void overrideGlowEffectExample(UUID glowingPlayer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.glow.v1.OverrideGlowEffectMessage");
+ message.add("player_uuid", JsonUtil.createUuidObject(glowingPlayer));
+ message.add("color", JsonUtil.createColorObject(Color.RED));
+
+ JsonPacketUtil.broadcastPacket(message);
+}
+```
+
+### Removing a Glow Effect
+
+```java
+public void resetGlowEffectExample(UUID glowingPlayer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.glow.v1.ResetGlowEffectMessage");
+ message.add("player_uuid", JsonUtil.createUuidObject(glowingPlayer));
+
+ JsonPacketUtil.broadcastPacket(message);
+}
+```
+
+### Resetting all Glow Effects
+
+```java
+public void resetGlowEffectsExample(Player viewer) {
+ JsonObject message = new JsonObject();
+ message.addProperty("@type", "type.googleapis.com/lunarclient.apollo.glow.v1.ResetGlowEffectsMessage");
+
+ JsonPacketUtil.sendPacket(viewer, message);
+}
+```
+
+
+
+
+
+### `overrideGlowEffectExample` Parameters
+
+1. `Recipients recipients`
+ - A list of all the player(s) you want to be able to see the updated glow effect.
+2. `UUID target`
+ - The player or living entity you want to display the glow effect on.
+3. `Color glowColor`
+ - How you'll dictate the color of the glow effect, see the [colors page](/apollo/developers/utilities/colors) for more.
diff --git a/docs/developers/modules/hologram.mdx b/docs/developers/modules/hologram.mdx
index 7aa64d6b..433231f6 100644
--- a/docs/developers/modules/hologram.mdx
+++ b/docs/developers/modules/hologram.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Hologram Module
## Overview
diff --git a/docs/developers/modules/limb.mdx b/docs/developers/modules/limb.mdx
index 950107d1..c11d733e 100644
--- a/docs/developers/modules/limb.mdx
+++ b/docs/developers/modules/limb.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Limb Module
## Overview
diff --git a/docs/developers/modules/modsetting.mdx b/docs/developers/modules/modsetting.mdx
index 6d05ccfc..3d9b5ae1 100644
--- a/docs/developers/modules/modsetting.mdx
+++ b/docs/developers/modules/modsetting.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Mod Setting Module
## Overview
diff --git a/docs/developers/modules/nametag.mdx b/docs/developers/modules/nametag.mdx
index e8dcebc2..c0e9e18c 100644
--- a/docs/developers/modules/nametag.mdx
+++ b/docs/developers/modules/nametag.mdx
@@ -1,3 +1,4 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs'
# Nametag Module
diff --git a/docs/developers/modules/nickhider.mdx b/docs/developers/modules/nickhider.mdx
index 5f1c3751..edfcb6fa 100644
--- a/docs/developers/modules/nickhider.mdx
+++ b/docs/developers/modules/nickhider.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Nick Hider Module
## Overview
diff --git a/docs/developers/modules/notification.mdx b/docs/developers/modules/notification.mdx
index 09066038..3d0346f0 100644
--- a/docs/developers/modules/notification.mdx
+++ b/docs/developers/modules/notification.mdx
@@ -1,3 +1,4 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs'
# Notification Module
diff --git a/docs/developers/modules/richpresence.mdx b/docs/developers/modules/richpresence.mdx
index 5fd58995..3d2a781b 100644
--- a/docs/developers/modules/richpresence.mdx
+++ b/docs/developers/modules/richpresence.mdx
@@ -1,3 +1,4 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs'
# Rich Presence Module
diff --git a/docs/developers/modules/serverrule.mdx b/docs/developers/modules/serverrule.mdx
index 2272fcdc..cd527a6d 100644
--- a/docs/developers/modules/serverrule.mdx
+++ b/docs/developers/modules/serverrule.mdx
@@ -1,3 +1,4 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs'
# Server Rule Module
diff --git a/docs/developers/modules/staffmod.mdx b/docs/developers/modules/staffmod.mdx
index e3fe3ca6..f0ff5971 100644
--- a/docs/developers/modules/staffmod.mdx
+++ b/docs/developers/modules/staffmod.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Staff Mod Module
## Overview
diff --git a/docs/developers/modules/stopwatch.mdx b/docs/developers/modules/stopwatch.mdx
index 46f91198..87582b2b 100644
--- a/docs/developers/modules/stopwatch.mdx
+++ b/docs/developers/modules/stopwatch.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Stopwatch Module
## Overview
diff --git a/docs/developers/modules/title.mdx b/docs/developers/modules/title.mdx
index fc2df212..8d1c35a5 100644
--- a/docs/developers/modules/title.mdx
+++ b/docs/developers/modules/title.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Title Module
## Overview
diff --git a/docs/developers/modules/tntcountdown.mdx b/docs/developers/modules/tntcountdown.mdx
index ac62fb4d..91dbfa04 100644
--- a/docs/developers/modules/tntcountdown.mdx
+++ b/docs/developers/modules/tntcountdown.mdx
@@ -1,3 +1,4 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs'
# TNT Countdown Module
diff --git a/docs/developers/modules/transfer.mdx b/docs/developers/modules/transfer.mdx
index 974cd394..32e0a714 100644
--- a/docs/developers/modules/transfer.mdx
+++ b/docs/developers/modules/transfer.mdx
@@ -1,3 +1,4 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
import { Callout } from 'nextra-theme-docs'
# Transfer Module
diff --git a/docs/developers/modules/vignette.mdx b/docs/developers/modules/vignette.mdx
index 64b37218..67463e6f 100644
--- a/docs/developers/modules/vignette.mdx
+++ b/docs/developers/modules/vignette.mdx
@@ -1,3 +1,5 @@
+import { Tab, Tabs } from 'nextra-theme-docs'
+
# Vignette Module
## Overview