public static void Initialize() { NetworkingAPI.RegisterMessageType <NetMessages.SoundMessage>(); NetworkingAPI.RegisterMessageType <NetMessages.SpawnStanMinonMessage>(); NetworkingAPI.RegisterMessageType <NetMessages.HealFractionMessage>(); NetworkingAPI.RegisterMessageType <NetMessages.TimedBuffMessage>(); }
internal static void Init() { state = ZetArtifactsPlugin.DropifactEnable.Value; if (state < 1) { return; } ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETDROPIFACT_NAME", "Artifact of Tossing"); ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETDROPIFACT_DESC", "Allows players to drop and scrap items.\n\n<style=cStack>LeftAlt + RMB to scrap</style>"); NetworkingAPI.RegisterMessageType <ZetDropReply>(); NetworkingAPI.RegisterMessageType <ZetDropRequest>(); ItemCatalog.availability.CallWhenAvailable(FindIndexes); ItemIconHook(); EquipmentIconHook(); MarkedDropletBypassHook(); PreventVoidBearBuffBug(); appliedVoidBearFix = true; SceneDirector.onGenerateInteractableCardSelection += RemoveScrapperCard; }
private static void SendCommand(Header header, NetworkConnection conn) { using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.CommandIndex, conn, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); } }
/// <summary> /// Send the passed command over the network /// </summary> /// <param name="command">Registered command</param> /// <param name="destination">Destination of the command</param> public static void Send(this INetCommand?command, NetworkDestination destination) { if (destination.ShouldRun()) { command.OnReceived(); } if (destination.ShouldSend()) { var header = destination.GetHeader(NetworkingAPI.GetNetworkHash(command.GetType())); if (NetworkServer.active) { for (int i = 0; i < NetworkServer.connections.Count; ++i) { NetworkConnection conn = NetworkServer.connections[i]; if (conn == null) { continue; } if (NetworkServer.localClientActive && NetworkServer.localConnections.Contains(conn)) { continue; } SendCommand(header, conn); } } else if (NetworkClient.active) { SendCommand(header, ClientScene.readyConnection); } } }
public override void OnPluginAwake() { zonePrefab = MysticsRisky2Utils.Utils.CreateBlankPrefab("MysticsItems_TreasureMapZone", true); NetworkingAPI.RegisterMessageType <MysticsItemsTreasureMapZone.SyncZoneShouldBeActive>(); NetworkingAPI.RegisterMessageType <MysticsItemsTreasureMapZone.RequestZoneShouldBeActive>(); }
/// <summary> /// <inheritdoc cref="Send{TRequest, TReply}(TRequest, NetworkDestination)"/> /// to a specific NetworkConnection, only callable from server. /// You can retrieve a <see cref="NetworkConnection"/> from <see cref="NetworkServer.connections"/> or /// from a <see cref="NetworkBehaviour.connectionToClient"/> field. /// </summary> /// <param name="request">Registered request</param> /// <param name="target">NetworkConnection the request will be sent to.</param> /// <exception cref="ArgumentNullException">Thrown when target is null</exception> /// <exception cref="InvalidOperationException">Thrown if not called from server</exception> public static void Send <TRequest, TReply>(this TRequest request, NetworkConnection target) where TRequest : INetRequest <TRequest, TReply> where TReply : INetRequestReply <TRequest, TReply> { if (target == null) { throw new ArgumentNullException(nameof(target)); } if (!NetworkServer.active) { throw new InvalidOperationException("NetworkServer is not active."); } if (NetworkClient.active) { foreach (var networkClient in NetworkClient.allClients) { if (networkClient.connection != null && networkClient.connection.connectionId == target.connectionId) { request.OnRequestReceived().OnReplyReceived(); return; } } } var header = NetworkDestination.Clients.GetHeader(NetworkingAPI.GetNetworkHash(request.GetType())); SendRequest <TRequest, TReply>(request, header, target); }
/// <summary> /// <inheritdoc cref="Send(INetCommand?, NetworkDestination)"/> /// to a specific NetworkConnection, only callable from server. /// You can retrieve a <see cref="NetworkConnection"/> from <see cref="NetworkServer.connections"/> or /// from a <see cref="NetworkBehaviour.connectionToClient"/> field. /// </summary> /// <param name="command">Registered command</param> /// <param name="target">NetworkConnection the command will be sent to.</param> /// <exception cref="ArgumentNullException">Thrown when target is null</exception> /// <exception cref="InvalidOperationException">Thrown if not called from server</exception> public static void Send(this INetCommand?command, NetworkConnection target) { if (target == null) { throw new ArgumentNullException(nameof(target)); } if (!NetworkServer.active) { throw new InvalidOperationException("NetworkServer is not active."); } if (NetworkClient.active) { foreach (var networkClient in NetworkClient.allClients) { if (networkClient.connection != null && networkClient.connection.connectionId == target.connectionId) { command.OnReceived(); return; } } } var header = NetworkDestination.Clients.GetHeader(NetworkingAPI.GetNetworkHash(command.GetType())); SendCommand(header, target); }
public override void OnPluginAwake() { controllerPrefab = PrefabAPI.InstantiateClone(new GameObject(), "DasherDiscController", false); controllerPrefab.AddComponent <NetworkIdentity>().localPlayerAuthority = false; PrefabAPI.RegisterNetworkPrefab(controllerPrefab); NetworkingAPI.RegisterMessageType <DiscBaseState.Ready.SyncFireTrigger>(); }
private static void SendMessage(INetMessage?message, Header header, NetworkConnection conn) { using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.MessageIndex, conn, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); writer.Write(message); } }
public override void OnPluginAwake() { enemyFollowerPrefab = MysticsRisky2Utils.Utils.CreateBlankPrefab("MysticsItems_SpotterController", true); enemyFollowerPrefab.AddComponent <CharacterNetworkTransform>(); unlockInteractablePrefab = MysticsRisky2Utils.Utils.CreateBlankPrefab("MysticsItems_SpotterUnlockInteractable", true); NetworkingAPI.RegisterMessageType <MysticsItemsSpotterController.SyncClearTarget>(); NetworkingAPI.RegisterMessageType <MysticsItemsSpotterController.SyncSetTarget>(); }
private static void SendRequest <TRequest, TReply>(TRequest request, Header header, NetworkConnection conn) where TRequest : INetRequest <TRequest, TReply> where TReply : INetRequestReply <TRequest, TReply> { using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.RequestIndex, conn, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); writer.Write(request); } }
public static void Initialize() { NetworkingAPI.RegisterMessageType <Core.NetMessages.TimedBuff>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.RemoveTimedBuff>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.BodyFlags>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.RemoveBodyFlags>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.Sound>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.Animation>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.UrsaResize>(); NetworkingAPI.RegisterMessageType <Core.NetMessages.UrsaHandsGlow>(); }
// Text displays larger for the client in the middle of the screen (https://youtu.be/vQRPpSx5WLA?t=1336) // 3 second delay after the corpse is on the ground before showing either client or server message // public void Start() { SetupConfig(); ReadConfig(); On.RoR2.CharacterBody.OnDeathStart += CharacterBody_OnDeathStart; //On.RoR2.ModelLocator.OnDestroy += ModelLocator_OnDestroy; NetworkingAPI.RegisterMessageType <Networking.DeathQuoteMessageToServer>(); NetworkingAPI.RegisterMessageType <Networking.DeathQuoteMessageToClients>(); defaultTextObject = CreateDefaultTextObject(); defaultTrackerObject = CreateTrackerObject(); }
public void Awake() { Logger = base.Logger; MoreArtifactsConfig.Init(Config); NetworkingAPI.RegisterMessageType <CombineMessage>(); congregateArtifact = new CongregateArtifact(); wholeArtifact = new ConglomerateArtifact(); confusionArtifact = new ConfusionArtifact(); }
public void Awake() { NetworkingAPI.RegisterMessageType <Networking.RadiusCommandToServer>(); ModifierKey = Config.Bind("", "Modifier Key", KeyCode.LeftShift, "Hold this button to affect all command essence in your desired radius."); Radius = Config.Bind("", "Radius", 5f, "Desired starting radius."); AllowScroll = Config.Bind("", "Allow Scrollwheel", true, "If true, then you can modify the radius of the region with the scrollwheel."); //On.RoR2.PickupPickerController.SubmitChoice += PickupPickerController_SubmitChoice; CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal; On.RoR2.PickupPickerController.SubmitChoice += PickupPickerController_SubmitChoice1; }
public override void OnPluginAwake() { riftChest = PrefabAPI.InstantiateClone(Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Rift Lens/UnstableRift.prefab"), "MysticsItems_UnstableRift", false); riftChest.AddComponent <NetworkIdentity>(); PrefabAPI.RegisterNetworkPrefab(riftChest); riftPositionIndicator = PrefabAPI.InstantiateClone(Main.AssetBundle.LoadAsset <GameObject>("Assets/Items/Rift Lens/UnstableRiftPositionIndicator.prefab"), "MysticsItems_UnstableRiftPositionIndicator", false); OnRiftLensCostTypeRegister += (costTypeIndex) => { riftChest.GetComponent <PurchaseInteraction>().costType = costTypeIndex; riftChest.GetComponent <PurchaseInteraction>().cost = 1; }; //add a custom purchase cost type - we will require the interactor pay with the debuff so that players //without the debuff can't help them open chests faster CostTypeDef costTypeDef = new CostTypeDef(); costTypeDef.costStringFormatToken = "COST_MYSTICSITEMS_RIFTLENSDEBUFF_FORMAT"; costTypeDef.isAffordable = delegate(CostTypeDef costTypeDef2, CostTypeDef.IsAffordableContext context) { CharacterBody body = context.activator.gameObject.GetComponent <CharacterBody>(); if (body) { Inventory inventory = body.inventory; return(inventory ? inventory.GetItemCount(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff) > 0 : false); } return(false); }; costTypeDef.payCost = delegate(CostTypeDef costTypeDef2, CostTypeDef.PayCostContext context) { CharacterBody body = context.activator.gameObject.GetComponent <CharacterBody>(); if (body) { Inventory inventory = body.inventory; if (inventory.GetItemCount(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff) > 0) { inventory.RemoveItem(MysticsItemsContent.Items.MysticsItems_RiftLensDebuff); } } }; costTypeDef.colorIndex = ColorCatalog.ColorIndex.LunarItem; CostTypeCreation.CreateCostType(new CostTypeCreation.CustomCostTypeInfo { costTypeDef = costTypeDef, onRegister = OnRiftLensCostTypeRegister }); NetworkingAPI.RegisterMessageType <MysticsItemsRiftChest.SyncDestroyThingsOnOpen>(); NetworkingAPI.RegisterMessageType <MysticsItemsRiftLensBehaviour.SyncCountdown>(); }
public void Awake() { Logger = base.Logger; On.RoR2.Networking.GameNetworkManager.OnClientConnect += (self, user, t) => { }; // Lets me connect to myself with a second instance of the game. Stops usernames from working properly. // On.RoR2.RoR2Application.UnitySystemConsoleRedirector.Redirect += orig => { }; // Stop in-game console from redirecting from base cmd console. On.RoR2.Console.Awake += (orig, self) => { CommandHelper.RegisterCommands(self); orig(self); }; // NetworkingAPI testing NetworkingAPI.RegisterMessageType <ExampleMessage>(); }
public override void SetupBehavior() { base.SetupBehavior(); lunarChimeraSpawnCard = Resources.Load <SpawnCard>("SpawnCards/CharacterSpawnCards/cscLunarGolem"); lunarChimeraSpawnCard = Object.Instantiate(lunarChimeraSpawnCard); lunarChimeraMasterPrefab = lunarChimeraSpawnCard.prefab; lunarChimeraMasterPrefab = lunarChimeraMasterPrefab.InstantiateClone($"{lunarChimeraMasterPrefab.name}{nameSuffix}"); CharacterMaster masterPrefab = lunarChimeraMasterPrefab.GetComponent <CharacterMaster>(); lunarChimeraBodyPrefab = masterPrefab.bodyPrefab; lunarChimeraBodyPrefab = lunarChimeraBodyPrefab.InstantiateClone($"{lunarChimeraBodyPrefab.name}{nameSuffix}"); masterPrefab.bodyPrefab = lunarChimeraBodyPrefab; lunarChimeraSpawnCard.prefab = lunarChimeraMasterPrefab; MasterCatalog.getAdditionalEntries += list => list.Add(lunarChimeraMasterPrefab); BodyCatalog.getAdditionalEntries += list => list.Add(lunarChimeraBodyPrefab); NetworkingAPI.RegisterMessageType <AssignOwner>(); }
public static void Send <TRequest, TReply>(this TRequest request, NetworkDestination destination) where TRequest : INetRequest <TRequest, TReply> where TReply : INetRequestReply <TRequest, TReply> { if (destination.ShouldRun()) { request.OnRequestReceived().OnReplyReceived(); } if (destination.ShouldSend()) { var header = destination.GetHeader(NetworkingAPI.GetNetworkHash(request.GetType())); if (NetworkServer.active) { for (var i = 0; i < NetworkServer.connections.Count; ++i) { NetworkConnection conn = NetworkServer.connections[i]; if (conn == null) { continue; } if (NetworkServer.localClientActive && NetworkServer.localConnections.Contains(conn)) { continue; } using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.RequestIndex, conn, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); writer.Write(request); } } } else if (NetworkClient.active) { using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.RequestIndex, ClientScene.readyConnection, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); writer.Write(request); } } } }
public static void Send(this INetMessage?message, NetworkDestination destination) { if (destination.ShouldRun()) { message.OnReceived(); } if (destination.ShouldSend()) { var header = destination.GetHeader(NetworkingAPI.GetNetworkHash(message.GetType())); if (NetworkServer.active) { for (int i = 0; i < NetworkServer.connections.Count; ++i) { NetworkConnection conn = NetworkServer.connections[i]; if (conn == null) { continue; } if (NetworkServer.localClientActive && NetworkServer.localConnections.Contains(conn)) { continue; } using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.MessageIndex, conn, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); writer.Write(message); } } } else if (NetworkClient.active) { using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.MessageIndex, ClientScene.readyConnection, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); writer.Write(message); } } } }
public void Awake() { //UnityEngine.SceneManagement.SceneManager.sceneLoaded += SceneManager_sceneLoaded; On.RoR2.UI.ChatBox.Start += ChatBox_Start; On.RoR2.UI.ChatBox.FocusInputField += ChatBox_FocusInputField; On.RoR2.UI.ChatBox.UnfocusInputField += ChatBox_UnfocusInputField; NetworkingAPI.RegisterMessageType <Networking.TypingTextMessage>(); NetworkingAPI.RegisterMessageType <Networking.UnfocusedTextMessage>(); typingText = CreateTextPrefab( "TYPING...", "TypingText", "", 2f); unfocusedText = CreateTextPrefab( "TABBED OUT", "UnfocusedText", "", 2f );; }
public CRCore3() { NetworkingAPI.RegisterMessageType <CRMissionNetworkMessage>(); NetworkingAPI.RegisterMessageType <CRTeleportNetworkMessage>(); itemCountOverrides.Add("ArmorPlate", 1); itemCountOverrides.Add("ArmorReductionOnHit", 3); itemCountOverrides.Add("Bear", 1); itemCountOverrides.Add("Behemoth", 2); itemCountOverrides.Add("Clover", 2); itemCountOverrides.Add("FireRing", 1); itemCountOverrides.Add("FlatHealth", 10); itemCountOverrides.Add("HealOnCrit", 10); itemCountOverrides.Add("Icicle", 3); itemCountOverrides.Add("Knurl", 5); itemCountOverrides.Add("Medkit", 2); itemCountOverrides.Add("Plant", 10); itemCountOverrides.Add("SecondarySkillMagazine", 10); itemCountOverrides.Add("Seed", 20); itemCountOverrides.Add("SlowOnHit", 1); itemCountOverrides.Add("UtilitySkillMagazine", 2); itemCountOverrides.Add("BleedOnHit", 5); }
/// <summary> /// Send the passed request over the network /// </summary> /// <param name="request">Registered request</param> /// <param name="destination">Destination of the request</param> public static void Send <TRequest, TReply>(this TRequest request, NetworkDestination destination) where TRequest : INetRequest <TRequest, TReply> where TReply : INetRequestReply <TRequest, TReply> { if (destination.ShouldRun()) { request.OnRequestReceived().OnReplyReceived(); } if (destination.ShouldSend()) { var header = destination.GetHeader(NetworkingAPI.GetNetworkHash(request.GetType())); if (NetworkServer.active) { for (var i = 0; i < NetworkServer.connections.Count; ++i) { NetworkConnection conn = NetworkServer.connections[i]; if (conn == null) { continue; } if (NetworkServer.localClientActive && NetworkServer.localConnections.Contains(conn)) { continue; } SendRequest <TRequest, TReply>(request, header, conn); } } else if (NetworkClient.active) { SendRequest <TRequest, TReply>(request, header, ClientScene.readyConnection); } } }
public static void Send(this INetCommand command, NetworkDestination destination) { if (destination.ShouldRun()) { command.OnReceived(); } if (destination.ShouldSend()) { var header = destination.GetHeader(NetworkingAPI.GetNetworkHash(command.GetType())); if (NetworkServer.active) { for (int i = 0; i < NetworkServer.connections.Count; ++i) { NetworkConnection conn = NetworkServer.connections[i]; if (conn == null) { continue; } using (Writer netWriter = NetworkingAPI.GetWriter(NetworkingAPI.CommandIndex, conn, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); } } } if (NetworkClient.active) { using (var netWriter = NetworkingAPI.GetWriter(NetworkingAPI.CommandIndex, ClientScene.readyConnection, QosType.Reliable)) { NetworkWriter writer = netWriter; writer.Write(header); } } } }
public void Awake() { Logger = base.Logger; NetworkingAPI.RegisterMessageType <DropItemMessage>(); IL.RoR2.UI.ItemInventoryDisplay.AllocateIcons += OnItemIconAddedHook; IL.RoR2.UI.ScoreboardStrip.SetMaster += OnEquipmentIconAddedHook; RootObject = new GameObject("DropItemsMod"); DontDestroyOnLoad(RootObject); DropItemHandler = RootObject.AddComponent <DropItemHandler>(); CommandHelper.AddToConsoleWhenReady(); OnItemIconAdded += (itemIcon) => { if (itemIcon.GetComponent <DropItemHandler>() != null) { return; } Func <CharacterMaster> getCharacterMaster = () => itemIcon.rectTransform.parent.GetComponent <ItemInventoryDisplay>().GetFieldValue <Inventory>("inventory").GetComponent <CharacterMaster>(); var dropItemHandler = itemIcon.transform.gameObject.AddComponent <DropItemHandler>(); dropItemHandler.SetData(getCharacterMaster, () => PickupCatalog.FindPickupIndex(itemIcon.GetFieldValue <ItemIndex>("itemIndex"))); }; OnEquipmentIconAdded += (equipmentIcon) => { if (equipmentIcon.GetComponent <DropItemHandler>() != null) { return; } var dropItemHandler = equipmentIcon.transform.gameObject.AddComponent <DropItemHandler>(); dropItemHandler.SetData(() => equipmentIcon.targetInventory.GetComponent <CharacterMaster>(), () => PickupCatalog.FindPickupIndex(equipmentIcon.targetInventory.GetEquipmentIndex())); }; }
public override void OnPluginAwake() { base.OnPluginAwake(); NetworkingAPI.RegisterMessageType <MysticsItemsDeathCeremonyMark.SyncMarked>(); }
public override void OnPluginAwake() { NetworkingAPI.RegisterMessageType <MysticsItemsManuscript.SyncAddBuff>(); NetworkingAPI.RegisterMessageType <MysticsItemsManuscript.SyncRemoveBuff>(); }
public static void Init() { NetworkingAPI.RegisterMessageType <SyncAnimationToServer>(); NetworkingAPI.RegisterMessageType <SyncAnimationToClients>(); }
public void Start() { NetworkingAPI.RegisterMessageType <ItemPickerInfoMessage>(); NetworkingAPI.RegisterMessageType <ItemPickerItemsPickedMessage>(); Logger.LogDebug($"Registered NetMessage Types: {nameof(ItemPickerInfoMessage)}, {nameof(ItemPickerItemsPickedMessage)}"); }
internal static void Init() { NetworkingAPI.RegisterMessageType <SyncDiscoverPickup>(); }