fCraft  0.638
Custom Minecraft Server
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events
Package fCraft

Namespaces

package  AutoRank
 
package  Drawing
 
package  Events
 
package  GUI
 
package  MapConversion
 

Classes

class  BuildingCommands
 Commands for placing specific blocks (solid, water, grass), and switching block placement modes (paint, bind). More...
 
class  ChatCommands
 
class  CommandDescriptor
 Describes a chat command. Defines properties, permission requirements, and usage information. Specifies a handler method. More...
 
class  CommandManager
 Static class that allows registration and parsing of all text commands. More...
 
class  CommandRegistrationException
 Exception that is thrown when an attempt to register a command has failed. More...
 
class  CommandReader
 A text scanner that aids parsing chat commands and their arguments. Breaks up a message into tokens at spaces. Treats quoted strings as whole tokens. More...
 
class  InfoCommands
 Contains commands that don't do anything besides displaying some information or text. Includes several chat commands. More...
 
class  MaintenanceCommands
 Several yet-undocumented commands, mostly related to AutoRank. More...
 
class  ModerationCommands
 Most commands for server moderation - kick, ban, rank change, etc - are here. More...
 
class  WorldCommands
 Contains commands related to world management. More...
 
class  ZoneCommands
 Contains commands related to zone management. More...
 
class  Heartbeat
 Static class responsible for sending heartbeats. More...
 
class  HeartbeatData
 Contains data that's sent to heartbeat servers. More...
 
class  IPBanInfo
 IP ban record. More...
 
class  IPBanList
 Handles the addition, lookup, and removal of IP bans. More...
 
class  IRC
 IRC control class. More...
 
class  IRCCommands
 Provides methods for constructing IRC command messages. More...
 
class  IRCMessage
 Represents a parsed incoming IRC message. More...
 
class  LineWrapper
 Intelligent line-wrapper for Minecraft protocol. Splits long messages into 64-character chunks of ASCII. Maintains colors between lines. Wraps at word boundaries and hyphens. Removes invalid characters and color sequences. Supports optional line prefixes for second and consequent lines. This class is implemented as IEnumerable of Packets, so it's usable with foreach() and Linq. More...
 
struct  Packet
 Packet struct, just a wrapper for a byte array. More...
 
class  PacketReader
 
class  PacketWriter
 
class  Player
 Represents a connection to a Minecraft client. Handles low-level interactions (e.g. networking). More...
 
class  Chat
 Helper class for handling player-generated chat. More...
 
class  ChatTimer
 Provides a way to create and manage publicly-announced countdowns. Long timers announce once an hour (e.g. "7h left"). During the last hour, timer announces more often: every 10 minutes, then every minute, then every 10 seconds, and finally every second - until the timer is up. More...
 
class  ChatTimerEventArgs
 Provides data for ChatTimer.Started and ChatTimer.Stopped events. Immutable. More...
 
class  PlayerListSorter
 
class  PlayerDB
 Persistent database of player information. More...
 
class  PlayerEnumerable
 Contains a set of utilities that simplify working with sets of players. All the utilities are implemented as extension methods, and it is recommended that you invoke them as extension methods. More...
 
class  PlayerInfo
 Object representing persistent state ("record") of a player, online or offline. There is exactly one PlayerInfo object for each known Minecraft account. All data is stored in the PlayerDB. More...
 
class  PlayerInfoComparer
 Sorts PlayerInfo objects by relevance. Orders players by online/offline state first, then by rank, then by time-since-last-seen. Hidden players are listed with the offline players. More...
 
class  PlayerOpException
 Exception that is thrown when a player's action or command could not be completed. More...
 
struct  Position
 Struct representing a position AND orientation in 3D space. Used to represent players' positions in Minecraft world. Stores X/Y/Z as signed shorts, and R/L as unsigned bytes (8 bytes total). Use Vector3I if you just need X/Y/Z coordinates without orientation. Note that, as a struct, Positions are COPIED when assigned or passed as an argument. More...
 
class  Rank
 Rank of a player. Ranks are arranged in a linear hierarchy. One instance of a Rank object should be shared by players of the same rank. Rank objects are comparable - you can use comparison operators or CompareTo. More...
 
class  RankDefinitionException
 Exception that is thrown when parsing a rank definition has failed. More...
 
class  RankManager
 Manages all the ranks on a server. Controlls what ranks are avaliable and in what order they exist in. More...
 
class  SecurityController
 Controller for setting and checking per-rank permissions and per-player exceptions. Used by World.AccessSecurity, World.BuildSecurity, and Zone. More...
 
struct  PlayerExceptions
 List of included and excluded players. More...
 
class  Config
 Static class that handles loading/saving configuration, contains config defaults, and various configuration-related utilities. More...
 
class  ConfigKeyAttribute
 Describes attributes and metadata of a configuration key. More...
 
class  StringKeyAttribute
 
class  IntKeyAttribute
 
class  RankKeyAttribute
 
class  BoolKeyAttribute
 
class  IPKeyAttribute
 
class  ColorKeyAttribute
 
class  EnumKeyAttribute
 
class  Logger
 Central logging class. Logs to file, relays messages to the frontend, submits crash reports. More...
 
class  Scheduler
 A general-purpose task scheduler. More...
 
class  SchedulerTask
 A task to be executed by the Scheduler. Stores timing information and state. More...
 
class  Server
 Core of an fCraft server. Manages startup/shutdown, online player sessions, global events and scheduled tasks. More...
 
class  ShutdownParams
 Describes the circumstances of server shutdown. More...
 
class  BoundingBox
 Defines a 3D bounding box, in integer cartesian coordinates. Coordinates are always inclusive, so note that even a bounding box with coinciding vertices is a 1x1x1 cube, and has non-zero volume and non-zero dimensions. More...
 
class  BufferUtil
 Provides utility methods for working with byte arrays and pointers. More...
 
class  Color
 Static class with definitions of Minecraft color codes, parsers, converters, and utilities. More...
 
class  ConcurrentQueue< T >
 A lightweight queue implementation with lock-free/concurrent operations. More...
 
class  DateTimeUtil
 Provides utility functions for working with DateTime and TimeSpan. More...
 
class  EnumerableUtil
 Provides methods JoinToString/JoinToClassyString methods for merging lists and enumerations into strings. More...
 
class  EnumUtil
 Provides TryParse method, for parsing enumerations. More...
 
interface  ICancelableEvent
 An EventArgs for an event that can be cancelled. More...
 
interface  INotifiesOnChange
 Simple interface for objects to notify of changes in their serializable state. This event is used to trigger saving things like Zone- and MetadataCollection. sender should be set for EventHandler, and e should be set to EventArgs.Empty More...
 
class  FormatUtil
 
interface  IClassy
 Provides a way for printing an object's name beautified with Minecraft color codes. It was "classy" in a sense that it was colored based on "class" (rank) of a player/world/zone. More...
 
class  IPAddressUtil
 Provides utility methods for working with IP addresses and ranges. More...
 
