summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/chat_weather_setter.py54
-rw-r--r--plugins/command_test.py26
-rw-r--r--plugins/over_g_damage.py7
-rw-r--r--plugins/smoke_on_damage/Plugin.py22
4 files changed, 93 insertions, 16 deletions
diff --git a/plugins/chat_weather_setter.py b/plugins/chat_weather_setter.py
index 4bcdf0b..5b31a38 100644
--- a/plugins/chat_weather_setter.py
+++ b/plugins/chat_weather_setter.py
@@ -11,9 +11,56 @@ class Plugin:
def register(self, plugin_manager):
self.plugin_manager = plugin_manager
- self.plugin_manager.register_hook('on_chat', self.on_chat)
+ #self.plugin_manager.register_hook('on_chat', self.on_chat)
self.plugin_manager.register_hook('on_environment_server', self.on_environment)
+ self.plugin_manager.register_command('fog', self.fog)
+ self.plugin_manager.register_command('sky', self.sky)
+ self.plugin_manager.register_command('time', self.time)
+ self.plugin_manager.register_command('vis', self.visibility)
+ def fog(self, full_message, player, message_to_client, message_to_server):
+ try:
+ args = list(map(int, full_message[4:].split(',')))
+ except:
+ message_to_client.append(FSNETCMD_TEXTMESSAGE.encode("Invalid fog argument, usage /fog r,g,b", True))
+ return
+ fog_colour_packet = FSNETCMD_FOGCOLOR.encode(args[0], args[1], args[2], True)
+ message_to_client.append(fog_colour_packet)
+
+ def sky(self, full_message, player, message_to_client, message_to_server):
+ try:
+ args = list(map(int, full_message[4:].split(',')))
+ except Exception as e:
+ message_to_client.append(FSNETCMD_TEXTMESSAGE.encode("Invalid sky argument, usage /sky r,g,b", True))
+ return True
+ sky_colour_packet = FSNETCMD_SKYCOLOR.encode(args[0], args[1], args[2], True)
+ message_to_client.append(sky_colour_packet)
+ return True
+
+ def time(self, full_message, player, message_to_client, message_to_server):
+ requested = full_message[6:].lower()
+ if requested == 'day' and self.initialWeather:
+ packet = FSNETCMD_ENVIRONMENT.set_time(self.initialWeather.buffer, False, True)
+ self.initialWeather = FSNETCMD_ENVIRONMENT(packet[4:])
+ message_to_client.append(packet)
+
+ elif requested == 'night' and self.initialWeather:
+ packet = FSNETCMD_ENVIRONMENT.set_time(self.initialWeather.buffer, True, True)
+ self.initialWeather = FSNETCMD_ENVIRONMENT(packet[4:])
+ message_to_client.append(packet)
+
+ else:
+ message_to_client.append(FSNETCMD_TEXTMESSAGE.encode("Invalid time argument, usage /time night or /time day", True))
+ return True
+
+ def visibility(self, full_message, player, message_to_client, message_to_server):
+ visibility = int(full_message[4:])
+ returnpacket = FSNETCMD_ENVIRONMENT.set_visibility(self.initialWeather.buffer, visibility, True)
+ self.initialWeather = FSNETCMD_ENVIRONMENT(returnpacket[4:])
+ message_to_client.append(returnpacket)
+ return True
+
+ """
def on_chat(self, data, player, messages_to_client, *args):
if ENABLED:
message = FSNETCMD_TEXTMESSAGE(data).message
@@ -44,9 +91,10 @@ class Plugin:
self.initialWeather = FSNETCMD_ENVIRONMENT(returnpacket[4:])
messages_to_client.append(returnpacket)
return False
+ """
+
def on_environment(self, data, *args):
"""Store the initial weather packet for the server."""
- if ENABLED:
- self.initialWeather = FSNETCMD_ENVIRONMENT(data)
+ self.initialWeather = FSNETCMD_ENVIRONMENT(data)
return True
diff --git a/plugins/command_test.py b/plugins/command_test.py
new file mode 100644
index 0000000..6d8e8af
--- /dev/null
+++ b/plugins/command_test.py
@@ -0,0 +1,26 @@
+"""
+This is an example test command!
+"""
+
+from lib import YSchat
+from time import sleep
+
+ENABLED = False
+
+class Plugin:
+ def __init__(self):
+ self.plugin_manager = None
+
+ def register(self, plugin_manager):
+ self.plugin_manager = plugin_manager
+ self.plugin_manager.register_command('test', self.test)
+ self.plugin_manager.register_command('timer', self.timer)
+
+ def test(self, full_message, player, message_to_client, message_to_server):
+ message_to_client.append(YSchat.message("Test command received"))
+ return True
+
+ def timer(self, full_message, player, message_to_client, message_to_server):
+ sleep(5)
+ message_to_client.append(YSchat.message("Timer ended"))
+ return True
diff --git a/plugins/over_g_damage.py b/plugins/over_g_damage.py
index aa44ca8..50c1b21 100644
--- a/plugins/over_g_damage.py
+++ b/plugins/over_g_damage.py
@@ -3,7 +3,10 @@ it exceeds the g-force limit set in the config file."""
from lib.PacketManager.packets import FSNETCMD_GETDAMAGE, FSNETCMD_TEXTMESSAGE
from config import G_LIM
import time
-ENABLED = True
+
+# CONFIG
+ENABLED = True # Enable or disable the plugin
+INTERVAL = 0.3 # Interval of second before G Limit check is enforced
class Plugin:
def __init__(self):
@@ -16,7 +19,7 @@ class Plugin:
def on_receive(self, data, player, messages_to_client, *args):
if ENABLED:
if abs(player.aircraft.last_packet.g_value)> G_LIM:
- if time.time() - player.aircraft.last_over_g_message > 1: # Only send every second.
+ if time.time() - player.aircraft.last_over_g_message > INTERVAL:
player.aircraft.last_over_g_message = time.time()
damage_packet = FSNETCMD_GETDAMAGE.encode(player.aircraft.id,
1, 1,
diff --git a/plugins/smoke_on_damage/Plugin.py b/plugins/smoke_on_damage/Plugin.py
index e6c57e2..08c184b 100644
--- a/plugins/smoke_on_damage/Plugin.py
+++ b/plugins/smoke_on_damage/Plugin.py
@@ -16,30 +16,30 @@ class Plugin:
self.plugin_manager.register_hook('on_weapon_config', self.on_weapon_config)
def on_flight_data(self, data, player,message_to_client, message_to_server):
- """After the initial incoming flight packet, check whether
+ """After the initial incoming flight packet, check whether
the health is below the threshold, if so add smoke"""
- if ENABLED and SMOKE_PLANE and player.aircraft.life<SMOKE_LIFE:
-
+ if SMOKE_PLANE and player.aircraft.life<SMOKE_LIFE:
+
#Add smoke to the plane
smoke_packet = FSNETCMD_AIRPLANESTATE(data).smoke()
#forward it on to the server
-
+
message_to_server.append(smoke_packet)
-
-
-
+
+
+
if not player.aircraft.damage_engine_warn_sent:
player.aircraft.damage_engine_warn_sent = True
#Warn the player
message = "Your engine has been damaged! You can't turn on your afterburner!"
message_to_client.append(FSNETCMD_TEXTMESSAGE.encode(message,True))
-
+
debug(f"Engine damage warning sent to {player.username}")
-
+
message_to_client.append(FSNETCMD_AIRCMD.set_afterburner(player.aircraft.id, False, True))
-
+
return False
-
+
def on_weapon_config(self, data, player, message_to_client, message_to_server):
if ENABLED:
player.aircraft.just_repaired = True