Prevent 1.8 clients from joining?
#11
(10-06-2014, 04:07 AM)STR_Warrior Wrote: https://forum.cuberite.org/showthread.ph...5#pid11875 ?

Okay this is better then a plugin that disables use of items.
Reply
Thanks given by:
#12
(10-06-2014, 04:07 AM)STR_Warrior Wrote: https://forum.cuberite.org/showthread.ph...5#pid11875 ?
I've tried this plugin, but I don't know how to allow only 1.7 clients to join. It does prevent older clients than 1.7 from joining, but not 1.8 clients.
Reply
Thanks given by:
#13
If you set AllowedProtocols to "4,5" it should only allow 1.7 clients.
Reply
Thanks given by:
#14
(10-06-2014, 04:59 AM)STR_Warrior Wrote: If you set AllowedProtocols to "4,5" it should only allow 1.7 clients.
Thanks for your help! Sadly that doesn't work.
Reply
Thanks given by:
#15
That's weird. It should work with every protocol, since I coded it so that it's dynamic. Do you get an error?
Reply
Thanks given by:
#16
(10-06-2014, 05:15 AM)STR_Warrior Wrote: That's weird. It should work with every protocol, since I coded it so that it's dynamic. Do you get an error?
No, I don't get any errors. I can join with both 1.7 and 1.8 clients.
Reply
Thanks given by:
#17
And 1.6? Did it even load correctly? Do you see "Initialized ProtLimit" in the console?
Reply
Thanks given by:
#18
(10-06-2014, 05:34 AM)STR_Warrior Wrote: And 1.6? Did it even load correctly? Do you see "Initialized ProtLimit" in the console?
1.6 gives an "Unsupported protocol version" message, and the "Join server" button is grayed out. ProtLimit is running.
Reply
Thanks given by:
#19
<1.7 support in the server was removed recently.
Reply
Thanks given by: NiLSPACE
#20
Oh right. I forgot that Wink Thanks.

So then does anyone see a problem here (Exept the style problems):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
PLUGIN = nil
 
AllowedProtocols = {}
KickMessage = ""
 
function Initialize(Plugin)
    PLUGIN = Plugin
    Plugin:SetName("ProtLimit")
    Plugin:SetVersion(1)
     
    cPluginManager.AddHook(cPluginManager.HOOK_LOGIN, OnLogin)
     
    if not LoadSettings() then
        LOGERROR("ProtLimit: Could not load " .. PLUGIN:GetLocalFolder() .. "/Config.ini")
        return false
    end
     
    LOG("Initialized ProtLimit")
    return true
end
 
 
 
 
function OnLogin(Client, ProtocolVersion, UserName)
    for Idx, Prot in ipairs(AllowedProtocols) do
        if Prot == ProtocolVersion then
            return false
        end
    end
     
    cRoot:Get():GetDefaultWorld():ScheduleTask(1, function()
        cRoot:Get():FindAndDoWithPlayer(UserName, function(Player)
            if Player:GetName() ~= UserName then
                return false
            end
            Player:GetClientHandle():Kick(KickMessage)
        end)
    end)
    return false
end
 
 
 
 
function LoadSettings()
    local SettingsIni = cIniFile()
    SettingsIni:ReadFile(PLUGIN:GetLocalFolder() .. "/Config.ini")
    local AllowedProtString = SettingsIni:GetValueSet("General", "AllowedProtocols", 4)
    local RawAllowedProtocols = StringSplitAndTrim(AllowedProtString, ",")
    for Idx, Value in ipairs(RawAllowedProtocols) do
        if tonumber(Value) ~= nil then
            table.insert(AllowedProtocols, tonumber(Value))
        else
            LOGERROR("Protocol version \"" .. Value .. "\" isn't valid. Ignoring")
        end
    end
     
    KickMessage = SettingsIni:GetValueSet("General", "KickMessage", "You do not have the right client version.")
    SettingsIni:WriteFile(PLUGIN:GetLocalFolder() .. "/Config.ini")
    return true
end
 
     
    
Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)