Implement server kicks and updating the server time on the page according to heartbeats

This commit is contained in:
Trever Fischer
2012-11-12 14:40:32 -05:00
parent ddd7b0028e
commit 3706219e90
8 changed files with 74 additions and 7 deletions

View File

@@ -2,7 +2,6 @@ from piston.handler import AnonymousBaseHandler, BaseHandler
import time
from django.core.cache import cache
from django.conf import settings
from django.core.cache import cache
import appversion
from minecraft.models import MinecraftProfile
from local.models import Quote
@@ -13,7 +12,7 @@ from urllib2 import urlopen
import json
from datetime import datetime
from models import cachePlayerList
from events import server_queue, web_queue, chat, server_broadcast, send_web_event, QuitEvent, JoinEvent, PlayerDeathEvent
from events import server_queue, web_queue, chat, server_broadcast, send_web_event, QuitEvent, JoinEvent, PlayerDeathEvent, ServerHeartbeatEvent
from bounty.models import Bounty
from vault.models import VaultSlot
@@ -116,6 +115,9 @@ class ServerEventHandler(BaseHandler):
if evt['type'] == 'player-death':
send_web_event(PlayerDeathEvent(evt['payload']['player'],
evt['payload']['message']))
if evt['type'] == 'heartbeat':
cache.set('caminus-server-heartbeat-%s'%(request.server.id), evt['payload'], 86400)
send_web_event(ServerHeartbeatEvent(request.server, evt['payload']))
if evt['type'] == 'player-murder':
bounties = Bounty.objects.filter(target__mc_username=evt['payload']['player'])
killer = MinecraftProfile.objects.get(mc_username=evt['payload']['killer'])