Kadi: Difference between revisions
No edit summary |
No edit summary |
||
(47 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Latest Changes== | ==Latest Changes== | ||
[[File:tabcomplete.mp4|742px|right | [[File:tabcomplete.mp4|742px|right|thumb]] | ||
* Shows possible subcommands | *Shows possible subcommands | ||
* Shows current syntax word and example text | *Shows current syntax word and example text | ||
* Filters input based on partial matches | *Filters input based on partial matches | ||
==Command Interfaces== | ==Command Interfaces== | ||
[[LandActionConfig]] | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Interface ! | !|Interface | ||
!|Desc | |||
!|Keywords | |||
|- | |||
|[[General]] | |||
|Forced | |||
|[world],[player],[player,player] | |||
|- | |||
|[[General]] | |||
|Optional | |||
|<nowiki>[comment...],[message...],[colorvartext...],[colortext...],[on|off|toggle],[price],[amount],[number],[page],[nickname],[owner],[name],[shortcut],[color],[radius],[time],[percentage], [number_l], [amount_d], [on|off|choice],[true|false], [X.xx,Y.yy,Z.zz], [treetype], [ench1,ench2], [effect]</nowiki> | |||
|- | |||
|[[General]] | |||
|Kadi | |||
|(1st iteration) | |||
|- | |||
|[[AccountCommands]] | |||
|Todo | |||
|[name:account] [:account] | |||
|- | |||
|[[BoardCommands]] | |||
|Todo | |||
|(skipped) | |||
|- | |||
|[[ChannelCommands]] | |||
|Todo | |||
|[channel],[prefix...]<br /> | |||
|- | |||
|[[ChatCommands]] | |||
|Todo | |||
|(1st iteration) | |||
|- | |||
|[[ContainerCommands]] | |||
|Todo | |||
|(skipped) | |||
|- | |||
|[[CraftingCommands]] | |||
|Todo | |||
|[recipe], [libid], [resultlib], [0:libA,1:libB,5:libC], [enchantment], [level], [ignoreRestriction], [itemFlag] | |||
|- | |||
|[[CrateCommands]] | |||
|Todo | |||
|[crate], [cquality], [valuable?], [clibid], [libidinv] | |||
|- | |||
|[[EffectCommands]] | |||
|Todo | |||
|(skipped) | |||
|- | |||
|[[ElementCommands]] | |||
|Todo | |||
|(skipped) | |||
|- | |||
|[[EssentialCommands]] | |||
|Todo | |||
|(50% skipped) | |||
|- | |||
|[[EventCommands]] | |||
|Todo | |||
|[event], [eventtype], [startTick], [tick], [repeating], [fixedloc], [anonymous], [rewardsignid] | |||
|- | |||
|[[FindCommands]] | |||
|Todo | |||
|[transId] - TODO: implement transaction sharing | |||
|- | |||
|[[FSCommands]] | |||
|Todo | |||
|done | |||
|- | |||
|[[FSUserCommands|ModelProfileCommands]] | |||
|Todo | |||
|'''renamed''' [profile] | |||
|- | |||
|[[HeadCommands]] | |||
|Todo | |||
|[head] | |||
|- | |||
|[[HomeCommands]] | |||
|Todo | |||
|[home], [homeother], | |||
|- | |||
|[[ImageCommands]] | |||
|Todo | |||
|(skipped) | |||
|- | |||
|[[ItemCommands]] | |||
|Todo | |||
|(skipped) | |||
|- | |||
|[[KadiCommands]] | |||
|Todo | |||
| | |||
|- | |||
|[[KadiCommandsHelper]] | |||
|Todo | |||
| | |||
|- | |||
|[[LandAreaCommands]] | |||
|Todo | |||
|done | |||
|- | |||
|[[LandCommands]] | |||
|Todo | |||
|[landoption], [landmember], [chunkrotation], [shiftamount], [height], [biome] | |||
|- | |||
|[[LibraryCmdCommands]] | |||
|Todo | |||
|(skipped) [libcmd] | |||
|- | |- | ||
| [[ | |[[LibraryCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[LibraryItemCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[LotteryCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[MagicCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[MailCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[MobCommands]] | ||
|Todo | |||
|[mobmodel] | |||
|- | |- | ||
| [[ | |[[ModelCommands]] | ||
|Todo | |||
|<nowiki>[model], [arm|head], [big|small] [visible], [modelSize], [modelrange] [reward], [goalname]</nowiki> | |||
|- | |- | ||
| [[ | |[[MoneyCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[NaviCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[PageCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[PanelCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[PermCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[PGroupCommands]] | ||
|Todo | |||
|[pgroup] | |||
|- | |- | ||
| [[ | |[[PlayerCommands]] | ||
|Todo | |||
|[playermodel] | |||
|- | |- | ||
| [[ | |[[PUserCommands]] | ||
|Todo | |||
|[puser] | |||
|- | |- | ||
| [[ | |[[RecordingCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[RewardCommands]] | ||
|Todo | |||
|x !reward! [goalname] | |||
|- | |- | ||
| [[ | |[[RewardSignCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[ScreenCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[ShopCommands]] | ||
|Todo | |||
|[shop], [shoploc] | |||
|- | |- | ||
| | |'''SkinCommands''' | ||
|Todo | |||
|[skin] | |||
|- | |- | ||
| [[ | |[[ToolCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[TradeCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[TransactionCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[UserCommands]] | ||
|Todo | |||
|[flyeffect] | |||
|- | |- | ||
| [[ | |[[UserConfigCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[UserGroupCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[UserStatsCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[WarpCommands]] | ||
|Todo | |||
|[warp] | |||
|- | |- | ||
| [[ | |[[WorldRestoreCommands]] | ||
|Todo | |||
|x | |||
|- | |- | ||
| [[ | |[[WorldSettingCommands]] | ||
|Todo | |||
|x | |||
|} | |||
==Tab-completion Keywords== | |||
{| class="wikitable sortable mw-collapsible" | |||
|+Forced registered keywords | |||
!Keyword | |||
!Provides | |||
!Examples | |||
|- | |- | ||
| [ | |[world] | ||
|Shows all worldnames | |||
| | |||
|- | |- | ||
| [ | |[player] | ||
|Shows any at least initialized(looked up) player | |||
| | |||
|- | |- | ||
| [ | |[player,player] | ||
|Same as player but allows comma listing | |||
| | |||
|- | |- | ||
| [ | |[playerOn] | ||
|Show currently online players | |||
| | |||
|} | |||
{| class="wikitable sortable mw-collapsible" | |||
|+Optional Keywords if not overwritten | |||
!Keyword | |||
!Provides | |||
!Examples | |||
|- | |- | ||
| [ | |<nowiki>[on|off|toggle]</nowiki> | ||
|Show matching boolean state | |||
| | |||
|- | |- | ||
| [ | |[price] | ||
|double number | |||
| | |||
|- | |- | ||
| [ | |[amount] | ||
|double number | |||
| | |||
|- | |- | ||
| [ | |[radius] | ||
|double number | |||
| | |||
|- | |- | ||
| [ | |[number] | ||
|integer number | |||
| | |||
|- | |- | ||
| [ | |[page] | ||
|integer number | |||
| | |||
|- | |- | ||
| [ | |[nickname] | ||
|'any' string without spaces | |||
| | |||
|- | |- | ||
| [ | |[name] | ||
|'any' string without spaces | |||
| | |||
|- | |- | ||
| [[ | |[owner] | ||
|same as [player] | |||
| | |||
|- | |- | ||
| [ | |[comment...] | ||
|endless text without colors | |||
| | |||
|- | |- | ||
| [ | |[message...] | ||
|endless text without colors | |||
| | |||
|- | |- | ||
| [ | |[colortext...] | ||
|endless text with colors ('&') | |||
| | |||
|- | |- | ||
| [ | |[colorvartext...] | ||
|endless text with colors and variable usage like %name% | |||
| | |||
|- | |- | ||
| [ | |[shortcut] | ||
|single char | |||
| | |||
|- | |- | ||
| [ | |[color] | ||
|ChatColor enum (dark_blue, light_purple, gold) | |||
| | |||
|- | |- | ||
| [ | |[time] | ||
|Amount of time: 1d5h30m, 1m30s, 21d | |||
| | |||
|} | |||
{| class="wikitable sortable mw-collapsible" | |||
|+Kadi plugin additional keywords | |||
!Keyword | |||
!Provides | |||
!Examples | |||
|- | |- | ||
| [ | |[pgroup] | ||
|Name of a permission group | |||
| | |||
|- | |- | ||
| [ | |[puser] | ||
|Name of a permission user | |||
| | |||
|- | |- | ||
| [ | |[name:account] | ||
|Money transfer. This on is complex. See below | |||
| | |||
|- | |- | ||
| [ | |[channel] | ||
|Name of a chat channel | |||
| | |||
|- | |- | ||
| [ | |[prefix...] | ||
|Setting a prefix for something (chat channel) | |||
| | |||
|} | |} | ||
Sending money is allowed with a LOT of variants. Placeholder is '''[name:account]''' . | |||
#'''pay Kademlia 5''' <- RESOLVE PLAYERNAME CAccess.getPlayerIdService().getNameAnyMatching(t); | |||
#'''pay :myacc 5''' <- OWN ACCOUNT Nickname lookup | |||
#'''pay *100500300''' <- RESOLVE ACCOUNT-NUMBERS / Show 'known' numbers. Numbers used lately + server numbers and (numbers on their friends if allowed) | |||
#'''pay *aldi''' <- TRADEMARKED / Simply show all numbers that are valid in theory? Or ones marked as "public" | |||
#(ADMINS) '''pay Kade:1005003''' <- Pre-Filtered by username / Show accounts of the user | |||
#(ADMINS) '''pay Kade:test 5''' <- RESOLVE PLAYERNAME + has a named account (admin only? as this makes private accounts searchable) | |||
==SuffixTree== | |||
SuffixTree update implementation needed for: | |||
*PanelManager - Todo convert to AbstractAddableManager? | |||
*LibManagerImpl | |||
*MailManager | |||
*PermManager | |||
*PUserManager | |||
*ShopManager | |||
*WorldSettingsManager | |||
*AccountManager | |||
*ModelProfileManager | |||
*UserManager | |||
*UserStatsManager | |||
* | |||
Other: | |||
TransactionManagerImpl - Not using data system | |||
MailManager (?; remove?) | |||
<br /> | |||
==Pods== | |||
*Home | |||
**Map<World, List<Home>> // SuffixSearch | |||
**MaxHomes | |||
*Backpack | |||
**libItemStorage Map<LibId, Integer> | |||
**storedStacks (onDeath Tools) LinkedList<String> // serialized stacks + meta? | |||
**(flyFuel), (Oxygen) | |||
*Chat | |||
+ Syncronized loading/methods for Backpack | |||
<br /> | |||
==Data splitting== | |||
Pro: Limit filesize | |||
Pro: better memory management later on (dynamic mailprofile unloading) | |||
Con: User commands interface differs for direct user methods & 'outsurced' data to a X-Manager | |||
Con: duplicated development of Component/Manager. extends AbstractSuffixComponent<T,V> / AbstractManager<T,V> extends SuffixSearchable<T,V> | |||
Rule: Don't save data in user? Only option values? | |||
<br /> | |||
==UserComponents== | |||
OptionsComponent - Map<Option<UserOptionType,?>, Object> data does not fit SuffixSearch interface | |||
HomeComponent (vs MailManager) |
Latest revision as of 14:08, 20 May 2020
Latest Changes
- Shows possible subcommands
- Shows current syntax word and example text
- Filters input based on partial matches
Command Interfaces
Interface | Desc | Keywords |
---|---|---|
General | Forced | [world],[player],[player,player] |
General | Optional | [comment...],[message...],[colorvartext...],[colortext...],[on|off|toggle],[price],[amount],[number],[page],[nickname],[owner],[name],[shortcut],[color],[radius],[time],[percentage], [number_l], [amount_d], [on|off|choice],[true|false], [X.xx,Y.yy,Z.zz], [treetype], [ench1,ench2], [effect] |
General | Kadi | (1st iteration) |
AccountCommands | Todo | [name:account] [:account] |
BoardCommands | Todo | (skipped) |
ChannelCommands | Todo | [channel],[prefix...] |
ChatCommands | Todo | (1st iteration) |
ContainerCommands | Todo | (skipped) |
CraftingCommands | Todo | [recipe], [libid], [resultlib], [0:libA,1:libB,5:libC], [enchantment], [level], [ignoreRestriction], [itemFlag] |
CrateCommands | Todo | [crate], [cquality], [valuable?], [clibid], [libidinv] |
EffectCommands | Todo | (skipped) |
ElementCommands | Todo | (skipped) |
EssentialCommands | Todo | (50% skipped) |
EventCommands | Todo | [event], [eventtype], [startTick], [tick], [repeating], [fixedloc], [anonymous], [rewardsignid] |
FindCommands | Todo | [transId] - TODO: implement transaction sharing |
FSCommands | Todo | done |
ModelProfileCommands | Todo | renamed [profile] |
HeadCommands | Todo | [head] |
HomeCommands | Todo | [home], [homeother], |
ImageCommands | Todo | (skipped) |
ItemCommands | Todo | (skipped) |
KadiCommands | Todo | |
KadiCommandsHelper | Todo | |
LandAreaCommands | Todo | done |
LandCommands | Todo | [landoption], [landmember], [chunkrotation], [shiftamount], [height], [biome] |
LibraryCmdCommands | Todo | (skipped) [libcmd] |
LibraryCommands | Todo | x |
LibraryItemCommands | Todo | x |
LotteryCommands | Todo | x |
MagicCommands | Todo | x |
MailCommands | Todo | x |
MobCommands | Todo | [mobmodel] |
ModelCommands | Todo | [model], [arm|head], [big|small] [visible], [modelSize], [modelrange] [reward], [goalname] |
MoneyCommands | Todo | x |
NaviCommands | Todo | x |
PageCommands | Todo | x |
PanelCommands | Todo | x |
PermCommands | Todo | x |
PGroupCommands | Todo | [pgroup] |
PlayerCommands | Todo | [playermodel] |
PUserCommands | Todo | [puser] |
RecordingCommands | Todo | x |
RewardCommands | Todo | x !reward! [goalname] |
RewardSignCommands | Todo | x |
ScreenCommands | Todo | x |
ShopCommands | Todo | [shop], [shoploc] |
SkinCommands | Todo | [skin] |
ToolCommands | Todo | x |
TradeCommands | Todo | x |
TransactionCommands | Todo | x |
UserCommands | Todo | [flyeffect] |
UserConfigCommands | Todo | x |
UserGroupCommands | Todo | x |
UserStatsCommands | Todo | x |
WarpCommands | Todo | [warp] |
WorldRestoreCommands | Todo | x |
WorldSettingCommands | Todo | x |
Tab-completion Keywords
Keyword | Provides | Examples |
---|---|---|
[world] | Shows all worldnames | |
[player] | Shows any at least initialized(looked up) player | |
[player,player] | Same as player but allows comma listing | |
[playerOn] | Show currently online players |
Keyword | Provides | Examples |
---|---|---|
[on|off|toggle] | Show matching boolean state | |
[price] | double number | |
[amount] | double number | |
[radius] | double number | |
[number] | integer number | |
[page] | integer number | |
[nickname] | 'any' string without spaces | |
[name] | 'any' string without spaces | |
[owner] | same as [player] | |
[comment...] | endless text without colors | |
[message...] | endless text without colors | |
[colortext...] | endless text with colors ('&') | |
[colorvartext...] | endless text with colors and variable usage like %name% | |
[shortcut] | single char | |
[color] | ChatColor enum (dark_blue, light_purple, gold) | |
[time] | Amount of time: 1d5h30m, 1m30s, 21d |
Keyword | Provides | Examples |
---|---|---|
[pgroup] | Name of a permission group | |
[puser] | Name of a permission user | |
[name:account] | Money transfer. This on is complex. See below | |
[channel] | Name of a chat channel | |
[prefix...] | Setting a prefix for something (chat channel) |
Sending money is allowed with a LOT of variants. Placeholder is [name:account] .
- pay Kademlia 5 <- RESOLVE PLAYERNAME CAccess.getPlayerIdService().getNameAnyMatching(t);
- pay :myacc 5 <- OWN ACCOUNT Nickname lookup
- pay *100500300 <- RESOLVE ACCOUNT-NUMBERS / Show 'known' numbers. Numbers used lately + server numbers and (numbers on their friends if allowed)
- pay *aldi <- TRADEMARKED / Simply show all numbers that are valid in theory? Or ones marked as "public"
- (ADMINS) pay Kade:1005003 <- Pre-Filtered by username / Show accounts of the user
- (ADMINS) pay Kade:test 5 <- RESOLVE PLAYERNAME + has a named account (admin only? as this makes private accounts searchable)
SuffixTree
SuffixTree update implementation needed for:
- PanelManager - Todo convert to AbstractAddableManager?
- LibManagerImpl
- MailManager
- PermManager
- PUserManager
- ShopManager
- WorldSettingsManager
- AccountManager
- ModelProfileManager
- UserManager
- UserStatsManager
Other:
TransactionManagerImpl - Not using data system
MailManager (?; remove?)
Pods
- Home
- Map<World, List<Home>> // SuffixSearch
- MaxHomes
- Backpack
- libItemStorage Map<LibId, Integer>
- storedStacks (onDeath Tools) LinkedList<String> // serialized stacks + meta?
- (flyFuel), (Oxygen)
- Chat
+ Syncronized loading/methods for Backpack
Data splitting
Pro: Limit filesize
Pro: better memory management later on (dynamic mailprofile unloading)
Con: User commands interface differs for direct user methods & 'outsurced' data to a X-Manager
Con: duplicated development of Component/Manager. extends AbstractSuffixComponent<T,V> / AbstractManager<T,V> extends SuffixSearchable<T,V>
Rule: Don't save data in user? Only option values?
UserComponents
OptionsComponent - Map<Option<UserOptionType,?>, Object> data does not fit SuffixSearch interface
HomeComponent (vs MailManager)