Kadi: Difference between revisions

From ETM
Jump to navigation Jump to search
No edit summary
No edit summary
 
(44 intermediate revisions by the same user not shown)
Line 8: Line 8:


==Command Interfaces==
==Command Interfaces==
 
[[LandActionConfig]]
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Line 21: Line 21:
|[[General]]
|[[General]]
|Optional
|Optional
|<nowiki>[comment...],[colortext...],[on|off|toggle],[price],[amount],[number],[page],[nickname],[owner],[name],[shortcut],[color],[radius]</nowiki><br />
|<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]]
|[[General]]
|Kadi
|Kadi
|x
|(1st iteration)
|-
|-
|[[AccountCommands]]
|[[AccountCommands]]
|Todo
|Todo
|[name:account]
|[name:account] [:account]
|-
|-
|[[BoardCommands]]
|[[BoardCommands]]
|Todo
|Todo
|x
|(skipped)
|-
|-
|[[ChannelCommands]]
|[[ChannelCommands]]
Line 41: Line 41:
|[[ChatCommands]]
|[[ChatCommands]]
|Todo
|Todo
|x
|(1st iteration)
|-
|[[Commands]]
|Todo
|x
|-
|-
|[[ContainerCommands]]
|[[ContainerCommands]]
|Todo
|Todo
|x
|(skipped)
|-
|-
|[[CraftingCommands]]
|[[CraftingCommands]]
|Todo
|Todo
|x
|[recipe], [libid], [resultlib], [0:libA,1:libB,5:libC], [enchantment], [level], [ignoreRestriction], [itemFlag]
|-
|-
|[[CrateCommands]]
|[[CrateCommands]]
|Todo
|Todo
|x
|[crate], [cquality], [valuable?], [clibid], [libidinv]
|-
|-
|[[EffectCommands]]
|[[EffectCommands]]
|Todo
|Todo
|x
|(skipped)
|-
|-
|[[ElementCommands]]
|[[ElementCommands]]
|Todo
|Todo
|x
|(skipped)
|-
|-
|[[EssentialCommands]]
|[[EssentialCommands]]
|Todo
|Todo
|x
|(50% skipped)
|-
|-
|[[EventCommands]]
|[[EventCommands]]
|Todo
|Todo
|x
|[event], [eventtype], [startTick], [tick], [repeating], [fixedloc], [anonymous], [rewardsignid]
|-
|-
|[[FindCommands]]
|[[FindCommands]]
|Todo
|Todo
|x
|[transId] - TODO: implement transaction sharing
|-
|[[FSCommands]]
|Todo
|done
|-
|-
|[[FSUserCommands]]
|[[FSUserCommands|ModelProfileCommands]]
|Todo
|Todo
|x
|'''renamed''' [profile]
|-
|-
|[[HeadCommands]]
|[[HeadCommands]]
|Todo
|Todo
|x
|[head]
|-
|-
|[[HomeCommands]]
|[[HomeCommands]]
|Todo
|Todo
|x
|[home], [homeother],
|-
|-
|[[ImageCommands]]
|[[ImageCommands]]
|Todo
|Todo
|x
|(skipped)
|-
|-
|[[ItemCommands]]
|[[ItemCommands]]
|Todo
|Todo
|x
|(skipped)
|-
|-
|[[KadiCommands]]
|[[KadiCommands]]
|Todo
|Todo
|x
|
|-
|-
|[[KadiCommandsHelper]]
|[[KadiCommandsHelper]]
|Todo
|Todo
|x
|
|-
|-
|[[LandAreaCommands]]
|[[LandAreaCommands]]
|Todo
|Todo
|x
|done
|-
|-
|[[LandCommands]]
|[[LandCommands]]
|Todo
|Todo
|x
|[landoption], [landmember], [chunkrotation], [shiftamount], [height], [biome]
|-
|-
|[[LibraryCmdCommands]]
|[[LibraryCmdCommands]]
|Todo
|Todo
|x
|(skipped) [libcmd]
|-
|-
|[[LibraryCommands]]
|[[LibraryCommands]]
Line 141: Line 141:
|[[MobCommands]]
|[[MobCommands]]
|Todo
|Todo
|x
|[mobmodel]
|-
|-
|[[ModelCommands]]
|[[ModelCommands]]
|Todo
|Todo
|x
|<nowiki>[model], [arm|head], [big|small] [visible], [modelSize], [modelrange] [reward], [goalname]</nowiki>
|-
|-
|[[MoneyCommands]]
|[[MoneyCommands]]
Line 173: Line 173:
|[[PlayerCommands]]
|[[PlayerCommands]]
|Todo
|Todo
|x
|[playermodel]
|-
|-
|[[PUserCommands]]
|[[PUserCommands]]
Line 185: Line 185:
|[[RewardCommands]]
|[[RewardCommands]]
|Todo
|Todo
|x
|x !reward! [goalname]
|-
|-
|[[RewardSignCommands]]
|[[RewardSignCommands]]
Line 197: Line 197:
|[[ShopCommands]]
|[[ShopCommands]]
|Todo
|Todo
|x
|[shop], [shoploc]
|-
|'''SkinCommands'''
|Todo
|[skin]
|-
|-
|[[ToolCommands]]
|[[ToolCommands]]
Line 213: Line 217:
|[[UserCommands]]
|[[UserCommands]]
|Todo
|Todo
|x
|[flyeffect]
|-
|-
|[[UserConfigCommands]]
|[[UserConfigCommands]]
Line 229: Line 233:
|[[WarpCommands]]
|[[WarpCommands]]
|Todo
|Todo
|x
|[warp]
|-
|-
|[[WorldRestoreCommands]]
|[[WorldRestoreCommands]]
Line 239: Line 243:
|x
|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)