Kadi: Difference between revisions

From ETM
Jump to navigation Jump to search
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|middle|thumb]]
[[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 !! Desc !! Keywords
!|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]
|-
|-
| [[General]] || Forced || [world],[player],[player,player]
|[[LibraryCommands]]
|Todo
|x
|-
|-
| [[General]] || Optional || [comment...],[colortext...],[on!off!toggle],[price],[amount],[number],[page],[nickname],[owner]
|[[LibraryItemCommands]]
|Todo
|x
|-
|-
| [[General]] || Kadi || -
|[[LotteryCommands]]
|Todo
|x
|-
|-
| [[AccountCommands]] || Todo || [name:account]
|[[MagicCommands]]
|Todo
|x
|-
|-
| [[BoardCommands]] || Todo || -
|[[MailCommands]]
|Todo
|x
|-
|-
| [[ChannelCommands]] || Todo || -
|[[MobCommands]]
|Todo
|[mobmodel]
|-
|-
| [[ChatCommands]] || Todo || -
|[[ModelCommands]]
|Todo
|<nowiki>[model], [arm|head], [big|small] [visible], [modelSize], [modelrange] [reward], [goalname]</nowiki>
|-
|-
| [[Commands]] || Todo || -
|[[MoneyCommands]]
|Todo
|x
|-
|-
| [[ContainerCommands]] || Todo || -
|[[NaviCommands]]
|Todo
|x
|-
|-
| [[CraftingCommands]] || Todo || -
|[[PageCommands]]
|Todo
|x
|-
|-
| [[CrateCommands]] || Todo || -
|[[PanelCommands]]
|Todo
|x
|-
|-
| [[EffectCommands]] || Todo || -
|[[PermCommands]]
|Todo
|x
|-
|-
| [[ElementCommands]] || Todo || -
|[[PGroupCommands]]
|Todo
|[pgroup]
|-
|-
| [[EssentialCommands]] || Todo || -
|[[PlayerCommands]]
|Todo
|[playermodel]
|-
|-
| [[EventCommands]] || Todo || -
|[[PUserCommands]]
|Todo
|[puser]
|-
|-
| [[FindCommands]] || Todo || -
|[[RecordingCommands]]
|Todo
|x
|-
|-
| [[FSUserCommands]] || Todo || -
|[[RewardCommands]]
|Todo
|x !reward! [goalname]
|-
|-
| [[HeadCommands]] || Todo || -
|[[RewardSignCommands]]
|Todo
|x
|-
|-
| [[HomeCommands]] || Todo || -
|[[ScreenCommands]]
|Todo
|x
|-
|-
| [[ImageCommands]] || Todo || -
|[[ShopCommands]]
|Todo
|[shop], [shoploc]
|-
|-
| [[ItemCommands]] || Todo || -
|'''SkinCommands'''
|Todo
|[skin]
|-
|-
| [[KadiCommands]] || Todo || -
|[[ToolCommands]]
|Todo
|x
|-
|-
| [[KadiCommandsHelper]] || Todo || -
|[[TradeCommands]]
|Todo
|x
|-
|-
| [[LandAreaCommands]] || Todo || -
|[[TransactionCommands]]
|Todo
|x
|-
|-
| [[LandCommands]] || Todo || -
|[[UserCommands]]
|Todo
|[flyeffect]
|-
|-
| [[LibraryCmdCommands]] || Todo || -
|[[UserConfigCommands]]
|Todo
|x
|-
|-
| [[LibraryCommands]] || Todo || -
|[[UserGroupCommands]]
|Todo
|x
|-
|-
| [[LibraryItemCommands]] || Todo || -
|[[UserStatsCommands]]
|Todo
|x
|-
|-
| [[LotteryCommands]] || Todo || -
|[[WarpCommands]]
|Todo
|[warp]
|-
|-
| [[MagicCommands]] || Todo || -
|[[WorldRestoreCommands]]
|Todo
|x
|-
|-
| [[MailCommands]] || Todo || -
|[[WorldSettingCommands]]
|Todo
|x
|}
 
==Tab-completion Keywords==
{| class="wikitable sortable mw-collapsible"
|+Forced registered keywords
!Keyword
!Provides
!Examples
|-
|-
| [[MobCommands]] || Todo || -
|[world]
|Shows all worldnames
|
|-
|-
| [[ModelCommands]] || Todo || -
|[player]
|Shows any at least initialized(looked up) player
|
|-
|-
| [[MoneyCommands]] || Todo || -
|[player,player]
|Same as player but allows comma listing
|
|-
|-
| [[NaviCommands]] || Todo || -
|[playerOn]
|Show currently online players
|
|}
 
{| class="wikitable sortable mw-collapsible"
|+Optional Keywords if not overwritten
!Keyword
!Provides
!Examples
|-
|-
| [[PageCommands]] || Todo || -
|<nowiki>[on|off|toggle]</nowiki>
|Show matching boolean state
|
|-
|-
| [[PanelCommands]] || Todo || -
|[price]
|double number
|
|-
|-
| [[PermCommands]] || Todo || -
|[amount]
|double number
|
|-
|-
| [[PGroupCommands]] || Todo || [pgroup]
|[radius]
|double number
|
|-
|-
| [[PlayerCommands]] || Todo || -
|[number]
|integer number
|
|-
|-
| [[PUserCommands]] || Todo || [puser]
|[page]
|integer number
|
|-
|-
| [[RecordingCommands]] || Todo || -
|[nickname]
|'any' string without spaces
|
|-
|-
| [[RewardCommands]] || Todo || -
|[name]
|'any' string without spaces
|
|-
|-
| [[RewardSignCommands]] || Todo || -
|[owner]
|same as [player]
|
|-
|-
| [[ScreenCommands]] || Todo || -
|[comment...]
|endless text without colors
|
|-
|-
| [[ShopCommands]] || Todo || -
|[message...]
|endless text without colors
|
|-
|-
| [[ToolCommands]] || Todo || -
|[colortext...]
|endless text with colors ('&')
|
|-
|-
| [[TradeCommands]] || Todo || -
|[colorvartext...]
|endless text with colors and variable usage like %name%
|
|-
|-
| [[TransactionCommands]] || Todo || -
|[shortcut]
|single char
|
|-
|-
| [[UserCommands]] || Todo || -
|[color]
|ChatColor enum (dark_blue, light_purple, gold)
|
|-
|-
| [[UserConfigCommands]] || Todo || -
|[time]
|Amount of time: 1d5h30m, 1m30s, 21d
|
|}
 
{| class="wikitable sortable mw-collapsible"
|+Kadi plugin additional keywords
!Keyword
!Provides
!Examples
|-
|-
| [[UserGroupCommands]] || Todo || -
|[pgroup]
|Name of a permission group
|
|-
|-
| [[UserStatsCommands]] || Todo || -
|[puser]
|Name of a permission user
|
|-
|-
| [[WarpCommands]] || Todo || -
|[name:account]
|Money transfer. This on is complex. See below
|
|-
|-
| [[WorldRestoreCommands]] || Todo || -
|[channel]
|Name of a chat channel
|
|-
|-
| [[WorldSettingCommands]] || Todo || -
|[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

LandActionConfig

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

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
Optional Keywords if not overwritten
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
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] .

  1. pay Kademlia 5      <- RESOLVE PLAYERNAME CAccess.getPlayerIdService().getNameAnyMatching(t);
  2. pay :myacc 5       <- OWN ACCOUNT Nickname lookup
  3. pay *100500300    <- RESOLVE ACCOUNT-NUMBERS / Show 'known' numbers. Numbers used lately + server numbers and (numbers on their friends if allowed)
  4. pay *aldi        <- TRADEMARKED / Simply show all numbers that are valid in theory? Or ones marked as "public"
  5. (ADMINS) pay Kade:1005003    <- Pre-Filtered by username / Show accounts of the user
  6. (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)