diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-06-10 14:41:05 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2013-06-10 14:41:05 +0200 |
commit | e3713be4519b038be57e3a1d444254c6b00cba56 (patch) | |
tree | b589a7be581316d7cd7e3c6b489cacf7145fd565 /MCServer/Plugins | |
parent | ProtectionAreas: Implemented reloading areas when a player moves (diff) | |
download | cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.tar cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.tar.gz cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.tar.bz2 cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.tar.lz cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.tar.xz cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.tar.zst cuberite-e3713be4519b038be57e3a1d444254c6b00cba56.zip |
Diffstat (limited to 'MCServer/Plugins')
-rw-r--r-- | MCServer/Plugins/ProtectionAreas/Config.lua | 24 | ||||
-rw-r--r-- | MCServer/Plugins/ProtectionAreas/HookHandlers.lua | 1 | ||||
-rw-r--r-- | MCServer/Plugins/ProtectionAreas/PlayerAreas.lua | 3 | ||||
-rw-r--r-- | MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua | 1 |
4 files changed, 25 insertions, 4 deletions
diff --git a/MCServer/Plugins/ProtectionAreas/Config.lua b/MCServer/Plugins/ProtectionAreas/Config.lua index c9b131f5c..b6fe34535 100644 --- a/MCServer/Plugins/ProtectionAreas/Config.lua +++ b/MCServer/Plugins/ProtectionAreas/Config.lua @@ -8,13 +8,35 @@ cConfig = {
- m_Wand = cItem(E_ITEM_STICK, 1, 1); -- TODO: Make this configurable by loading it from an INI file
+ m_Wand = cItem(E_ITEM_STICK, 1, 1); -- The item to be used as the selection wand
+ m_AllowInteractNoArea = true; -- If there's no area, is a player allowed to build / dig?
};
+--- Initializes the cConfig object, loads the configuration from an INI file
+function InitializeConfig()
+ local ini = cIniFile("ProtectionAreas.ini");
+ if (not(ini:ReadFile())) then
+ LOGINFO(PluginPrefix .. "Cannot read ProtectionAreas.ini, all plugin configuration is set to defaults");
+ end
+ local WandItem = cItem();
+ if (
+ StringToItem(ini:GetValueSet("ProtectionAreas", "WandItem", ItemToString(cConfig.m_Wand)), WandItem) and
+ IsValidItem(WandItem.m_ItemType)
+ ) then
+ cConfig.m_Wand = WandItem;
+ end
+ cConfig.m_AllowInteractNoArea = ini:GetValueSetB("ProtectionAreas", "AllowInteractNoArea", cConfig.m_AllowInteractNoArea);
+ ini:WriteFile();
+end
+
+
+
+
+
--- Returns true if a_Item is the wand tool item
function cConfig:IsWand(a_Item)
return (
diff --git a/MCServer/Plugins/ProtectionAreas/HookHandlers.lua b/MCServer/Plugins/ProtectionAreas/HookHandlers.lua index 8869775f7..db552067c 100644 --- a/MCServer/Plugins/ProtectionAreas/HookHandlers.lua +++ b/MCServer/Plugins/ProtectionAreas/HookHandlers.lua @@ -23,7 +23,6 @@ end --- Called by MCS when a player's connectino is lost - either they disconnected or timed out
function OnDisconnect(a_Player, a_Reason)
-- Remove the player's cProtectionArea object
- -- TODO: What if there are two players with the same name? need to check
g_PlayerAreas[a_Player:GetUniqueID()] = nil;
-- If the player is a VIP, they had a command state, remove that as well
diff --git a/MCServer/Plugins/ProtectionAreas/PlayerAreas.lua b/MCServer/Plugins/ProtectionAreas/PlayerAreas.lua index 4ff50d8ad..5627f4d5f 100644 --- a/MCServer/Plugins/ProtectionAreas/PlayerAreas.lua +++ b/MCServer/Plugins/ProtectionAreas/PlayerAreas.lua @@ -73,8 +73,7 @@ function cPlayerAreas:CanInteractWithBlock(a_BlockX, a_BlockZ) end
-- The coords are not inside any area
- -- TODO: Have a config saying whether a player can build in the non-areated space or not
- return true;
+ return cConfig.m_AllowInteractNoArea;
end
diff --git a/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua b/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua index 6e8881b72..8c2db1387 100644 --- a/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua +++ b/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua @@ -25,6 +25,7 @@ function Initialize(a_Plugin) a_Plugin:SetName("ProtectionAreas");
a_Plugin:SetVersion(1);
+ InitializeConfig();
if (not(InitializeStorage())) then
LOGWARNING(PluginPrefix .. "failed to initialize Storage, plugin is disabled");
return false;
|