Skip to content

M3rcena/m3rcena-weky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

219 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Weky Logo

@m3rcena/weky

The Modern Discord.js v14 Game Engine

Strictly Typed. Crash Proof. Maintenance First.
The spiritual successor to the original `weky`, rewritten for modern bots.

NPM Version Downloads Discord Support

DJS v14 TypeScript Made in Greece


๐Ÿšจ Why use this over the old weky?

The original weky library is legendary, but it is no longer maintained and breaks on Discord.js v14 due to changes in the Interaction API.

Feature โŒ Old weky โœ… @m3rcena/weky
Discord.js Support v12 / v13 v14 (Latest)
Type Safety โš ๏ธ Loose / Any ๐Ÿ›ก๏ธ 100% Strict TypeScript
Interaction Handling โŒ Crashes often โœ… Auto-detects Slash/Message
Maintenance ๐Ÿ’€ Abandoned ๐Ÿš€ Active Development

โšก Features

  • Discord.js v14+ Native: Built specifically to handle the new Interaction and Button systems without crashing.
  • Hybrid Context: One function works for both Slash Commands (/) and Legacy Messages (!).
  • Zero "Any" Types: Full intellisense support in VS Code.
  • Plug & Play: No complex setup or databases required.
  • Fully Customizable: Change button styles, embed colors, texts, and timeouts.

๐Ÿ“ฆ Installation

npm install @m3rcena/weky
# or
yarn add @m3rcena/weky
# or
pnpm add @m3rcena/weky

๐Ÿš€ Quick Start (TypeScript / ESM)

1. Initialize the Manager

import { Client, GatewayIntentBits } from "discord.js";
import { WekyManager } from "@m3rcena/weky";

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ],
});

client.on("ready", (c) => {
  console.log(`โœ… ${c.user.tag} is online!`);
  // Initialize Weky with your client
  client.wekyManager = new WekyManager(c);
});

client.login("YOUR_BOT_TOKEN");

2. Create a Game

Our new context system automatically detects if the command was sent via Slash Command or standard message.

๐ŸŸข Calculator (Modern Usage)

import { CommandInteraction, Message } from "discord.js";

// Inside your command handler
export async function run(interaction: CommandInteraction | Message) {
    await client.wekyManager.createCalculator({
        context: interaction, 
        embed: {
            title: "Calculator | M3rcena",
            color: "Blurple", 
            timestamp: new Date(),
        },
        disabledQuery: "Calculator is disabled!",
        invalidQuery: "The provided equation is invalid!",
        othersMessage: "Only <@{{author}}> can use the buttons!",
    });
}

๐ŸŽฎ Available Games

Game Function Status
2048 create2048 โœ… Stable
Calculator createCalculator โœ… Stable
Fight createFight โœ… Stable
Guess The Number createGuessTheNumber โœ… Stable
Will You Press? createWillYouPressTheButton โœ… Stable
Snake createSnake โœ… Stable
Rock Paper Scissors createRPS โœ… Stable

๐Ÿ“ธ See it in Action

Tip: Games are fully interactive using Discord Buttons.

Fight Preview 2048 Preview

๐Ÿ“š Documentation

Need advanced customization? Check our full docs for button styling, custom messages, and timeout handling.

Documentation

๐Ÿค Support & Community

Found a bug? Have a game request? Join the support server.

Discord Banner

๐Ÿ’ป Developers


Made with โค๏ธ in Greece

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors