Skip to content

Commit 870264a

Browse files
committed
more cleanup
1 parent 1e4c420 commit 870264a

308 files changed

Lines changed: 4631 additions & 200872 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Haï~
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Basis/Packages/com.basis.sdk/Basis TMP.meta renamed to Basis/Packages/HVRBasisNDMF/LICENSE.meta

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) naelstrof
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Basis/Packages/com.basis.sdk/Basis TMP/Examples & Extras.meta renamed to Basis/Packages/UnityJigglePhysics-upm/LICENSE.meta

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Basis/Packages/com.basis.framework/BasisUI/Menus/Main Menu Providers/SettingsProviderParts/SettingsProviderAdminTab.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,34 @@ public static PanelTabPage AdminTab(PanelTabGroup tabGroup)
304304
BasisNetworkModeration.DisableShoutMode(target.playerId);
305305
});
306306

307+
// --- Global lock group ---
308+
PanelElementDescriptor lockGroup =
309+
PanelElementDescriptor.CreateNew(PanelElementDescriptor.ElementStyles.Group, container);
310+
lockGroup.SetTitle("Global Content Locks");
311+
lockGroup.SetDescription("Globally disable loading for all non-admin players. Everyone is notified.");
312+
313+
PanelToggle avatarLock = PanelToggle.CreateNewEntry(lockGroup.ContentParent);
314+
avatarLock.Descriptor.SetTitle("Lock Avatars");
315+
avatarLock.Descriptor.SetDescription("Prevents all non-admin avatar loading over the network.");
316+
avatarLock.SetValueWithoutNotify(BasisNetworkModeration.GlobalAvatarsLocked);
317+
avatarLock.OnValueChanged += _ => BasisNetworkModeration.GlobalToggleAvatars();
318+
319+
PanelToggle propLock = PanelToggle.CreateNewEntry(lockGroup.ContentParent);
320+
propLock.Descriptor.SetTitle("Lock Props");
321+
propLock.Descriptor.SetDescription("Prevents all non-admin prop loading over the network.");
322+
propLock.SetValueWithoutNotify(BasisNetworkModeration.GlobalPropsLocked);
323+
propLock.OnValueChanged += _ => BasisNetworkModeration.GlobalToggleProps();
324+
325+
PanelToggle worldLock = PanelToggle.CreateNewEntry(lockGroup.ContentParent);
326+
worldLock.Descriptor.SetTitle("Lock Worlds");
327+
worldLock.Descriptor.SetDescription("Prevents all non-admin world loading over the network.");
328+
worldLock.SetValueWithoutNotify(BasisNetworkModeration.GlobalWorldsLocked);
329+
worldLock.OnValueChanged += _ => BasisNetworkModeration.GlobalToggleWorlds();
330+
331+
controller.AvatarLockToggle = avatarLock;
332+
controller.PropLockToggle = propLock;
333+
controller.WorldLockToggle = worldLock;
334+
307335
// Permissions section
308336
SettingsProviderPermissionsTab.BuildPermissionsUI(container, tab.gameObject);
309337

@@ -363,6 +391,10 @@ private sealed class AdminTabController : MonoBehaviour
363391
public PanelTextField ReasonField;
364392
public PanelTextField SearchField;
365393

394+
public PanelToggle AvatarLockToggle;
395+
public PanelToggle PropLockToggle;
396+
public PanelToggle WorldLockToggle;
397+
366398
public BasisNetworkPlayer SelectedPlayer;
367399
private string _searchQuery = string.Empty;
368400

@@ -379,17 +411,26 @@ private void OnEnable()
379411
{
380412
BasisNetworkPlayer.OnRemotePlayerJoined += OnRemotePlayersChanged;
381413
BasisNetworkPlayer.OnRemotePlayerLeft += OnRemotePlayersChanged;
414+
BasisNetworkModeration.OnGlobalLockStateChanged += OnGlobalLockStateChanged;
382415
RebuildPlayerList();
383416
}
384417

385418
private void OnDestroy()
386419
{
387420
BasisNetworkPlayer.OnRemotePlayerJoined -= OnRemotePlayersChanged;
388421
BasisNetworkPlayer.OnRemotePlayerLeft -= OnRemotePlayersChanged;
422+
BasisNetworkModeration.OnGlobalLockStateChanged -= OnGlobalLockStateChanged;
389423

390424
ClearPlayerButtons();
391425
}
392426