class  LogRecorder
 A simple way to temporarily hook into fCraft's Logger. Make sure to dispose this class when you are done recording. The easiest way to ensure that is with a using(){...} block. More...
 
struct  MetadataEntry< TValue >
 A string metadata entry. More...
 
class  MetadataCollection< TValue >
 A collection of metadata entries, addressable by pairs of string group/key names. Group names, key names, and values may not be null. More...
 
class  MonoCompat
 Class dedicated to solving Mono compatibility issues More...
 
class  Noise
 Class for generating and filtering 2D and 3D noise, extensively used by MapGenerator and Cloudy brush. More...
 
class  Paths
 Contains fCraft path settings, and some filesystem-related utilities. More...
 
class  PerlinNoise3D
 Implementation of 3D Perlin Noise after Ken Perlin's reference implementation. More...
 
class  RWLSExtension
 
class  Trie< T >
 Specialized data structure for partial-matching of large sparse sets of words. Used as a searchable index of players for PlayerDB. More...
 
class  Updater
 Checks for updates, and keeps track of current version/revision. More...
 
class  UpdaterResult
 Result of an update check. More...
 
class  ReleaseInfo
 Used to describe a particular release version of fCraft. Includes date released, version More...
 
struct  Vector3F
 Floating-point (single precision) 3D vector. More...
 
struct  Vector3I
 Integer 3D vector. More...
 
class  BlockDB
 Database of block changes. Each BlockDB object is associated with a world. Provides controls for storage/retention, and methods to look up data. More...
 
interface  IBlockDBQueryProcessor
 Class used to process results of traversing the BlockDB. More...
 
struct  BlockDBEntry
 Struct representing a single block change. You may safely cast byte* pointers directly to BlockDBEntry* and vice versa. More...
 
struct  BlockUpdate
 Structure representing a pending update to the map's block array. Contains information about the block coordinates, type, and change's origin. More...
 
class  Forester
 Vegetation generator for MapGenerator. More...
 
class  ForesterArgs
 
class  Map
 Represents a map file (associated with a world or not). Maps can be created blank (using Map constructor), generated terrain (using MapGenerator), or loaded from file (using fCraft.MapConversion.MapUtility). More...
 
class  MapGenerator
 Provides functionality for generating map files. More...
 
class  MapGeneratorArgs
 Contains parameters for advanced map generation. More...
 
class  World
 World instance. Manages the player list, manages access/build security, stores metadata. More...
 
class  WorldManager
 Manages the world list. Handles loading/unloading, renaming, map changes, and more. More...
 
class  WorldOpException
 Exception that is thrown when an invalid operation is attempted on a world. More...
 
class  Zone
 A bounding box selection that is designated as a sub area within a world. Zones can have restriction just like worlds on access, and block modification. More...
 
class  ZoneCollection
 A collection of zones within a map. More...
 

Enumerations

enum  CommandCategory {
  None = 0, Building = 1, Chat = 2, Info = 4,
  Moderation = 8, Maintenance = 16, World = 32, Zone = 64,
  Debug = 128
}
 Command categories. A command may belong to more than one category. Use binary flag logic to test whether a command belongs to a particular category. More...
 
enum  IRCReplyCode {
  Null = 000, Welcome = 001, YourHost = 002, Created = 003,
  MyInfo = 004, Bounce = 005, TraceLink = 200, TraceConnecting = 201,
  TraceHandshake = 202, TraceUnknown = 203, TraceOperator = 204, TraceUser = 205,
  TraceServer = 206, TraceService = 207, TraceNewType = 208, TraceClass = 209,
  TraceReconnect = 210, StatsLinkInfo = 211, StatsCommands = 212, EndOfStats = 219,
  UserModeIs = 221, ServiceList = 234, ServiceListEnd = 235, StatsUptime = 242,
  StatsOLine = 243, StatsConn = 250, LuserClient = 251, LuserOp = 252,
  LuserUnknown = 253, LuserChannels = 254, LuserMe = 255, AdminMe = 256,
  AdminLocation1 = 257, AdminLocation2 = 258, AdminEmail = 259, TraceLog = 261,
  TraceEnd = 262, TryAgain = 263, LocalUsers = 265, GlobalUsers = 266,
  Away = 301, UserHost = 302, IsOn = 303, UnAway = 305,
  NowAway = 306, WhoIsUser = 311, WhoIsServer = 312, WhoIsOperator = 313,
  WhoWasUser = 314, EndOfWho = 315, WhoIsIdle = 317, EndOfWhoIs = 318,
  WhoIsChannels = 319, ListStart = 321, List = 322, ListEnd = 323,
  ChannelModeIs = 324, UniqueOpIs = 325, NoTopic = 331, Topic = 332,
  TopicSetBy = 333, Inviting = 341, Summoning = 342, InviteList = 346,
  EndOfInviteList = 347, ExceptionList = 348, EndOfExceptionList = 349, Version = 351,
  WhoReply = 352, NamesReply = 353, Links = 364, EndOfLinks = 365,
  EndOfNames = 366, BanList = 367, EndOfBanList = 368, EndOfWhoWas = 369,
  Info = 371, Motd = 372, EndOfInfo = 374, MotdStart = 375,
  EndOfMotd = 376, YouAreOper = 381, Rehashing = 382, YouAreService = 383,
  Time = 391, UsersStart = 392, Users = 393, EndOfUsers = 394,
  NoUsers = 395, ErrorNoSuchNickname = 401, ErrorNoSuchServer = 402, ErrorNoSuchChannel = 403,
  ErrorCannotSendToChannel = 404, ErrorTooManyChannels = 405, ErrorWasNoSuchNickname = 406, ErrorTooManyTargets = 407,
  ErrorNoSuchService = 408, ErrorNoOrigin = 409, ErrorNoRecipient = 411, ErrorNoTextToSend = 412,
  ErrorNoTopLevel = 413, ErrorWildTopLevel = 414, ErrorBadMask = 415, ErrorUnknownCommand = 421,
  ErrorNoMotd = 422, ErrorNoAdminInfo = 423, ErrorFileError = 424, ErrorNoNicknameGiven = 431,
  ErrorErroneusNickname = 432, ErrorNicknameInUse = 433, ErrorNicknameCollision = 436, ErrorUnavailableResource = 437,
  ErrorUserNotInChannel = 441, ErrorNotOnChannel = 442, ErrorUserOnChannel = 443, ErrorNoLogin = 444,
  ErrorSummonDisabled = 445, ErrorUsersDisabled = 446, ErrorNotRegistered = 451, ErrorNeedMoreParams = 461,
  ErrorAlreadyRegistered = 462, ErrorNoPermissionForHost = 463, ErrorPasswordMismatch = 464, ErrorYouAreBannedCreep = 465,
  ErrorYouWillBeBanned = 466, ErrorKeySet = 467, ErrorChannelIsFull = 471, ErrorUnknownMode = 472,
  ErrorInviteOnlyChannel = 473, ErrorBannedFromChannel = 474, ErrorBadChannelKey = 475, ErrorBadChannelMask = 476,
  ErrorNoChannelModes = 477, ErrorBanListFull = 478, ErrorNoPrivileges = 481, ErrorChannelOpPrivilegesNeeded = 482,
  ErrorCannotKillServer = 483, ErrorRestricted = 484, ErrorUniqueOpPrivilegesNeeded = 485, ErrorNoOperHost = 491,
  ErrorUserModeUnknownFlag = 501, ErrorUsersDoNotMatch = 502
}
 IRC protocol reply codes. More...
 
enum  IRCMessageType {
  Ping, Info, Login, Motd,
  List, Join, Kick, Part,
  Invite, Quit, Kill, Who,
  WhoIs, WhoWas, Name, Topic,
  BanList, NickChange, TopicChange, UserMode,
  UserModeChange, ChannelMode, ChannelModeChange, ChannelMessage,
  ChannelAction, ChannelNotice, QueryMessage, QueryAction,
  QueryNotice, CtcpReply, CtcpRequest, Error,
  ErrorMessage, Unknown
}
 IRC message types. More...
 
enum  OpCode {
  Handshake = 0, Ping = 1, MapBegin = 2, MapChunk = 3,
  MapEnd = 4, SetBlockClient = 5, SetBlockServer = 6, AddEntity = 7,
  Teleport = 8, MoveRotate = 9, Move = 10, Rotate = 11,
  RemoveEntity = 12, Message = 13, Kick = 14, SetPermission = 15
}
 Minecraft protocol's opcodes. More...
 
enum  ChatMessageType {
  Other, Global, IRC, Me,
  PM, Rank, Say, Staff,
  World
}
 Type of a broadcast chat message. More...
 
enum  RawMessageType {
  Invalid, Chat, Command, Confirmation,
  PartialMessage, PrivateChat, RankChat, RepeatCommand
}
 Type of message sent by the player. Determined by CommandManager.GetMessageType() More...
 
enum  Permission {
  Chat, Build, Delete, PlaceGrass,
  PlaceWater, PlaceLava, PlaceAdmincrete, DeleteAdmincrete,
  ViewOthersInfo, ViewPlayerIPs, EditPlayerDB, Say,
  UseTimers, ReadStaffChat, UseColorCodes, UseEmotes,
  UseSpeedHack, Kick, Ban, BanIP,
  BanAll, Promote, Demote, Hide,
  Draw, DrawAdvanced, CopyAndPaste, UndoOthersActions,
  UndoAll, Teleport, Bring, BringAll,
  Patrol, Spectate, Freeze, Mute,
  SetSpawn, Lock, ManageZones, ManageWorlds,
  FlushWorlds, ManageBlockDB, Import, ReloadConfig,
  ShutdownServer
}
 Enumeration of permission types/categories. Every rank definition contains a combination of these. More...
 
enum  LeaveReason : byte {
  Unknown = 0x00, ClientQuit = 0x01, ClientReconnect = 0x03, Kick = 0x10,
  IdleKick = 0x11, InvalidMessageKick = 0x12, InvalidSetTileKick = 0x13, InvalidOpcodeKick = 0x14,
  BlockSpamKick = 0x15, MessageSpamKick = 0x16, Ban = 0x20, BanIP = 0x21,
  BanAll = 0x22, ServerError = 0x30, ServerShutdown = 0x31, ServerFull = 0x32,
  WorldFull = 0x33, ProtocolViolation = 0x41, UnverifiedName = 0x42, LoginFailed = 0x43
}
 List of possible reasons for players leaving the server. More...
 
enum  NameVerificationMode { Never, Balanced, Always }
 Mode of player name verification. More...
 
enum  RankChangeType : byte {
  Default = 0, Promoted = 1, Demoted = 2, AutoPromoted = 3,
  AutoDemoted = 4
}
 Describes the way player's rank was set. More...
 
enum  BandwidthUseMode : byte {
  Default = 0, VeryLow = 1, Low = 2, Normal = 3,
  High = 4, VeryHigh = 5
}
 Bandwidth use mode. This setting affects the way player receive movement updates. More...
 
enum  CanPlaceResult {
  Allowed, OutOfBounds, BlocktypeDenied, WorldDenied,
  ZoneDenied, RankDenied, PluginDenied, PluginDeniedNoUpdate
}
 A list of possible results of Player.CanPlace() permission test. More...
 
enum  WorldChangeReason {
  FirstWorld, Rejoin, ManualJoin, Tp,
  Bring, SpectateTargetJoined, WorldRemoved, PermissionChanged
}
 List possible reasons for players joining/changing worlds. More...
 
enum  BanStatus : byte { NotBanned, IPBanExempt, Banned }
 Lists possible ban states of players (banned, not banned, and exempt). More...
 
enum  ClickAction : byte { Delete = 0, Build = 1 }
 Describes the action that player performed to click a block (left or right click). More...
 
enum  SessionState {
  Offline, Connecting, LoadingMain, Online,
  PendingDisconnect, Disconnected
}
 Describes the state of a connected Player's session. More...
 
enum  AccountType : byte { Unknown, Free, Paid }
 Type of Minecraft.net account associated with the player. More...
 
enum  PlayerOpExceptionCode {
  Other, CannotTargetSelf, NoActionNeeded, ReasonRequired,
  PermissionMissing, PermissionLimitTooLow, TargetIsExempt, MustBeInAWorld,
  Cancelled, InvalidIP
}
 Possible player operation exception codes. More...
 
enum  PermissionOverride { None, Allow, Deny }
 Indicates what kind of per-entity override/exception is defined in a security controller. More...
 
enum  SecurityCheckResult { Allowed, RankTooLow, WhiteListed, BlackListed }
 Possible results of a SecurityController permission check. More...
 
enum  ArgKey {
  Path, LogPath, MapPath, Config,
  NoRestart, ExitOnCrash, NoLog, NoConsoleColor,
  NoUpdater
}
 Enumerates the recognized command-line switches/arguments. Args are parsed in Server.InitLibrary More...
 
