diff --git a/.github/categories.yml b/.github/categories.yml new file mode 100644 index 0000000000..175636fed9 --- /dev/null +++ b/.github/categories.yml @@ -0,0 +1,118 @@ +categories: + - name: "new-versions" + description: > + The user is asking when Meteor will update to a new Minecraft version, or expressing impatience + about update timelines. Keywords and phrases to look for: "when will meteor update", "1.xx support", + "any eta", "will you update to", "please update", "update when", "waiting for update". + message: > + ### This issue is being automatically closed. + + Please do not open issues asking when Meteor will update to a new Minecraft version. Maintainers work + on Meteor in their spare time, and updates are not guaranteed. New versions of Meteor are released + when they are ready. Follow the [Discord](https://meteorclient.com/discord) or watch the repository + for announcements. + + - name: "old-versions" + description: > + The user is asking for support with an old, unsupported version of Minecraft or Meteor, or attempting to procure + old Meteor builds. This includes any Minecraft version that is not the current version Meteor targets, or + any Meteor build that is not the latest. Keywords: "1.19", "1.20", "old version", "legacy", "older build", + "previous version", "downgrade". + message: > + ### This issue is being automatically closed. + + Meteor only supports the latest version of Minecraft. Our [archive page](https://www.meteorclient.com/archive) + stores major Meteor versions starting at 1.21.4 and the most recent dev builds can be obtained from our Maven. + No support is provided for building or running old versions of Meteor - you will have to troubleshoot any + issues you encounter yourself. + + - name: "cheating" + description: > + The user is asking about bypassing anticheats or evading detection **specifically on non-anarchy servers.** + Meteor is an anarchy client, so we do care about being able to pass certain checks from certain anticheats that + see common use in anarchy servers - Grim specifically for movement checks, updated NCP (nocheatplus), old NCP + all come to mind. If the user is asking about altering basic functionality to bypass those anticheats, or adding + a bypass for them to one of the more "important" modules such as killaura, speed, or other useful anarchy + utilities, that is fine. What isn't fine is asking about bypassing other anticheats that are generally used on + non-anarchy servers: AAC, Matrix, Spartan, Vulcan, Watchdog, Wraith, Donut, GlazE, GodsEye, AntiCheatAddition. + This category also encompasses users asking for features normally associated with cheating/griefing on those + servers, such as "anti-vanish" or modules that warn when staff are near, force OP exploits, etc. This does not + include requesting changes to existing modules such as nuker, flamethrower, xray, wallhack, etc - these are + valid utilities for an anarchy use case. If the user asks broadly for bypasses without referring to a specific + anticheat, consider it a valid suggestion - users asking for cheating purposes seem to specify a specific + server or anticheat a lot of the time. + message: > + ### This issue is being automatically closed. + + Meteor is intended to be used as a utility client on anarchy servers that explicitly allow its use. We discourage + the use of Meteor for any purpose that would be considered cheating or griefing. Likewise, We do not intend to + add workarounds for specific anticheats unless they are necessary to support basic functionality in an anarchy + setting. + + - name: "incompatible" + description: > + The user is asking about compatibility with or support for third-party launchers or other minecraft clients, + particularly those targeting non-desktop platforms or cracked accounts. This includes issues caused + by running Meteor alongside or within these environments. Keywords to look for: Lunar Client, Feather Client, + LabyMod, OptiFine, OptiFabric, Pojav, TLauncher, Badlion, Zalith, cracked, mobile, android, ios, mojolauncher. + message: > + ### This issue is being automatically closed. + + Meteor does not offer support for "legit clients" such as Lunar or Feather, launchers that support + cracked accounts, or launchers targeting non-desktop platforms. Meteor is unlikely to run correctly + in these environments if at all. You will have to troubleshoot any issues you encounter yourself. + + - name: "features" + description: > + The user is requesting a feature that is either technically impossible, relies on a game bug or exploit + that has been or will soon be patched, or requires server-side exploitation to function. This includes dupe + exploits, crash exploits, and features that bypass server-side mechanics entirely. Keywords: dupe, duplication, + force op, portal godmode, infinite reach, ping bypass, book ban, bow oneshot, anti-xray bypass, crash exploit, + kill aura bypass. This does not include requesting changes to existing modules such as nuker, + flamethrower, xray, wallhack, etc - these are valid utilities for an anarchy use case. + message: > + ### This issue is being automatically closed. + + This feature relies either on exploits in Minecraft's code or server-side behavior that a client mod cannot + control. Exploits are hard to find and often patched immediately after being made public, making them not + worth it to maintain. If you're not sure what the difference between client-side and server-side means, + [this article](https://cybrancee.com/blog/minecraft-client-side-and-server-side-explained/) is a good + starting point. + + - name: "forge-port" + description: > + The user is asking about a Forge port of Meteor Client, asking why Meteor is not available on Forge, + or requesting that Meteor be ported to Forge. Keywords: "forge", "forge port", "forge version", + "why not forge", "port to forge", "forge support", "forge mod". + message: > + ### This issue is being automatically closed. + + Porting Meteor to Forge would require rewriting the majority of the client to accommodate entirely + different APIs, and would take a massive amount of time and effort. We do not plan to port to Forge + in the future. + + - name: "not-an-issue" + description: > + The submission is not a bug report or a valid feature request. This includes general questions, + thank-you messages, rants, spam, memes, requests for help with unrelated topics, or content that + belongs in the Discord rather than the issue tracker. The issue body may be very short, nonsensical, + or completely unrelated to Meteor Client. + message: > + ### This issue is being automatically closed. + + This does not appear to be a bug report or feature request. For general questions and discussion, + please use the [community discord](https://meteorclient.com/discord) instead. + + - name: "incomplete" + description: > + This category applies only to bug report or crash report issues, **suggestions are exempt**. Suggestions + will begin with the heading "Describe the feature" - if it starts with that, you cannot categorize the issue + into this category. The issue is a bug report but contains no meaningful information. This includes no steps + to reproduce the problem, no Meteor version, no Minecraft version, no logs, or no description beyond a vague + complaint. Examples: "it doesn't work", "meteor is broken", "this module is bugged" with no further detail. + message: > + ### This issue is being automatically closed. + + This issue does not contain enough information to reproduce the problem. Please re-open with detailed + steps to reproduce, your Minecraft and Meteor versions, and any relevant logs or crash reports. + Issues without reproduction information cannot be investigated. diff --git a/.github/moderation/banned_terms.js b/.github/moderation/banned_terms.js deleted file mode 100644 index 139d78c794..0000000000 --- a/.github/moderation/banned_terms.js +++ /dev/null @@ -1,153 +0,0 @@ -import * as github from '@actions/github'; -import * as core from "@actions/core"; - -const otherModTerms = [ - "feather", - "labymod", - "lunar", - "optifabric", - "optifine", - "pojav", - "tlauncher" -]; - -const anticheatTerms = [ - "aac", - "anti xray", - "anti aura", - "anticheataddition", - "bypass", - "disabler", - "donut", - "godseye", - "grim", - "matrix", - "ncp", - "nocheat plus", - "spartan", - "vulcan", - "watchdog", - "wraith" -]; - -const featureTerms = [ - ".panic", - "anti vanish", - "dupe", - "force op", - "god mode", - "infinite reach", - "ping bypass", - "portal godmode", - "tp aura" -] - -const token = process.env.GITHUB_TOKEN; -const octokit = github.getOctokit(token); -const context = github.context - -const title = context.payload.issue.title; -const body = context.payload.issue.body; - -async function run() { - const issueText = `${title} ${body}`.toLowerCase(); - - for (const term of otherModTerms) { - if (!checkTerm(issueText, term)) continue; - - const otherModMessage = - 'Meteor does not offer support for "legit clients" like Lunar or Feather, or for launchers that ' + - 'support cracked accounts, or work on non-desktop devices. The mod likely won\'t run in tandem with ' + - 'them, and if you experience any issues while doing so you must troubleshoot any issues yourself.' - - await closeIssue(otherModMessage, octokit, context, term); - return; - } - - for (const term of anticheatTerms) { - if (!checkTerm(issueText, term)) continue; - - const anticheatMessage = - 'Meteor is intended to be used as a utility client on servers that explicitly allow its use. ' + - 'We do not intend to add workarounds for specific anticheats unless it falls within that scope.' - - await closeIssue(anticheatMessage, octokit, context, term); - return; - } - - for (const term of featureTerms) { - if (!checkTerm(issueText, term)) continue; - - const featureMessage = - 'This feature is either impossible to make, associated with cheating/griefing, or falls outside ' + - 'the scope of this project. We do not plan on adding this feature.' - - await closeIssue(featureMessage, octokit, context, term); - return; - } - - if (checkTerm(issueText, "old version")) { - const oldVersionMessage = - 'Our [archive page](https://www.meteorclient.com/archive) stores major Meteor versions for Minecraft ' + - 'versions starting at 1.21.4. If you wish to use older builds on older versions of Minecraft, you will ' + - 'need to build them yourself. **You will not receive support for issues with old versions of Meteor!**' - - await closeIssue(oldVersionMessage, octokit, context, "old version"); - return; - } - - if (checkTerm(issueText, "forge")) { - const forgeMessage = - 'Porting Meteor to Forge would take a great amount of time and effort, and would require rewriting major ' + - 'parts of the client to accommodate different APIs. Meteor does not plan to port to Forge in the future.' - - await closeIssue(forgeMessage, octokit, context, "forge"); - } -} - -function checkTerm(text, term) { - if (text.includes(term)) return true; - if (text.includes(term.replaceAll(' ', '-'))) return true; - return text.includes(term.replaceAll(' ', '')); -} - -async function closeIssue(message, octokit, context, foundTerm) { - const issueNumber = context.payload.issue.number; - const owner = context.repo.owner; - const repo = context.repo.repo; - - let closeMessage = '### This issue is being automatically closed.\n' + - `${message}` - - if (foundTerm !== '') closeMessage += - '\n' + - '\n' + - `_This issue was closed because you used the term "${foundTerm}". ` + - 'If you believe your issue is not associated with the given reason ' + - 'you may reopen it._' - - // IDE for whatever reason can't find the rest property yippee - - try { - await octokit['rest'].issues.createComment({ - owner, repo, issue_number: issueNumber, body: closeMessage - }); - - core.info('Comment added successfully.'); - } catch (error) { - core.error(`Failed to add comment: ${error.message}`); - } - - try { - await octokit['rest'].issues.update({ - owner, repo, issue_number: issueNumber, state: 'closed', state_reason: 'not_planned' - }); - - core.info('Closed issue successfully.'); - } catch (error) { - core.setFailed(`Failed to close issue: ${error.message}`); - } -} - -run(); - diff --git a/.github/moderation/package-lock.json b/.github/moderation/package-lock.json deleted file mode 100644 index 2f098eca06..0000000000 --- a/.github/moderation/package-lock.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "name": "moderator", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "moderator", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "@actions/core": "^1.11.1", - "@actions/github": "^6.0.0" - } - }, - "node_modules/@actions/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", - "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", - "dependencies": { - "@actions/exec": "^1.1.1", - "@actions/http-client": "^2.0.1" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/github": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", - "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", - "dependencies": { - "@actions/http-client": "^2.2.0", - "@octokit/core": "^5.0.1", - "@octokit/plugin-paginate-rest": "^9.0.0", - "@octokit/plugin-rest-endpoint-methods": "^10.0.0" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", - "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@actions/io": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", - "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==" - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.1.tgz", - "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==", - "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.1.0", - "@octokit/request": "^8.4.1", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", - "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", - "dependencies": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/graphql": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", - "dependencies": { - "@octokit/request": "^8.4.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", - "integrity": "sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", - "dependencies": { - "@octokit/endpoint": "^9.0.6", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", - "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - } - } -} diff --git a/.github/moderation/package.json b/.github/moderation/package.json deleted file mode 100644 index 5c5ebfc4c4..0000000000 --- a/.github/moderation/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "moderator", - "version": "1.0.0", - "author": "MachieCodes", - "license": "MIT", - "type": "module", - "scripts": { - "banned_terms": "node banned_terms.js" - }, - "dependencies": { - "@actions/core": "^1.11.1", - "@actions/github": "^6.0.0" - } -} diff --git a/.github/workflows/issue-moderator.yml b/.github/workflows/issue-moderator.yml deleted file mode 100644 index e5e885996b..0000000000 --- a/.github/workflows/issue-moderator.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Issue Automatic Actions - -on: - issues: - types: [ opened ] - -jobs: - issue-moderator: - runs-on: ubuntu-latest - - permissions: - issues: write - contents: read - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - with: - persist-credentials: false - - - name: Set Up Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - - - name: Install Dependencies - working-directory: .github/moderation - run: npm ci - - - name: Check Banned Terms - run: node .github/moderation/banned_terms.js - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/issue.yml b/.github/workflows/issue.yml new file mode 100644 index 0000000000..a018d783aa --- /dev/null +++ b/.github/workflows/issue.yml @@ -0,0 +1,36 @@ +name: Issue + +on: + issues: + types: [ opened ] + +jobs: + issue-moderator: + runs-on: ubuntu-latest + + permissions: + issues: write + contents: read + + steps: + - name: Checkout Repository + uses: actions/checkout@v6 + with: + persist-credentials: false + + - name: Check Template + uses: machiecodes/check-template@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check Content + uses: machiecodes/check-content@v1.0.6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} + with: + gemini-model: "gemini-3-flash-preview" + project-context: "Meteor Client is a Minecraft utility client built as a Fabric mod, intended for use + on anarchy servers where hack clients are permitted. It is written in Java and targets a specific + Minecraft version at any given time. It is open source and maintained on GitHub." +