Skip to content
/ mappa Public

A Configuration Map-editor heavily inspired by WorldEdit

License

Notifications You must be signed in to change notification settings

unnamed/mappa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mappa

Originally called "Map Live Editor".
Has the purpose to create and edit map configurations for any kind of minigame.
Provides various useful tools to define properties like a number, a text, a vector (for locations)
and much more with In-game solutions.

The project still on alpha. Anything can be changed in any time.

Features:

  • Scheme of Minigame's map configuration in Yaml without depends on it or exposing any plugin.
  • Configuration properties mapping into commands! (Example below)
  • Basic types support (Integer, Double, String, Vector, Cuboid and more)
  • Simple command to setup everything step-by-step (/mappa setup <session id> <value>)
  • Support target path to save configuration

Scheme configuration example (With SnakeYaml)

MyScheme:
# ▼ Any node that starts with '$' is a parse configuration for the parent node (MyScheme).
  $parent: # ◄ Parent parse configuration. contains crucial configuration of the entire scheme.
    aliases: [my-scheme, mys] # ◄ Aliases for command parse.

      # ▼ All of these nodes that define his own types by tag '!' would be considered properties.
      # ▼ Metadata tag defines properties that can be used for Mappa on his commands.
  name: !metadata name
  world: !metadata world
  version: !metadata version
  author: !metadata author
  my-integer: !int + # ◄ Also the nodes can receive flags by their type.
                     #   In this case, it is an integer with the positive flag to deny any negative int number.

  my-string: !string
  my-list: !list of string # ◄ Define list verbally with 'of' and the type of the list.

  # Supports deep sub nodes
  my-node:
    my-deep-node:
      my-deeper-node: !float
      my-deeper-optional-node?: !float
                           # ▲ Question mark at the final character defines an optional node.
    my-repetitive-node:
      # ▼ A parse configuration to duplicate the parent node (my-repetitive-node) for each node of the array.
      # ▼ Useful for cases like mini-game teams and more.
      $multi-node: ['node-1', "node-2", "node-3"]

      first-node: !string
      second-node: !string
      third-node: !string

# The multi-node result should be:
#   node-1:
#     first-node: !string
#     second-node: !string
#     third-node: !string
#   node-2:
#     first-node: !string
#     second-node: !string
#     third-node: !string
#   node-3:
#     first-node: !string
#     second-node: !string
#     third-node: !string

Mapping configuration properties into commands

  • Root command: /myscheme, /my-scheme, /mys
  • Sub nodes: /myscheme name, /myscheme world, etc
  • Deep sub nodes: /myscheme my-node my-deep-node my-deeper-node

Contributing

Any kind of contribution is accepted!
Mappa uses any JDK 8 with Minecraft version target 1.8.8 to be compatible with any version.

We use the MIT License, be free to clone and fork the repository always giving credits.

TODO

  • Create MappaPlayer for a better project structure
  • Tree property command (/mappa session properties)
  • Separate vector flags into different vector classes (block vector, entity vector with yaw-pitch and a double-type vector?)
  • Configurate support
  • Database support

About

A Configuration Map-editor heavily inspired by WorldEdit

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages