diff --git a/pom.xml b/pom.xml
index 50f8b82..3241f56 100644
--- a/pom.xml
+++ b/pom.xml
@@ -203,6 +203,18 @@
+
+ com.github.chrisrnj.Terrainer
+ terrainer-core
+ 9ab2f53d41
+ provided
+
+
+ *
+ *
+
+
+
org.junit.jupiter
diff --git a/src/main/java/com/github/jikoo/regionerator/hooks/TerrainerHook.java b/src/main/java/com/github/jikoo/regionerator/hooks/TerrainerHook.java
new file mode 100644
index 0000000..498ba8d
--- /dev/null
+++ b/src/main/java/com/github/jikoo/regionerator/hooks/TerrainerHook.java
@@ -0,0 +1,31 @@
+package com.github.jikoo.regionerator.hooks;
+
+import com.epicnicity322.terrainer.core.terrain.Terrain;
+import com.epicnicity322.terrainer.core.terrain.TerrainManager;
+import com.epicnicity322.terrainer.core.terrain.WorldTerrain;
+import org.bukkit.World;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * PluginHook for Terrainer.
+ */
+public class TerrainerHook extends PluginHook {
+
+ public TerrainerHook() {
+ super("Terrainer");
+ }
+
+ @Override
+ public boolean isChunkProtected(@NotNull World chunkWorld, int chunkX, int chunkZ) {
+ for (Terrain terrain : TerrainManager.terrainsAtChunk(chunkWorld.getUID(), chunkX, chunkZ)) {
+ if (!(terrain instanceof WorldTerrain)) return true; // Global world terrain is ignored.
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isAsyncCapable() {
+ return true;
+ }
+
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 50c8ca7..a296d02 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -88,6 +88,7 @@ hooks:
PreciousStones: true
RedProtect: true
Residence: true
+ Terrainer: true
Towny: true
WorldGuard: true
VanillaSpawnProtection: true
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 532a27e..3c3afe4 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -16,6 +16,7 @@ softdepend:
- Multiverse-Core
- RedProtect
- Residence
+- Terrainer
- Towny
- WorldGuard