enum  ConfigKey {
  ServerName, MOTD, MaxPlayers, MaxPlayersPerWorld,
  DefaultRank, IsPublic, Port, UploadBandwidth,
  RankColorsInChat, RankColorsInWorldNames, RankPrefixesInChat, RankPrefixesInList,
  ShowConnectionMessages, ShowJoinedWorldMessages, SystemMessageColor, HelpColor,
  SayColor, AnnouncementColor, PrivateMessageColor, MeColor,
  WarningColor, AnnouncementInterval, DefaultBuildRank, MapPath,
  VerifyNames, MaxConnectionsPerIP, AllowUnverifiedLAN, PatrolledRank,
  AntispamMessageCount, AntispamInterval, AntispamMuteDuration, AntispamMaxWarnings,
  PaidPlayersOnly, RequireBanReason, RequireKickReason, RequireRankChangeReason,
  AnnounceKickAndBanReasons, AnnounceRankChanges, AnnounceRankChangeReasons, BlockDBEnabled,
  BlockDBAutoEnable, BlockDBAutoEnableRank, SaveInterval, BackupOnStartup,
  BackupOnJoin, BackupOnlyWhenChanged, DefaultBackupInterval, MaxBackups,
  MaxBackupSize, BackupDataOnStartup, LogMode, MaxLogs,
  IRCBotEnabled, IRCBotNick, IRCBotNetwork, IRCBotPort,
  IRCBotChannels, IRCBotForwardFromServer, IRCBotForwardFromIRC, IRCBotAnnounceServerJoins,
  IRCBotAnnounceIRCJoins, IRCBotAnnounceServerEvents, IRCRegisteredNick, IRCNickServ,
  IRCNickServMessage, IRCMessageColor, IRCShowColorsFromServer, IRCShowEmotesFromServer,
  IRCShowColorsFromIRC, IRCShowEmotesFromIRC, IRCDelay, IRCThreads,
  SubmitCrashReports, UpdaterMode, RunBeforeUpdate, RunAfterUpdate,
  BackupBeforeUpdate, RelayAllBlockUpdates, NoPartialPositionUpdates, ProcessPriority,
  BlockUpdateThrottling, TickInterval, LowLatencyMode, MaxUndo,
  MaxUndoStates, ConsoleName, AutoRankEnabled, HeartbeatEnabled,
  WoMEnableEnvExtensions, IP, BandwidthUseMode, RestartInterval
}
 Enumeration of available configuration keys. See comments at the top of Config.cs for a history of changes. More...
 
enum  ConfigSection {
  General, Chat, Worlds, Security,
  SavingAndBackup, Logging, IRC, Advanced
}
 ConfigKey section/category. More...
 
enum  LogType {
  SystemActivity, Warning, Error, SeriousError,
  UserActivity, UserCommand, SuspiciousActivity, GlobalChat,
  PrivateChat, RankChat, ConsoleInput, ConsoleOutput,
  IRCStatus, IRCChat, Debug, Trace
}
 Category of a log event. More...
 
enum  LogSplittingType { OneFile, SplitBySession, SplitByDay }
 Log splitting type. More...
 
enum  ShutdownReason {
  ShutdownCommand = 0, RestartCommand = 1, FailedToInitialize = 2, FailedToStart = 3,
  Crashed = 4, ProcessClosing = 5, RestartTimer = 6, RestartForUpdate = 7,
  ShutdownForUpdate = 8
}
 Categorizes conditions that lead to server shutdowns. More...
 
enum  NoiseInterpolationMode { Linear, Cosine, Bicubic, Spline }
 Interpolation mode for perlin noise. More...
 
enum  UpdaterMode { Disabled, Notify, Prompt, Auto }
 Updater behavior. More...
 
enum  ReleaseFlags {
  None = 0, APIChange = 1, Bugfix = 2, ConfigFormatChange = 4,
  Dev = 8, Feature = 16, MapFormatChange = 32, PlayerDBFormatChange = 64,
  Security = 128, Unstable = 256, Optimized = 512
}
 A list of release flags/attributes. Use binary flag logic (value & flag == flag) or Release.IsFlagged() to test for flags. More...
 
enum  YesNoAuto { Auto, Yes, No }
 Three state enum used for parameters which can be manually enabled/disabled (yes/no), or left alone (auto). Default value is "Auto". More...
 
enum  Block : byte {
  None = 255, Air = 0, Stone = 1, Grass = 2,
  Dirt = 3, Cobblestone = 4, Wood = 5, Sapling = 6,
  Admincrete = 7, Water = 8, StillWater = 9, Lava = 10,
  StillLava = 11, Sand = 12, Gravel = 13, GoldOre = 14,
  IronOre = 15, Coal = 16, Log = 17, Leaves = 18,
  Sponge = 19, Glass = 20, Red = 21, Orange = 22,
  Yellow = 23, Lime = 24, Green = 25, Teal = 26,
  Aqua = 27, Cyan = 28, Blue = 29, Indigo = 30,
  Violet = 31, Magenta = 32, Pink = 33, Black = 34,
  Gray = 35, White = 36, YellowFlower = 37, RedFlower = 38,
  BrownMushroom = 39, RedMushroom = 40, Gold = 41, Iron = 42,
  DoubleSlab = 43, Slab = 44, Bricks = 45, TNT = 46,
  Books = 47, MossyCobble = 48, Obsidian = 49
}
 Enumeration of all standard Minecraft Classic block types. More...
 
enum  BlockChangeContext {
  Unknown = 0, Manual = 1, Drawn = 2, Replaced = 4,
  Pasted = 8, Cut = 16, UndoneSelf = 32, UndoneOther = 64,
  Restored = 128, Filled = 256, Redone = 512, PaintedCombo = Manual | Replaced,
  RedoneCombo = Drawn | UndoneSelf | Redone
}
 Context of the block change. Multiple flags can be combined. More...
 
enum  BlockDBSearchType { ReturnAll, ReturnNewest, ReturnOldest }
 Describes what kind of results should BlockDB.Lookup return. More...
 
enum  MapGenTheme {
  Arctic, Desert, Forest, Hell,
  Swamp
}
 Map generator themes. A theme defines what type of blocks are used to fill the map. More...
 
enum  MapGenTemplate {
  Archipelago, Atoll, Bay, Dunes,
  Flat, Hills, Ice, Island,
  Lake, Mountains, Peninsula, Random,
  River, Streams
}
 Map generator template. Templates define landscape shapes and features. More...
 
enum  WorldOpExceptionCode {
  Unexpected, NoChangeNeeded, InvalidWorldName, WorldNotFound,
  DuplicateWorldName, SecurityError, CannotDoThatToMainWorld, MapNotFound,
  MapPathError, MapLoadError, MapSaveError, MapMoveError,
  Cancelled
}
 List of common world operation issues. Used by WorldOpException. More...
 

Functions

delegate void CommandHandler (Player source, CommandReader cmd)
 Represents a method that acts as a handler for a command.
 
delegate void SelectionCallback (Player player, Vector3I[] marks, object tag)
 Represents a callback method for a player-made selection of one or more blocks on a map. A command may request a number of marks/blocks to select, and a specify callback to be executed when the desired number of marks/blocks is reached.
 
delegate void ConfirmationCallback (Player player, object tag, bool fromConsole)
 Represents the method that responds to a confirmation command.
 
delegate void SchedulerCallback ([NotNull] SchedulerTask task)
 Represents the method that is called when a SchedulerTask is executed.
 

Enumeration Type Documentation

enum fCraft.AccountType : byte

Type of Minecraft.net account associated with the player.

Enumerator:
Unknown 

Unknown (could be free or paid). Default value for players whose accounts haven't been checked.

Free 

Free minecraft.net account. A Keep in mind that any free account can become paid some time in the future.

Paid 

Paid minecraft.net account.

Enumerates the recognized command-line switches/arguments. Args are parsed in Server.InitLibrary

Enumerator:
Path 

Working path (directory) that fCraft should use. If the path is relative, it's computed against the location of fCraft.dll