427+
private void OnGlobalLockStateChanged(bool avatars, bool props, bool worlds)
428+
{
429+
if (AvatarLockToggle != null) AvatarLockToggle.SetValueWithoutNotify(avatars);
430+
if (PropLockToggle != null) PropLockToggle.SetValueWithoutNotify(props);
431+
if (WorldLockToggle != null) WorldLockToggle.SetValueWithoutNotify(worlds);
432+
}
433+
393434
private void OnRemotePlayersChanged(BasisNetworkPlayer _p1, BasisRemotePlayer _p2)
394435
{
395436
RebuildPlayerList();

Basis/Packages/com.basis.framework/Networking/BasisNetworkModeration.cs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ public static void AdminMessage(NetDataReader reader)
183183
HandleShoutModeChanged(reader, mode == AdminRequestMode.EnableShoutMode);
184184
break;
185185

186+
case AdminRequestMode.GlobalGetLockState:
187+
HandleGlobalLockState(reader);
188+
break;
189+
186190
default:
187191
BasisDebug.LogError($"Unhandled admin command: {mode}", BasisDebug.LogTag.Networking);
188192
break;
@@ -427,6 +431,56 @@ public static void SetGroupParent(string groupName, string parentName, bool add)
427431
}
428432

429433
#endregion
434+
435+
#region Global Lock State
436+
437+
/// <summary>
438+
/// Current global lock state received from the server.
439+
/// </summary>
440+
public static bool GlobalAvatarsLocked { get; private set; }
441+
public static bool GlobalPropsLocked { get; private set; }
442+
public static bool GlobalWorldsLocked { get; private set; }
443+
444+
/// <summary>
445+
/// Fired when the global lock state changes. Parameters: avatarsLocked, propsLocked, worldsLocked.
446+
/// </summary>
447+
public static event Action<bool, bool, bool> OnGlobalLockStateChanged;
448+
449+
private static void HandleGlobalLockState(NetDataReader reader)
450+
{
451+
GlobalAvatarsLocked = reader.GetBool();
452+
GlobalPropsLocked = reader.GetBool();
453+
GlobalWorldsLocked = reader.GetBool();
454+
BasisDebug.Log($"Global lock state updated - Avatars: {GlobalAvatarsLocked}, Props: {GlobalPropsLocked}, Worlds: {GlobalWorldsLocked}", BasisDebug.LogTag.Networking);
455+
OnGlobalLockStateChanged?.Invoke(GlobalAvatarsLocked, GlobalPropsLocked, GlobalWorldsLocked);
456+
}
457+
458+
/// <summary>
459+
/// Admin: Toggle global avatar loading.
460+
/// </summary>
461+
public static void GlobalToggleAvatars()
462+
{
463+
SendAdminRequest(AdminRequestMode.GlobalToggleAvatars);
464+
}
465+
466+
/// <summary>
467+
/// Admin: Toggle global prop loading.
468+
/// </summary>
469+
public static void GlobalToggleProps()
470+
{
471+
SendAdminRequest(AdminRequestMode.GlobalToggleProps);
472+
}
473+
474+
/// <summary>
475+
/// Admin: Toggle global world loading.
476+
/// </summary>
477+
public static void GlobalToggleWorlds()
478+
{
479+
SendAdminRequest(AdminRequestMode.GlobalToggleWorlds);
480+
}
481+
482+
#endregion
483+
430484
public static bool TryTeleportToPlayer(ushort netId)
431485
{
432486
if (BasisNetworkPlayers.Players.TryGetValue(netId, out var player) && ValidateForAnimator(player))

Basis/Packages/com.basis.sdk/Basis TMP/Examples & Extras/Fonts/Anton OFL.txt

Lines changed: 0 additions & 93 deletions
This file was deleted.

Basis/Packages/com.basis.sdk/Basis TMP/Examples & Extras/Fonts/Anton OFL.txt.meta

Lines changed: 0 additions & 8 deletions
This file was deleted.
Binary file not shown.

Basis/Packages/com.basis.sdk/Basis TMP/Examples & Extras/Fonts/Anton.ttf.meta

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)