Update copyright year

This commit is contained in:
Natsumi
2025-01-31 16:38:25 +13:00
parent a7c400f9b7
commit 481e5439c3
33 changed files with 266 additions and 265 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+4 -3
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
@@ -28,7 +28,7 @@ namespace VRCX
public string GetAssetId(string id, string variant = "") public string GetAssetId(string id, string variant = "")
{ {
using(var sha256 = SHA256.Create()) using (var sha256 = SHA256.Create())
{ {
byte[] hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(id + variant)); byte[] hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(id + variant));
StringBuilder idHex = new StringBuilder(hash.Length * 2); StringBuilder idHex = new StringBuilder(hash.Length * 2);
@@ -62,7 +62,8 @@ namespace VRCX
if (hexString.Length != 32) if (hexString.Length != 32)
return (0, 0); // it's cooked return (0, 0); // it's cooked
try { try
{
var variantVersionHexString = hexString.Substring(0, 8); // 0..8 var variantVersionHexString = hexString.Substring(0, 8); // 0..8
var versionHexString = hexString.Substring(24, 8); // 24..32 var versionHexString = hexString.Substring(24, 8); // 24..32
var versionBytes = new byte[4]; var versionBytes = new byte[4];
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019 pypy. All rights reserved. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>. // For a copy, see <https://opensource.org/licenses/MIT>.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019 pypy. All rights reserved. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>. // For a copy, see <https://opensource.org/licenses/MIT>.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+75 -75
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
@@ -438,82 +438,82 @@ namespace VRCX
case ETrackedDeviceClass.Controller: case ETrackedDeviceClass.Controller:
case ETrackedDeviceClass.GenericTracker: case ETrackedDeviceClass.GenericTracker:
case ETrackedDeviceClass.TrackingReference: case ETrackedDeviceClass.TrackingReference:
{
var err = ETrackedPropertyError.TrackedProp_Success;
var batteryPercentage = system.GetFloatTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceBatteryPercentage_Float, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{ {
batteryPercentage = 1f; var err = ETrackedPropertyError.TrackedProp_Success;
} var batteryPercentage = system.GetFloatTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceBatteryPercentage_Float, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
err = ETrackedPropertyError.TrackedProp_Success;
var isCharging = system.GetBoolTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceIsCharging_Bool, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{
isCharging = false;
}
sb.Clear();
system.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_TrackingSystemName_String, sb, (uint)sb.Capacity, ref err);
var isOculus = sb.ToString().IndexOf("oculus", StringComparison.OrdinalIgnoreCase) >= 0;
// Oculus : B/Y, Bit 1, Mask 2
// Oculus : A/X, Bit 7, Mask 128
// Vive : Menu, Bit 1, Mask 2,
// Vive : Grip, Bit 2, Mask 4
var role = system.GetControllerRoleForTrackedDeviceIndex(i);
if (role == ETrackedControllerRole.LeftHand || role == ETrackedControllerRole.RightHand)
{
if (_overlayHand == 0 ||
(_overlayHand == 1 && role == ETrackedControllerRole.LeftHand) ||
(_overlayHand == 2 && role == ETrackedControllerRole.RightHand))
{ {
if (system.GetControllerState(i, ref state, (uint)Marshal.SizeOf(state)) && batteryPercentage = 1f;
(state.ulButtonPressed & (_menuButton ? 2u : isOculus ? 128u : 4u)) != 0) }
{
_nextOverlayUpdate = DateTime.MinValue;
if (role == ETrackedControllerRole.LeftHand)
{
Array.Copy(_translationLeft, _translation, 3);
Array.Copy(_rotationLeft, _rotation, 3);
}
else
{
Array.Copy(_translationRight, _translation, 3);
Array.Copy(_rotationRight, _rotation, 3);
}
overlayIndex = i; err = ETrackedPropertyError.TrackedProp_Success;
var isCharging = system.GetBoolTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceIsCharging_Bool, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{
isCharging = false;
}
sb.Clear();
system.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_TrackingSystemName_String, sb, (uint)sb.Capacity, ref err);
var isOculus = sb.ToString().IndexOf("oculus", StringComparison.OrdinalIgnoreCase) >= 0;
// Oculus : B/Y, Bit 1, Mask 2
// Oculus : A/X, Bit 7, Mask 128
// Vive : Menu, Bit 1, Mask 2,
// Vive : Grip, Bit 2, Mask 4
var role = system.GetControllerRoleForTrackedDeviceIndex(i);
if (role == ETrackedControllerRole.LeftHand || role == ETrackedControllerRole.RightHand)
{
if (_overlayHand == 0 ||
(_overlayHand == 1 && role == ETrackedControllerRole.LeftHand) ||
(_overlayHand == 2 && role == ETrackedControllerRole.RightHand))
{
if (system.GetControllerState(i, ref state, (uint)Marshal.SizeOf(state)) &&
(state.ulButtonPressed & (_menuButton ? 2u : isOculus ? 128u : 4u)) != 0)
{
_nextOverlayUpdate = DateTime.MinValue;
if (role == ETrackedControllerRole.LeftHand)
{
Array.Copy(_translationLeft, _translation, 3);
Array.Copy(_rotationLeft, _rotation, 3);
}
else
{
Array.Copy(_translationRight, _translation, 3);
Array.Copy(_rotationRight, _rotation, 3);
}
overlayIndex = i;
}
} }
} }
}
var type = string.Empty; var type = string.Empty;
if (devClass == ETrackedDeviceClass.Controller) if (devClass == ETrackedDeviceClass.Controller)
{
if (role == ETrackedControllerRole.LeftHand)
{ {
type = "leftController"; if (role == ETrackedControllerRole.LeftHand)
{
type = "leftController";
}
else if (role == ETrackedControllerRole.RightHand)
{
type = "rightController";
}
else
{
type = "controller";
}
} }
else if (role == ETrackedControllerRole.RightHand) else if (devClass == ETrackedDeviceClass.GenericTracker)
{ {
type = "rightController"; type = "tracker";
} }
else else if (devClass == ETrackedDeviceClass.TrackingReference)
{ {
type = "controller"; type = "base";
} }
}
else if (devClass == ETrackedDeviceClass.GenericTracker)
{
type = "tracker";
}
else if (devClass == ETrackedDeviceClass.TrackingReference)
{
type = "base";
}
var item = new[] var item = new[]
{ {
type, type,
system.IsTrackedDeviceConnected(i) system.IsTrackedDeviceConnected(i)
? "connected" ? "connected"
@@ -524,18 +524,18 @@ namespace VRCX
(batteryPercentage * 100).ToString(), (batteryPercentage * 100).ToString(),
poses[i].eTrackingResult.ToString() poses[i].eTrackingResult.ToString()
}; };
_deviceListLock.EnterWriteLock(); _deviceListLock.EnterWriteLock();
try try
{ {
_deviceList.Add(item); _deviceList.Add(item);
} }
finally finally
{ {
_deviceListLock.ExitWriteLock(); _deviceListLock.ExitWriteLock();
} }
break; break;
} }
} }
} }
} }
+75 -75
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
@@ -366,82 +366,82 @@ namespace VRCX
case ETrackedDeviceClass.Controller: case ETrackedDeviceClass.Controller:
case ETrackedDeviceClass.GenericTracker: case ETrackedDeviceClass.GenericTracker:
case ETrackedDeviceClass.TrackingReference: case ETrackedDeviceClass.TrackingReference:
{
var err = ETrackedPropertyError.TrackedProp_Success;
var batteryPercentage = system.GetFloatTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceBatteryPercentage_Float, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{ {
batteryPercentage = 1f; var err = ETrackedPropertyError.TrackedProp_Success;
} var batteryPercentage = system.GetFloatTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceBatteryPercentage_Float, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
err = ETrackedPropertyError.TrackedProp_Success;
var isCharging = system.GetBoolTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceIsCharging_Bool, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{
isCharging = false;
}
sb.Clear();
system.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_TrackingSystemName_String, sb, (uint)sb.Capacity, ref err);
var isOculus = sb.ToString().IndexOf("oculus", StringComparison.OrdinalIgnoreCase) >= 0;
// Oculus : B/Y, Bit 1, Mask 2
// Oculus : A/X, Bit 7, Mask 128
// Vive : Menu, Bit 1, Mask 2,
// Vive : Grip, Bit 2, Mask 4
var role = system.GetControllerRoleForTrackedDeviceIndex(i);
if (role == ETrackedControllerRole.LeftHand || role == ETrackedControllerRole.RightHand)
{
if (_overlayHand == 0 ||
(_overlayHand == 1 && role == ETrackedControllerRole.LeftHand) ||
(_overlayHand == 2 && role == ETrackedControllerRole.RightHand))
{ {
if (system.GetControllerState(i, ref state, (uint)Marshal.SizeOf(state)) && batteryPercentage = 1f;
(state.ulButtonPressed & (_menuButton ? 2u : isOculus ? 128u : 4u)) != 0) }
{
_nextOverlayUpdate = DateTime.MinValue;
if (role == ETrackedControllerRole.LeftHand)
{
Array.Copy(_translationLeft, _translation, 3);
Array.Copy(_rotationLeft, _rotation, 3);
}
else
{
Array.Copy(_translationRight, _translation, 3);
Array.Copy(_rotationRight, _rotation, 3);
}
overlayIndex = i; err = ETrackedPropertyError.TrackedProp_Success;
var isCharging = system.GetBoolTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_DeviceIsCharging_Bool, ref err);
if (err != ETrackedPropertyError.TrackedProp_Success)
{
isCharging = false;
}
sb.Clear();
system.GetStringTrackedDeviceProperty(i, ETrackedDeviceProperty.Prop_TrackingSystemName_String, sb, (uint)sb.Capacity, ref err);
var isOculus = sb.ToString().IndexOf("oculus", StringComparison.OrdinalIgnoreCase) >= 0;
// Oculus : B/Y, Bit 1, Mask 2
// Oculus : A/X, Bit 7, Mask 128
// Vive : Menu, Bit 1, Mask 2,
// Vive : Grip, Bit 2, Mask 4
var role = system.GetControllerRoleForTrackedDeviceIndex(i);
if (role == ETrackedControllerRole.LeftHand || role == ETrackedControllerRole.RightHand)
{
if (_overlayHand == 0 ||
(_overlayHand == 1 && role == ETrackedControllerRole.LeftHand) ||
(_overlayHand == 2 && role == ETrackedControllerRole.RightHand))
{
if (system.GetControllerState(i, ref state, (uint)Marshal.SizeOf(state)) &&
(state.ulButtonPressed & (_menuButton ? 2u : isOculus ? 128u : 4u)) != 0)
{
_nextOverlayUpdate = DateTime.MinValue;
if (role == ETrackedControllerRole.LeftHand)
{
Array.Copy(_translationLeft, _translation, 3);
Array.Copy(_rotationLeft, _rotation, 3);
}
else
{
Array.Copy(_translationRight, _translation, 3);
Array.Copy(_rotationRight, _rotation, 3);
}
overlayIndex = i;
}
} }
} }
}
var type = string.Empty; var type = string.Empty;
if (devClass == ETrackedDeviceClass.Controller) if (devClass == ETrackedDeviceClass.Controller)
{
if (role == ETrackedControllerRole.LeftHand)
{ {
type = "leftController"; if (role == ETrackedControllerRole.LeftHand)
{
type = "leftController";
}
else if (role == ETrackedControllerRole.RightHand)
{
type = "rightController";
}
else
{
type = "controller";
}
} }
else if (role == ETrackedControllerRole.RightHand) else if (devClass == ETrackedDeviceClass.GenericTracker)
{ {
type = "rightController"; type = "tracker";
} }
else else if (devClass == ETrackedDeviceClass.TrackingReference)
{ {
type = "controller"; type = "base";
} }
}
else if (devClass == ETrackedDeviceClass.GenericTracker)
{
type = "tracker";
}
else if (devClass == ETrackedDeviceClass.TrackingReference)
{
type = "base";
}
var item = new[] var item = new[]
{ {
type, type,
system.IsTrackedDeviceConnected(i) system.IsTrackedDeviceConnected(i)
? "connected" ? "connected"
@@ -452,18 +452,18 @@ namespace VRCX
(batteryPercentage * 100).ToString(), (batteryPercentage * 100).ToString(),
poses[i].eTrackingResult.ToString() poses[i].eTrackingResult.ToString()
}; };
_deviceListLock.EnterWriteLock(); _deviceListLock.EnterWriteLock();
try try
{ {
_deviceList.Add(item); _deviceList.Add(item);
} }
finally finally
{ {
_deviceListLock.ExitWriteLock(); _deviceListLock.ExitWriteLock();
} }
break; break;
} }
} }
} }
} }
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019 pypy. All rights reserved. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>. // For a copy, see <https://opensource.org/licenses/MIT>.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2022 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2019 pypy & Natsumi Copyright (c) 2019-2025 pypy and individual contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2024 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,7 +1,7 @@
@charset "utf-8"; @charset "utf-8";
// //
// Copyright(c) 2019-2021 pypy and individual contributors. // Copyright(c) 2019-2025 pypy and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -98,7 +98,7 @@ mixin loginPage
.x-legal-notice-container .x-legal-notice-container
div(style='text-align: center; font-size: 12px') div(style='text-align: center; font-size: 12px')
p #[a.x-link(@click='openExternalLink("https://vrchat.com/home/password")') {{ $t('view.login.forgotPassword') }}] p #[a.x-link(@click='openExternalLink("https://vrchat.com/home/password")') {{ $t('view.login.forgotPassword') }}]
p &copy; 2019-2024 #[a.x-link(@click='openExternalLink("https://github.com/pypy-vrc")') pypy] &amp; #[a.x-link(@click='openExternalLink("https://github.com/Natsumi-sama")') Natsumi] p &copy; 2019-2025 #[a.x-link(@click='openExternalLink("https://github.com/pypy-vrc")') pypy] &amp; #[a.x-link(@click='openExternalLink("https://github.com/Natsumi-sama")') Natsumi]
p {{ $t('view.settings.general.legal_notice.info') }} p {{ $t('view.settings.general.legal_notice.info') }}
p {{ $t('view.settings.general.legal_notice.disclaimer1') }} p {{ $t('view.settings.general.legal_notice.disclaimer1') }}
p {{ $t('view.settings.general.legal_notice.disclaimer2') }} p {{ $t('view.settings.general.legal_notice.disclaimer2') }}
+1 -1
View File
@@ -203,7 +203,7 @@ mixin settingsTab
.options-container(style='margin-top: 45px; border-top: 1px solid #eee; padding-top: 30px') .options-container(style='margin-top: 45px; border-top: 1px solid #eee; padding-top: 30px')
span.header {{ $t('view.settings.general.legal_notice.header') }} span.header {{ $t('view.settings.general.legal_notice.header') }}
.options-container-item .options-container-item
p &copy; 2019-2024 #[a.x-link(@click='openExternalLink("https://github.com/pypy-vrc")') pypy] &amp; #[a.x-link(@click='openExternalLink("https://github.com/Natsumi-sama")') Natsumi] p &copy; 2019-2025 #[a.x-link(@click='openExternalLink("https://github.com/pypy-vrc")') pypy] &amp; #[a.x-link(@click='openExternalLink("https://github.com/Natsumi-sama")') Natsumi]
p {{ $t('view.settings.general.legal_notice.info') }} p {{ $t('view.settings.general.legal_notice.info') }}
p {{ $t('view.settings.general.legal_notice.disclaimer1') }} p {{ $t('view.settings.general.legal_notice.disclaimer1') }}
p {{ $t('view.settings.general.legal_notice.disclaimer2') }} p {{ $t('view.settings.general.legal_notice.disclaimer2') }}
+1 -1
View File
@@ -1,7 +1,7 @@
@charset "utf-8"; @charset "utf-8";
// //
// Copyright(c) 2019-2021 pypy and individual contributors. // Copyright(c) 2019-2025 pypy and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright(c) 2019-2024 pypy, Natsumi and individual contributors. // Copyright(c) 2019-2025 pypy, Natsumi and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.
+1 -1
View File
@@ -1,7 +1,7 @@
@charset "utf-8"; @charset "utf-8";
// //
// Copyright(c) 2019-2021 pypy and individual contributors. // Copyright(c) 2019-2025 pypy and individual contributors.
// All rights reserved. // All rights reserved.
// //
// This work is licensed under the terms of the MIT license. // This work is licensed under the terms of the MIT license.