LogPath 

Path (directory) where the log files should be placed. If the path is relative, it's computed against the working path.

MapPath 

Path (directory) where the map files should be loaded from/saved to. If the path is relative, it's computed against the working path.

Config 

Path (file) of the configuration file. If the path is relative, it's computed against the working path.

NoRestart 

If NoRestart flag is present, fCraft will shutdown instead of restarting. Useful if you are using an auto-restart script/process monitor of some sort.

ExitOnCrash 

If ExitOnCrash flag is present, fCraft frontends will exit at once in the event of an unrecoverable crash, instead of showing a message.

NoLog 

Disables all logging.

NoConsoleColor 

Disables colors in CLI frontends.

NoUpdater 

Do not run the updater executable upon updating.

Bandwidth use mode. This setting affects the way player receive movement updates.

Enumerator:
Default 

Use server default.

VeryLow 

Very low bandwidth (choppy player movement, players pop-in/pop-out in the distance).

Low 

Lower bandwidth use (less choppy, pop-in distance is further).

Normal 

Normal mode (pretty much no choppiness, pop-in only noticeable when teleporting).

High 

High bandwidth use (pretty much no choppiness, pop-in only noticeable when teleporting on large maps).

VeryHigh 

Very high bandwidth use (no choppiness at all, no pop-in).

enum fCraft.BanStatus : byte

Lists possible ban states of players (banned, not banned, and exempt).

Enumerator:
NotBanned 

Player is not banned.

IPBanExempt 

Player cannot be banned or IP-banned.

Banned 

Player is banned.

enum fCraft.Block : byte

Enumeration of all standard Minecraft Classic block types.

Enumerator:
None 
Air 
Stone 
Grass 
Dirt 
Cobblestone 
Wood 
Sapling 
Admincrete 
Water 
StillWater 
Lava 
StillLava 
Sand 
Gravel 
GoldOre 
IronOre 
Coal 
Log 
Leaves 
Sponge 
Glass 
Red 
Orange 
Yellow 
Lime 
Green 
Teal 
Aqua 
Cyan 
Blue 
Indigo 
Violet 
Magenta 
Pink 
Black 
Gray 
White 
YellowFlower 
RedFlower 
BrownMushroom 
RedMushroom 
Gold 
Iron 
DoubleSlab 
Slab 
Bricks 
TNT 
Books 
MossyCobble 
Obsidian 

Context of the block change. Multiple flags can be combined.

Enumerator:
Unknown 

Default/unknown context.

Manual 

Block was manually edited, with a click. Opposite of Drawn.

Drawn 

Block was edited using a drawing operation. Opposite of Manual.

Replaced 

Block was replaced (using /paint, /r, /rn, /rb, or replace brush variations).

Pasted 

Block was pasted (using /paste, /pastenot, /px, or /pnx)

Cut 

Block was cut (using /cut).

UndoneSelf 

Undone a change previously made by same player (using /undo, /ua, or /up on self).

UndoneOther 

Undone a change previously made by another player (using /ua or /up).

Restored 

Block was inserted from another file (using /restore).

Filled 

Block was filled (using /fill2d or /fill3d).

Redone 

Redone, opposite of UndoneSelf/UndoneOther

PaintedCombo 

Combination of Manual and Replaced (as used by /Paint).

RedoneCombo 

Combination of Drawn, UndoneSelf, and Redone (as used by /Redo).

Describes what kind of results should BlockDB.Lookup return.

Enumerator:
ReturnAll 

All BlockDB Entries (even those that have been overriden) are returned, possibly multiple entries per coordinate.

ReturnNewest 

Only one newest entry is returned for each coordinate.

ReturnOldest 

Only one oldest entry is returned for each coordinate.

A list of possible results of Player.CanPlace() permission test.

Enumerator:
Allowed 

Block may be placed/changed.

OutOfBounds 

Block was out of bounds in the given map.

BlocktypeDenied 

Player was not allowed to place or replace blocks of this particular blocktype.

WorldDenied 

Player was not allowed to build on this particular world.

ZoneDenied 

Player was not allowed to build in this particular zone. Use World.Map.FindDeniedZone() to find the specific zone.

RankDenied 

Player's rank is not allowed to build or delete in general.

PluginDenied 

A plugin callback cancelled block placement/deletion. To keep player's copy of the map in sync, he will be resent the old blocktype at that location.

PluginDeniedNoUpdate 

A plugin callback cancelled block placement/deletion. A copy of the old block will not be sent to the player (he may go out of sync).

Type of a broadcast chat message.

Enumerator:
Other 

Unknown or custom chat message type.

Global 

Global (white) chat message.

IRC 

Message directed to or from IRC.

Me 

Message produced by /Me command (action).

PM 

Private message ( message).

Rank 

Rank-wide message (@Rank message).

Say 

Message produced by /Say command (global announcement).

Staff 

Message produced by /Staff command.

World 

Local (world) chat message.

enum fCraft.ClickAction : byte

Describes the action that player performed to click a block (left or right click).

Enumerator:
Delete 

Deleting a block (left-click in Minecraft).

Build 

Building a block (right-click in Minecraft).

Command categories. A command may belong to more than one category. Use binary flag logic to test whether a command belongs to a particular category.

Enumerator:
None 

Default command category. Do not use it.

Building 

Building-related commands: drawing, binding, copy/paste.

Chat 

Chat-related commands: messaging, ignoring, muting, etc.

Info 

Information commands: server, world, zone, rank, and player infos.

Moderation 

Moderation commands: kick, ban, rank, tp/bring, etc.

Maintenance 

Server maintenance commands: reloading configs, editing PlayerDB, importing data, etc.

World 

World-related commands: joining, loading, renaming, etc.

Zone 

Zone-related commands: creating, editing, testing, etc.

Debug 

Commands that are only used for diagnostics and debugging.

Enumeration of available configuration keys. See comments at the top of Config.cs for a history of changes.

