Giter Club home page Giter Club logo

keira3's Introduction

Keira3

CodeFactor Actions Status Discord

Keira3

Cross-platform desktop application featuring a Database Editor for the AzerothCore MMORPG framework.

With Keira3 you don't have to know the SQL language in order to change contents: it will generate the SQL queries automatically for you. The SQL code will be displayed, so you can learn, and then you can copy or execute it directly to your database.

Made with ❤ and TypeScript, Electron, Angular, Bootstrap.

Support us

You can support the Keira3 development by donating with PayPal.

Inspired by

We created Keira inspired by the old indomit's Quice/Truice database editor, and by the Discover-'s SAI Editor. Our primary goal was to provide an editor with the same features that was cross-platform, so we built it as a web app.

Keira3 is the direct successor of Keira2. We kept the cross-platform promise as well as adding the possibility to execute the generated queries and simplifying the application setup.

AzerothCore Database

In order to use Keira3 you have to connect to an instance of the AzerothCore Database.

If you don't have any, you can easily create one following this guide.

Alternatively, you can use a public database of AzerothCore with read-only access. Details here.

How to install Keira3

To use Keira3, you don't need to install any dependency. Just download and run it.

⚠️ Windows 7 or older Windows versions are not officially supported.

How to run Keira3 in development mode

Dependencies

Note: these are the dependencies if you want to run Keira3 in development mode. If you just want to use Keira3, download it from the releases page.

You need to first install node in order to have npm available in your system.

This project uses NX, you can install it globally using npm install -g nx@latest

Then install the dependencies using:

npm install

Only for Windows (Windows 7 or older versions are not officially supported), install windows-build-tools as administrator:

npm install --global-production windows-build-tools

This installation will take time and probably your PC will reboot during the installation.

Running checks on projects

