Code Monkey home page Code Monkey logo

skeleton-module's Introduction

SKELETON - Module template

English | Español

How to create your own module

  1. Use the script create_module.sh located in modules/ to start quickly with all the files you need and your git repo configured correctly (heavily recommended).
  2. You can then use these scripts to start your project: https://github.com/azerothcore/azerothcore-boilerplates
  3. Do not hesitate to compare with some of our newer/bigger/famous modules.
  4. Edit the README.md and other files (include.sh etc...) to fit your module. Note: the README is automatically created from README_example.md when you use the script create_module.sh.
  5. Publish your module to our catalogue.

How to test your module?

Disable PCH (precompiled headers) and try to compile. To disable PCH, set -DNOPCH=1 with Cmake (more info here).

If you forgot some headers, it is time to add them!

Licensing

The default license of the skeleton-module template is the MIT but you can use a different license for your own modules.

So modules can also be kept private. However, if you need to add new hooks to the core, as well as improving existing ones, you have to share your improvements because the main core is released under the AGPL license. Please provide a PR if that is the case.

skeleton-module's People

Contributors

anchydev avatar ayasecore avatar barbzyhool avatar bytesgalore avatar francescoborzi avatar helias avatar kitzunu avatar locus313 avatar majordot avatar milestorme avatar pangolp avatar sluggor avatar winfidonarleyan avatar yehonal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

skeleton-module's Issues

Greatly improve the module template

We need to add several things in that module template:

  • Rename .gitkeep files into ".delete_me_if_no_sql_here"
  • Linux configuration - Many modules lack it so we always need to add it afterwards. Example: mod-congratsonlevel
  • Suggestion: Add builtin support to Azerothcore for module config file to avoid repeating the same code on each module
  • SQL directory for SQL files
  • include.sh for automatic SQL merging with the db_assembler.sh (or main install script). Example: mod-npc-beastmaster or mod-transmog or mod_reward_shop have these.
  • .gitattributes file to avoid errors with line endings on switching from unix system to windows and vice versa.
  • SQL dummy file for example of use
  • .editorconfig file for coding convention like here https://github.com/azerothcore/azerothcore-wotlk/blob/master/.editorconfig
  • Maybe rename the module to mod-skeleton or template-module ?
  • Add dummy c++ and header (see Deku's boilerplates) with function naming convention ? To avoid using a similar script name with core or other modules (else it causes a crash)
  • Add dummy config file, with "enable module" option, like here https://github.com/azerothcore/mod_character_tools/blob/master/conf/character_tools.conf.dist
  • A list of useful includes: "You want to do this? then you must #include that in your header".
  • Disable Precompiled Headers (PCH) and pass the compilation by including the missing #include
  • Add .github dir (tutorials example 1 link example 2 example 3
  • Add a .gitcommitmsg template

Then we need to update the wiki and link to this skeleton

Make a complete README

We must make a README with these:

PART 1 - Explanation on how to create your own module with

Some of these below might be better in the wiki.

  • A link to boilerplates scripts by @deku
  • The directory structure
  • The naming convention (mod-descriptive-name-of-the-module-with-hymens or mod-uniquename and for a short name, use acronyms like mod-ABC)
  • Avoid modifying existing tables, rather create a "ABC_tablename". This will be cleaner, easier to work with, and avoid errors when importing SQL in existing tables (number of columns not matching)
  • That we grant access to the module on our main repository when we fork it etc...
  • How to advertise your module with a link to a premade advertising thread, WIP: https://github.com/BarbzYHOOL/azerothcore_advertising
  • Add "core-module" tag to your module repository so it can be found on github if not forked on the official azerothcore organization

PART 2 - Example of a Readme.md for the newly created module

  • Description

  • Generic install instructions for a module

  • Dummy screenshots for fine preview

  • Discord links (to azerothcore and to custom discord server)

  • Link to azerothcore's main repository and website

Example: mod_reward_shop or mod-betteritemreloading

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.