Enumerator:
ServerName 
MOTD 
MaxPlayers 
MaxPlayersPerWorld 
DefaultRank 
IsPublic 
Port 
UploadBandwidth 
RankColorsInChat 
RankColorsInWorldNames 
RankPrefixesInChat 
RankPrefixesInList 
ShowConnectionMessages 
ShowJoinedWorldMessages 
SystemMessageColor 
HelpColor 
SayColor 
AnnouncementColor 
PrivateMessageColor 
MeColor 
WarningColor 
AnnouncementInterval 
DefaultBuildRank 
MapPath 
VerifyNames 
MaxConnectionsPerIP 
AllowUnverifiedLAN 
PatrolledRank 
AntispamMessageCount 
AntispamInterval 
AntispamMuteDuration 
AntispamMaxWarnings 
PaidPlayersOnly 
RequireBanReason 
RequireKickReason 
RequireRankChangeReason 
AnnounceKickAndBanReasons 
AnnounceRankChanges 
AnnounceRankChangeReasons 
BlockDBEnabled 
BlockDBAutoEnable 
BlockDBAutoEnableRank 
SaveInterval 
BackupOnStartup 
BackupOnJoin 
BackupOnlyWhenChanged 
DefaultBackupInterval 
MaxBackups 
MaxBackupSize 
BackupDataOnStartup 
LogMode 
MaxLogs 
IRCBotEnabled 
IRCBotNick 
IRCBotNetwork 
IRCBotPort 
IRCBotChannels 
IRCBotForwardFromServer 
IRCBotForwardFromIRC 
IRCBotAnnounceServerJoins 
IRCBotAnnounceIRCJoins 
IRCBotAnnounceServerEvents 
IRCRegisteredNick 
IRCNickServ 
IRCNickServMessage 
IRCMessageColor 
IRCShowColorsFromServer 
IRCShowEmotesFromServer 
IRCShowColorsFromIRC 
IRCShowEmotesFromIRC 
IRCDelay 
IRCThreads 
SubmitCrashReports 
UpdaterMode 
RunBeforeUpdate 
RunAfterUpdate 
BackupBeforeUpdate 
RelayAllBlockUpdates 
NoPartialPositionUpdates 
ProcessPriority 
BlockUpdateThrottling 
TickInterval 
LowLatencyMode 
MaxUndo 
MaxUndoStates 
ConsoleName 
AutoRankEnabled 
HeartbeatEnabled 
WoMEnableEnvExtensions 
IP 
BandwidthUseMode 
RestartInterval 

ConfigKey section/category.

Enumerator:
General 

General server configuration (name, port, default rank, etc).

Chat 

Chat-related configuration (colors, whether to announce certain events, etc).

Worlds 

World-related configuration (main world, default build rank, map folder, etc).

Security 

Security-related configuration (name verification, connection limit per IP, anti-spam, etc).

SavingAndBackup 

Saving- and backup-related configuration (save interval, backup intervals, etc).

Logging 

Logging-related configuration (what events to log, how to store log files, etc).

IRC 

IRC-related configuration (network, channel list, bot nick, etc).

Advanced 

Advanced configuration (performance adjustments, protocol tweaks, experimental features, etc).

IRC message types.

Enumerator:
Ping 
Info 
Login 
Motd 
List 
Join 
Kick 
Part 
Invite 
Quit 
Kill 
Who 
WhoIs 
WhoWas 
Name 
Topic 
BanList 
NickChange 
TopicChange 
UserMode 
UserModeChange 
ChannelMode 
ChannelModeChange 
ChannelMessage 
ChannelAction 
ChannelNotice 
QueryMessage 
QueryAction 
QueryNotice 
CtcpReply 
CtcpRequest 
Error 
ErrorMessage 
Unknown 

IRC protocol reply codes.

Enumerator:
Null 
Welcome 
YourHost 
Created 
MyInfo 
Bounce 
TraceLink 
TraceConnecting 
TraceHandshake 
TraceUnknown 
TraceOperator 
TraceUser 
TraceServer 
TraceService 
TraceNewType 
TraceClass 
TraceReconnect 
StatsLinkInfo 
StatsCommands 
EndOfStats 
UserModeIs 
ServiceList 
ServiceListEnd 
StatsUptime 
StatsOLine 
StatsConn 
LuserClient 
LuserOp 
LuserUnknown 
LuserChannels 
LuserMe 
AdminMe 
AdminLocation1 
AdminLocation2 
AdminEmail 
TraceLog 
TraceEnd 
TryAgain 
LocalUsers 
GlobalUsers 
Away 
UserHost 
IsOn 
UnAway 
NowAway 
WhoIsUser 
WhoIsServer 
WhoIsOperator 
WhoWasUser 
EndOfWho 
WhoIsIdle 
EndOfWhoIs 
WhoIsChannels 
ListStart 
List 
ListEnd 
ChannelModeIs 
UniqueOpIs 
NoTopic 
Topic 
TopicSetBy 
Inviting 
Summoning 
InviteList 
EndOfInviteList 
ExceptionList 
EndOfExceptionList 
Version 
WhoReply 
NamesReply 
Links 
EndOfLinks 
EndOfNames 
BanList 
EndOfBanList 
EndOfWhoWas 
Info 
Motd 
EndOfInfo 
MotdStart 
EndOfMotd 
YouAreOper 
Rehashing 
YouAreService 
Time 
UsersStart 
Users 
EndOfUsers 
NoUsers 
ErrorNoSuchNickname 
ErrorNoSuchServer 
ErrorNoSuchChannel 
ErrorCannotSendToChannel 
ErrorTooManyChannels 
ErrorWasNoSuchNickname 
ErrorTooManyTargets 
ErrorNoSuchService 
ErrorNoOrigin 
ErrorNoRecipient 
ErrorNoTextToSend 
ErrorNoTopLevel 
ErrorWildTopLevel 
ErrorBadMask 
ErrorUnknownCommand 
ErrorNoMotd 
ErrorNoAdminInfo 
ErrorFileError 
ErrorNoNicknameGiven 
ErrorErroneusNickname 
ErrorNicknameInUse 
ErrorNicknameCollision 
ErrorUnavailableResource 
ErrorUserNotInChannel 
ErrorNotOnChannel 
ErrorUserOnChannel 
ErrorNoLogin 
ErrorSummonDisabled 
ErrorUsersDisabled 
ErrorNotRegistered 
ErrorNeedMoreParams 
ErrorAlreadyRegistered 
ErrorNoPermissionForHost 
ErrorPasswordMismatch 
ErrorYouAreBannedCreep 
ErrorYouWillBeBanned 
ErrorKeySet 
ErrorChannelIsFull 
ErrorUnknownMode 
ErrorInviteOnlyChannel 
ErrorBannedFromChannel 
ErrorBadChannelKey 
ErrorBadChannelMask 
ErrorNoChannelModes 
ErrorBanListFull 
ErrorNoPrivileges 
ErrorChannelOpPrivilegesNeeded 
ErrorCannotKillServer 
ErrorRestricted 
ErrorUniqueOpPrivilegesNeeded 
ErrorNoOperHost 
ErrorUserModeUnknownFlag 
ErrorUsersDoNotMatch 
enum fCraft.LeaveReason : byte

List of possible reasons for players leaving the server.

Enumerator:
Unknown 

Unknown leave reason (default)

ClientQuit 

Client exited normally

ClientReconnect 

Client reconnected before old session timed out, or connected from another IP.

Kick 

Manual or miscellaneous kick

IdleKick 

Kicked for being idle/AFK.

InvalidMessageKick 

Invalid characters in a message

InvalidSetTileKick 

Attempted to place invalid blocktype

InvalidOpcodeKick 

Unknown opcode or packet

BlockSpamKick 

Triggered antigrief / block spam

MessageSpamKick 

Kicked for message spam (after warnings)

Ban 

Banned directly by name

BanIP 

Banned indirectly by /BanIP

BanAll 

Banned indirectly by /BanAll

ServerError 

