Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Kore Examples

This repository contains various examples of Minecraft datapacks created using Kore, a modern Kotlin library for datapack development.

Kore allows you to create complex Minecraft datapacks using Kotlin, eliminating the need to write raw JSON or .mcfunction files manually.

Examples

A recreation of the MoreApples datapack by Stoupy51.

This example demonstrates how to:

  • Modify loot tables for all types of leaves.
  • Use predicates and conditions (e.g., Silk Touch checks).
  • Generate a .zip datapack file automatically.

The datapack ensures that all leaf types have a chance to drop apples, doubling the drop rate compared to vanilla oak leaves.

A recreation of the rotten-flesh-to-leather datapack.

This example demonstrates how to:

  • Add simple recipes (smelting and smoking).
  • Use items as ingredients and results.

The datapack allows you to smoke rotten flesh for leather and smelt it for brown dye.

How to run

These examples use Amper as the build system.

To build and generate the datapacks:

  1. Clone the repository.
  2. Run the main class in the desired example module.
  3. The generated datapacks will be located in the out/ directory.

Installation

To install one of these datapacks into your Minecraft world:

  1. Generate the datapack: Follow the How to run instructions to create the .zip file.
  2. Locate the file: Find the generated .zip file in the out/ directory (e.g., out/more-apples.zip).
  3. Open your world folder: In Minecraft, select your world, click Edit, then Open World Folder.
  4. Copy to datapacks: Move the .zip file into the datapacks folder.
  5. Reload: If the world is already running, use the /reload command.

CI/CD & Publishing

This project uses GitHub Actions to automate the publishing process to Modrinth.

The workflow is defined in .github/workflows/publish.yml.

How it works

  1. Trigger: The workflow runs automatically when a new release is published or can be triggered manually via workflow_dispatch.
  2. Build: It uses Amper to build the project and generate the datapack files.
  3. Publish: The Kir-Antipov/mc-publish action takes the generated .zip files from the out/ directory and uploads them to Modrinth.

This ensures that every release of this repository is automatically available for users to download.

License

This project is licensed under the GNU v3 License - see the LICENSE file for details.


Created with ❤️ using Kore.

About

Examples of datapacks made or recreated using Kore.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages