Kadi: Difference between revisions

From ETM
Jump to navigation Jump to search
No edit summary
 
(66 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 current syntax word and example text
*Filters input based on partial matches


* Shows possible subcommands
* Shows current syntax word and example text
* Filters input based on partial matches


==Command Interfaces==
==Command Interfaces==
* [[AccountCommands]]
[[LandActionConfig]]
* [[BoardCommands]]
{| class="wikitable sortable"
* [[ChannelCommands]]
|-
* [[ChatCommands]]
!|Interface
* [[Commands]]
!|Desc
* [[ContainerCommands]]
!|Keywords
* [[CraftingCommands]]
|-
* [[CrateCommands]]
|[[General]]
* [[EffectCommands]]
|Forced
* [[ElementCommands]]
|[world],[player],[player,player]
* [[EssentialCommands]]
|-
* [[EventCommands]]
|[[General]]
* [[FindCommands]]
|Optional
* [[FSUserCommands]]
|<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>
* [[HeadCommands]]
|-
* [[HomeCommands]]
|[[General]]
* [[ImageCommands]]
|Kadi
* [[ItemCommands]]
|(1st iteration)
* [[KadiCommands]]
|-
* [[KadiCommandsHelper]]
|[[AccountCommands]]
* [[LandAreaCommands]]
|Todo
* [[LandCommands]]
|[name:account] [:account]
* [[LibraryCmdCommands]]
|-
* [[LibraryCommands]]
|[[BoardCommands]]
* [[LibraryItemCommands]]
|Todo
* [[LotteryCommands]]
|(skipped)
* [[MagicCommands]]
|-
* [[MailCommands]]
|[[ChannelCommands]]
* [[MobCommands]]
|Todo
* [[ModelCommands]]
|[channel],[prefix...]<br />
* [[MoneyCommands]]
|-
* [[NaviCommands]]
|[[ChatCommands]]
* [[PageCommands]]
|Todo
* [[PanelCommands]]
|(1st iteration)
* [[PermCommands]]
|-
* [[PGroupCommands]]
|[[ContainerCommands]]
* [[PlayerCommands]]
|Todo
* [[PUserCommands]]
|(skipped)
* [[RecordingCommands]]
|-
* [[RewardCommands]]
|[[CraftingCommands]]
* [[RewardSignCommands]]
|Todo
* [[ScreenCommands]]
|[recipe], [libid], [resultlib], [0:libA,1:libB,5:libC], [enchantment], [level], [ignoreRestriction], [itemFlag]
* [[ShopCommands]]
|-
* [[ToolCommands]]
|[[CrateCommands]]
* [[TradeCommands]]
|Todo
* [[TransactionCommands]]
|[crate], [cquality], [valuable?], [clibid], [libidinv]
* [[UserCommands]]
|-
* [[UserConfigCommands]]
|[[EffectCommands]]
* [[UserGroupCommands]]
|Todo
* [[UserStatsCommands]]
|(skipped)
* [[WarpCommands]]
|-
* [[WorldRestoreCommands]]
|[[ElementCommands]]
* [[WorldSettingCommands]]
|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

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)