Server-side error (uncaught exception in session's thread)

ServerShutdown 

Server is shutting down

ServerFull 

Server was full or became full

WorldFull 

World was full (forced join failed)

ProtocolViolation 

Login failed due to protocol violation/mismatch (e.g. SMP client)

UnverifiedName 

Login failed due to unverified player name

LoginFailed 

Login denied for some other reason

Log splitting type.

Enumerator:
OneFile 

All logs are written to one file.

SplitBySession 

A new timestamped logfile is made every time the server is started.

SplitByDay 

A new timestamped logfile is created every 24 hours.

Category of a log event.

Enumerator:
SystemActivity 

System activity (loading/saving of data, shutdown and startup events, etc).

Warning 

Warnings (missing files, config discrepancies, minor recoverable errors, etc).

Error 

Recoverable errors (loading/saving problems, connection problems, etc).

SeriousError 

Critical non-recoverable errors and crashes.

UserActivity 

Routine user activity (command results, kicks, bans, etc).

UserCommand 

Raw commands entered by the player.

SuspiciousActivity 

Permission and hack related activity (name verification failures, banned players logging in, detected hacks, etc).

GlobalChat 

Normal (white) chat written by the players.

PrivateChat 

Private messages exchanged by players.

RankChat 

Rank chat messages.

ConsoleInput 

Messages and commands entered from console.

ConsoleOutput 

Messages printed to the console (typically as the result of commands called from console).

IRCStatus 

Information related to IRC activity.

IRCChat 

IRC chatter and join/part messages.

Debug 

Information useful for debugging (error details, routine events, system information).

Trace 

Special-purpose messages related to event tracing (never logged).

Map generator template. Templates define landscape shapes and features.

Enumerator:
Archipelago 
Atoll 
Bay 
Dunes 
Flat 
Hills 
Ice 
Island 
Lake 
Mountains 
Peninsula 
Random 
River 
Streams 

Map generator themes. A theme defines what type of blocks are used to fill the map.

Enumerator:
Arctic 
Desert 
Forest 
Hell 
Swamp 

Mode of player name verification.

Enumerator:
Never 

Player names are not checked. Any connecting player can assume any identity.

Balanced 

Security balanced with usability. If normal verification fails, an additional check is done: If player has previously verified for his current IP and has connected at least twice before, he is allowed in.

Always 

Strict verification checks. If name cannot be verified, player is kicked and a failed login attempt is logged. Note that players connecting from localhost (127.0.0.1) are always allowed.

Interpolation mode for perlin noise.

Enumerator:
Linear 

Bilinear (LERP) interpolation (fastest).

Cosine 

Cosine interpolation (fast).

Bicubic 

Bicubic interpolation (slow).

Spline 

Spline interpolation (slowest).

Minecraft protocol's opcodes.

Enumerator:
Handshake 
Ping 
MapBegin 
MapChunk 
MapEnd 
SetBlockClient 
SetBlockServer 
AddEntity 
Teleport 
MoveRotate 
Move 
Rotate 
RemoveEntity 
Message 
Kick 
SetPermission 

Enumeration of permission types/categories. Every rank definition contains a combination of these.

Enumerator:
Chat 

Ability to chat and to PM players. Note that players without this permission can still type in commands, receive PMs, and read chat.

Build 

Ability to place blocks on maps. This is a baseline permission that can be overridden by world-specific and zone-specific permissions.

Delete 

Ability to delete or replace blocks on maps. This is a baseline permission that can be overridden by world-specific and zone-specific permissions.

PlaceGrass 

Ability to place grass blocks.

PlaceWater 

Ability to place water blocks.

PlaceLava 

Ability to place lava blocks.

PlaceAdmincrete 

Ability to build admincrete.

DeleteAdmincrete 

Ability to delete or replace admincrete.

ViewOthersInfo 

Ability to view extended information about other players.

ViewPlayerIPs 

Ability to see any players' IP addresses.

EditPlayerDB 

Ability to edit the player database directly. This also adds the ability to promote/demote/ban players by name, even if they have not visited the server yet. Also allows to manipulate players' records, and to promote/demote players in batches.

Say 

Ability to use /Say command.

UseTimers 

Ability to use /Timer command.

ReadStaffChat 

Ability to read /Staff chat.

UseColorCodes 

Ability to use color codes in chat messages.

UseEmotes 

Ability to use color codes in chat messages.

UseSpeedHack 

Ability to move at a faster-than-normal rate (using hacks).

Kick 

Ability to kick players from the server.

Ban 

Ability to ban/unban individual players from the server.

BanIP 

Ability to ban/unban IP addresses from the server.

BanAll 

Ability to ban/unban a player account, his IP, and all other accounts that used the IP.

Promote 

Ability to promote players to a higher rank.

Demote 

Ability to demote players to a lower rank.

Hide 

Ability to appear hidden from other players. You can still chat, build/delete blocks, use all commands, and join worlds while hidden. Hidden players are completely invisible to other players.

Draw 

Ability to use drawing tools (commands capable of affecting many blocks at once). This permission can be overridden by world-specific and zone-specific building permissions.

DrawAdvanced 

Ability to use advanced draw commands: sphere, torus, brushes.

CopyAndPaste 

Ability to copy (or cut) and paste blocks. The total number of blocks that can be copied or pasted at a time is affected by the draw limit.

UndoOthersActions 

Ability to undo actions of other players (UndoArea and UndoPlayer).

UndoAll 

Ability to undo actions of everyone at once, regardless of UndoOthersActions limit.

Teleport 

Ability to teleport to other players.

Bring 

Ability to bring/summon other players to your location, or to another player.

BringAll 

Ability to bring/summon many players at a time.

Patrol 

Ability to patrol lower-ranked players. "Patrolling" means teleporting to other players to check on them, usually while hidden.

Spectate 

Ability to use /Spectate.

Freeze 

Ability to freeze/unfreeze players. Frozen players cannot move or build/delete.

Mute 

Ability to temporarily mute players. Muted players cannot write chat messages or send PMs, but they can still type in commands, receive PMs, and read chat.

SetSpawn 

Ability to change the spawn point of a world or a player.

Lock 

Ability to lock/unlock maps. "Locking" a map puts it into a protected read-only state.

ManageZones 

Ability to manipulate zones: adding, editing, renaming, and removing zones.

ManageWorlds 

Ability to manipulate the world list: adding, renaming, and deleting worlds, loading/saving maps, changing per-world permissions, and using the map generator.

FlushWorlds 

Ability to flush pending draw commands with /WFlush.

ManageBlockDB 

Ability to enable/disable, clear, and configure BlockDB.

Import 

Ability to import rank and ban lists from files. Useful if you are switching from another server software.

ReloadConfig 

Ability to reload the configuration file without restarting.

ShutdownServer 

Ability to shut down or restart the server remotely. Useful for servers that run on dedicated machines.

Indicates what kind of per-entity override/exception is defined in a security controller.

Enumerator:
None 

No permission exception.

Allow 

Entity is explicitly allowed / whitelisted.

Deny 

Entity is explicitly denied / blacklisted.

Possible player operation exception codes.

Enumerator:
Other 

Other/unknown/unexpected error.

CannotTargetSelf 

Player cannot execute this operation on himself/herself.

NoActionNeeded 

Operation is not needed (e.g. target is already in the desired state).

ReasonRequired 

Server configuration requires a reason to be given to complete this operation.

PermissionMissing 

A permission needed to execute this operation is missing.

PermissionLimitTooLow 

All needed permissions are present, but rank limit is not high enough.

TargetIsExempt 

Target cannot be affected by this operation.

MustBeInAWorld 

Player must have a world to execute this operation.

Cancelled 

Operation was cancelled by an event callback (e.g. by a mod or a plugin).

InvalidIP 

Cannot ban IPAddress.Any or IPAddress.All.

enum fCraft.RankChangeType : byte

Describes the way player's rank was set.

Enumerator:
Default 

Default rank (never been promoted or demoted).

Promoted 

Promoted manually by another player or by console.

Demoted 

Demoted manually by another player or by console.

AutoPromoted 

Promoted automatically (e.g. by AutoRank).

AutoDemoted 

Demoted automatically (e.g. by AutoRank).

Type of message sent by the player. Determined by CommandManager.GetMessageType()

Enumerator:
Invalid 

Unparseable chat syntax (rare).

Chat 

Normal (white) chat.

Command 

Command.

Confirmation 

Confirmation (/ok) for a previous command.

PartialMessage 

Partial message (ends with " /").

PrivateChat 

Private message.

RankChat 

Rank chat.

RepeatCommand 

Repeat of the last command ("/").

A list of release flags/attributes. Use binary flag logic (value & flag == flag) or Release.IsFlagged() to test for flags.

Enumerator:
None 
APIChange 

The API was notably changed in this release.

Bugfix 

Bugs were fixed in this release.

ConfigFormatChange 

Config.xml format was changed (and version was incremented) in this release.

Dev 

This is a developer-only release, not to be used on live servers. Untested/undertested releases are often marked as such.

Feature 

A notable new feature was added in this release.

MapFormatChange 

The map format was changed in this release (rare).

PlayerDBFormatChange 

The PlayerDB format was changed in this release.

Security 

A security issue was addressed in this release.

Unstable 

There are known or likely stability issues in this release.

Optimized 

This release contains notable optimizations.

Possible results of a SecurityController permission check.

Enumerator:
Allowed 

Allowed, no permission involved.

RankTooLow 

Denied, rank too low.

WhiteListed 

Allowed, this entity was explicitly allowed / whitelisted.

BlackListed 

Denied, this entity was explicitly denied / blacklisted.

Describes the state of a connected Player's session.

Enumerator:
Offline 

There is no session associated with this player (e.g. Console).

Connecting 

Player is in the middle of the login sequence.

LoadingMain 

Player has logged in, and is loading the first world.

Online 

Player is fully connected and online.

PendingDisconnect 

Player was kicked, and is about to be disconnected.

Disconnected 

Session has ended - player disconnected.

Categorizes conditions that lead to server shutdowns.

Enumerator:
ShutdownCommand 

Server is shutting down, because someone called /Shutdown.

RestartCommand 

Server is restarting, because someone called /Restart.

FailedToInitialize 

InitLibrary or InitServer failed.

FailedToStart 

StartServer failed.

Crashed 

Server has experienced a non-recoverable crash.

ProcessClosing 

Server process is being closed (e.g. frontend closed, Ctrl+C, etc)

RestartTimer 

AutoRestart timer triggered.

RestartForUpdate 

Updater should be ran, then server should be restarted.

ShutdownForUpdate 

Updater should be ran, then server should NOT be restarted.

Updater behavior.

Enumerator:
Disabled 

Does not check for updates.

Notify 

Checks for updates and notifies of availability (in console/log).

Prompt 

Checks for updates, downloads them if available, and prompts to install. Behavior is frontend-specific: in ServerGUI, a dialog is shown with the list of changes and options to update immediately or next time. In ServerCLI, asks to type in 'y' to confirm updating or press any other key to skip. '''Note: Requires user interaction (if you restart the server remotely while unattended, it may get stuck on this dialog).'''

Auto 

Checks for updates, automatically downloads and installs the updates, and restarts the server.

List possible reasons for players joining/changing worlds.

Enumerator:
FirstWorld 

First world that the player joins upon entering the server (main).

Rejoin 

Rejoining the same world (e.g. after /wflush or /wload).

ManualJoin 

Manually by typing /join.

Tp 

Teleporting to a player on another map.

Bring 

Bring brought by a player on another map. Also used by /bringall, /wbring, and /setspawn.

SpectateTargetJoined 

Following the /spectate target to another world.

WorldRemoved 

Previous world was removed with /wunload.

PermissionChanged 

Previous world's access permissions changed, and player was forced to main.

List of common world operation issues. Used by WorldOpException.

Enumerator:
Unexpected 

Something new, exciting and dangerous happened! We don't know what it was though.

NoChangeNeeded 

No changes were needed or made (e.g. renaming a world to the same name).

InvalidWorldName 

Given world name was of invalid format.

WorldNotFound 

Given world could not be found by name.

DuplicateWorldName 

A world could not be added or renamed because the name is taken by another world.

SecurityError 

A permission issue prohibited the operation.

CannotDoThatToMainWorld 

Operation may not be done on the world designated as main.

MapNotFound 

Specified map file could not be found.

MapPathError 

Given map path was invalid or inaccessible.

MapLoadError 

Map file was found but could not be loaded.

MapSaveError 

Map file could not be saved.

MapMoveError 

Map file could not be renamed, replaced, or moved.

Cancelled 

A plugin callback cancelled the operation.

Three state enum used for parameters which can be manually enabled/disabled (yes/no), or left alone (auto). Default value is "Auto".

Enumerator:
Auto 
Yes 
No 

Function Documentation

delegate void fCraft.CommandHandler ( Player  source,
CommandReader  cmd 
)

Represents a method that acts as a handler for a command.

Parameters
sourcePlayer who called the command.
cmdCommand arguments.
delegate void fCraft.ConfirmationCallback ( Player  player,
object  tag,
bool  fromConsole 
)

Represents the method that responds to a confirmation command.

Parameters
playerPlayer who confirmed the action.
tagParameter that was passed to Player.Confirm()
fromConsoleWhether player is console.
delegate void fCraft.SchedulerCallback ( [NotNull] SchedulerTask  task)

Represents the method that is called when a SchedulerTask is executed.

Parameters
taskSchedulerTask associated with the task that was called.
delegate void fCraft.SelectionCallback ( Player  player,
Vector3I[]  marks,
object  tag 
)

Represents a callback method for a player-made selection of one or more blocks on a map. A command may request a number of marks/blocks to select, and a specify callback to be executed when the desired number of marks/blocks is reached.

Parameters
playerPlayer who made the selection.
marksAn array of 3D marks/blocks, in terms of block coordinates.
tagAn optional argument to pass to the callback, the value of player.selectionArgs