The entire codebse is organised in NX projects (apps and libraries), that are located in:

  • apps/*
  • libs/*

All lib paths are declared in the tsconfig.base.json and their names are:

  • keira-path-name-of-the-project

Examples:

  • keira-features-smart-scripts
  • keira-main-connection-window
  • keira-shared-base-editor-components

You can run checks such as lint or test of any project using:

  • nx lint project-name
  • nx test project-name

Examples:

  • nx lint keira
  • nx lint keira-shared-utils
  • nx test keira-features-creature

Run the app

To run the app in local development with hot reload:

npm start

More commands:

Command Description
npm run lint Run lint of affected projects
npm run test Run unit tests of affected projects
npm run e2e Run e2e tests. It requires to run npm run build:prod first
npm run build Build the app. Your built files are in the /dist folder.
npm run build:prod Build the app with Angular aot. Your built files are in the /dist folder.
npm run electron:local Builds your application and start electron
npm run electron:linux Builds your application and creates an app consumable on linux system
npm run electron:windows On a Windows OS, builds your application and creates an app consumable in windows 32/64 bit systems
npm run electron:mac On a MAC OS, builds your application and generates a .app file of your application that can be run on Mac

Note: Only /dist folder and node dependencies will be included in the executable.

Learn

  • An overview of Keira3 internals is available here

keira3's People

Contributors

asthalor avatar avarishd avatar azcobu avatar buddiman avatar codacy-badger avatar dependabot[bot] avatar dnwz99-wang avatar eronox avatar francescoborzi avatar gultask avatar helias avatar kitzunu avatar kotcev avatar krejza9 avatar m4th3m4tic4l avatar mkokeshi avatar pangolp avatar renovate[bot] avatar seobryn avatar the-ghostrider avatar willkillson avatar wizzymore 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

keira3's Issues

Item info about linked entities

When selecting an Item, show more info about linked entities such as

  • creature that drops that item (if any)
  • gameobject that drops that item (if any)

etc...

also give the possibility of clicking the linked entity to edit it


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

SAI: check linked events

Suggestion by @Stoabrogga

does keira3 check linked events? it should somehow show an error if a link is not pointing to an event id with event type 61. this is a common error in the sai scripts.

Add check for DB version

Keira should automatically check if the DB version is correct and display a warning otherwise.

[Feature Request] Save as .sql

It might be cool to have but don't know exactly how it would be done.

Perhaps either:

  1. SAI for example: Have an option to save the SAI as "Anachronos - SAI - DATE.sql" or something
  2. Have an option to store all changes you make across everything into a file that you then can name whatever you want. For example if you do an update of several things that link together. For example Updating some creature template stuff, some SAI stuff, some Condition stuff etc.

Yea I am a lazy fucker xD Copy pasta takes time :PPP

Amazing work so far btw <3


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

TypeError: Cannot read property '0' of undefined

New random test failure detected:

Chrome 78.0.3904 (Linux 0.0.0) SingleRowComplexKeyEditorService check methods of class onCreatingNewEntity() FAILED
	TypeError: Cannot read property '0' of undefined
	    at <Jasmine>
	    at MockSingleRowComplexKeyEditorService.SingleRowComplexKeyEditorService.onReloadSuccessful (http://localhost:9876/_karma_webpack_/src/app/services/editors/single-row-complex-key-editor.service.ts:94:41)
	    at SafeSubscriber.onReloadSuccessful [as _next] (http://localhost:9876/_karma_webpack_/src/app/services/editors/single-row-complex-key-editor.service.ts:54:19)
	    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/Subscriber.js:192:1)
	    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/Subscriber.js:130:1)
	    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._next (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/Subscriber.js:76:1)
	    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/Subscriber.js:53:1)
	    at Observable._subscribe (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js:5:1)
	    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/Observable.js:43:1)
	    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (http://localhost:9876/_karma_webpack_/node_modules/rxjs/_esm5/internal/Observable.js:29:1)
	    at MockSingleRowComplexKeyEditorService.subscribe [as reloadEntity] (http://localhost:9876/_karma_webpack_/src/app/services/editors/single-row-complex-key-editor.service.ts:52:28)

Suggestions to improve: preview of items, quests, etc...

https://www.youtube.com/watch?v=R9oQs5KlEBo&feature=emb_logo
It would be good if we could:

  • visualize the items in 3D;
  • have better ergonomics with maybe icons that at a glance show us the option;
  • visualize, as in the video, the item we are creating;
  • also visualize the quest we are creating;
  • can be created an algorithm that automatically calculates the level of the item based on the statistics.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Free query editor

Keira3 should allow the user to run custom queries and see their result

[Request][Feauture] New options: auto-recconect or keep-alive

Hello there.
Keira is good, but with some reasons with working on remote machine - app is disconnected affter sometime (this is normal, i think), but force-reload and reload options do same thing - just kick you on connection settings window.
I think improvments with timed-out connection can reduce madness with it.
For example HeidiSQL don't have this issue.
When Keira is lost connection - the status changed to red.

[Feature Request] - Ability to clone existing entity

[FEATURE REQUEST] - Clone of existing entity

-- Currently only available for: Creatures (NPC`s) in future potentially add on all entities like: Quests etc...

Workflow:

You can either search normally for NPC in Keira3 or select entity by ID.
There should be a button or icon to clone existing entity with all relations to it in basically new form where you can edit it fully and execute new entity to DB.

In real example:

If i select creature ID: 2479, which is vendor by default and I press clone. I would like to have also his: Vendor table cloned too (Which is associated to him by his ID). Which would give me ability to edit only items in vendor list.
And so on.

Thank you.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

3.0.0 release progress tracking

This is the list of features that needs to be implemented in order to complete the 3.0.0 milestone.

Until 3.0.0, we will publish intermediate releases, so you can already use Keira3 and give us feedback.

The features below are marked as DONE once we have them in master branch (they are not immediately released, so this list might differ from what is currently available in the latest release available).

Feature editors

  • Creature
  • Quest
  • Gameobject
  • Item
  • Gossip
  • Conditions
  • SmartAI

OS Support

  • GNU/Linux
  • macOS
  • Windows

Enhancements

  • Item editor preview
  • Item icons in all editors

Internal technical/development features

  • Base classes re-used for all editors/selectors/etc...
  • Automated unit test full coverage
  • Automated integration tests covering all editors
  • Dependencies always updated to latest stable version via automated dependency-updater
  • Debug mode toggle feature (show queries in console for easy debug)
  • Querying MySQL
  • Querying sqlite

Support us

I and @Helias are working for free during our free time, you can support us with a donation.

ngx-datatable doesn't take the full window space automatically

How it looks by default (without the user to resize it manually):

image

how it should be instead:

image

it's not a serious bug as the user can resize the window or manually drag the column size, but it's a bit annoying

Also, when toggling the sidebar, all datatable break:

image

image

SAI: Disable event type if using timed action lists

If using timed action lists (source_type 9 "SMART_SCRIPT_TYPE_TIMED_ACTIONLIST") the event type should be set to 0 and disabled. The action lists only use event param1 and param2 to specify a minimum / maximum wait time, they (obviously) don't use events, as those are just sequentially executed actions.

Add comments for AC-only actions

All the new AzerothCore actions:

SMART_ACTION_MOVE_TO_POS_TARGET                 = 201,    // pointId
SMART_ACTION_SET_GO_STATE                       = 202,    // state
SMART_ACTION_EXIT_VEHICLE                       = 203,    // none
SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS            = 204,    // flags
SMART_ACTION_SET_COMBAT_DISTANCE                = 205,    // combatDistance
SMART_ACTION_SET_CASTER_COMBAT_DIST             = 206,    // followDistance, resetToMax
SMART_ACTION_SET_HOVER                          = 207,    // 0/1
SMART_ACTION_ADD_IMMUNITY                       = 208,    // type, id, value
SMART_ACTION_REMOVE_IMMUNITY                    = 209,    // type, id, value
SMART_ACTION_FALL                               = 210,    //
SMART_ACTION_SET_EVENT_FLAG_RESET               = 211,    // 0/1
SMART_ACTION_STOP_MOTION                        = 212,    // stopMoving, movementExpired
SMART_ACTION_NO_ENVIRONMENT_UPDATE              = 213,
SMART_ACTION_ZONE_UNDER_ATTACK                  = 214,
SMART_ACTION_LOAD_GRID                          = 215,
SMART_ACTION_MUSIC                              = 216,    // SoundId, onlySelf, type
SMART_ACTION_RANDOM_MUSIC                       = 217,    // SoundId1, SoundId2, SoundId3, SoundId4, onlySelf, type

https://github.com/azerothcore/azerothcore-wotlk/blob/master/src/server/game/AI/SmartScripts/SmartScriptMgr.h#L571

don't have a comment in SAI_ACTION_COMMENTS in sai-comments.ts

Suggestion: Message after Execute

I have a suggestion, When pressing the execute button
I would like a message saying something similar to this "Your query has been successful!"
so people dont have to check in their database wether it was added or not :)


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Feature to admin server

Some ideas in bulk :
copy a character from one AC server to another, as with Blizzard, you can sometimes migrate a character to a test server for example.
More information about the :

  • time since it started
  • how many people logged on
  • and so on.

I know Keira's primary goal is to manage the database. Maybe a future evolution of Keira 4:D, adding a more advanced server administration function. Like managing and replying to tickets, phase change, and everything a GM needs to respond to the players but also everything a server administrator needs for the rest.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Error Unknown^ please help

it does this on any folder.

Also i have no idea how to install npm. its unclear. please upload a video explained or just a video..

C:\WINDOWS\system32>npm run ng:serve:web
npm ERR! path C:\WINDOWS\system32\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'C:\WINDOWS\system32\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Sheldon Gelinas\AppData\Roaming\npm-cache_logs\2019-08-15T02_10_37_902Z-debug.log

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.