Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); TCPShield Fabric support (1.16.5 through 1.18.2) by Draylar · Pull Request #91 · TCPShield/RealIP · GitHub
Skip to content

TCPShield Fabric support (1.16.5 through 1.18.2) - #91

Open
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support
Open

TCPShield Fabric support (1.16.5 through 1.18.2)#91
Draylar wants to merge 1 commit into
TCPShield:masterfrom
Draylar:fabric-support

Conversation

@Draylar

@DraylarDraylar commented Oct 7, 2022

Copy link
Copy Markdown

Hi! This is an updated version of the Fabric Loader support introduced on the 2.5 branch of RealIP. We have been using the 2.5 Fabric version internally for a while (with success), and I have also verified the new 2.6 rendition works as well.

A few notes about the PR:

  1. I'm currently building off Fabric 1.16.5 w/Loom 0.6 to support Java 8. I suspect this will break on 1.19 due to LiteralText API changes impacting FabricPlayer#disconnect (+ 1.19 requires JDK17), so I'll need to figure out a better way to support all versions in the future. This jar will support versions 1.16.5 through 1.18.2. I'll probably end up using reflection to call Text methods based on game version to allow for both to exist at the same time.
  2. My configuration implementation relies on a budget YAML parser. I would be happy to switch this to GSON or another external library if needed - Fabric does not ship a default configuration system.

Let me know if you have any questions or change requests. Thank you!

Demo Images

Without RealIP jar on server:

image

With RealIP jar on server:

image

This commit introduces Fabric support for the TCPShield RealIP plugin. We use Loom version 0.6 and Minecraft version 1.16.5 to support building with Java 8 alongside the other plugin loader implementations.
Configuration loading is done with simple YAML parsing, as Fabric does not ship a default configuration library.
For information on FabricPacket#setPacketHostname no-op, visit TCPShield#40 (comment).
@DylanKeir
DylanKeir self-requested a review October 8, 2022 17:41
@DylanKeirDylanKeir self-assigned this Oct 8, 2022
@he3alshe3als mentioned this pull request Aug 1, 2024
@he3als

he3als commented Aug 1, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now
Logging example

Aug 01, 2024 3:25:24 PM net.tcpshield.tcpshield.fabric.TCPShieldFabric onInitializeServer
INFO: TCPShield has been loaded.

Instead of...

[15:25:24] [main/INFO]: TCPShield 2.8.1 has been loaded.

You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

@DylanKeir

Copy link
Copy Markdown
Member

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: https://github.com/he3als/RealIP/tree/fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

@he3als

he3als commented Aug 6, 2024

Copy link
Copy Markdown

Hi, I've made a PR to this PR for 1.21 support if anyone wants it. Note there are a few improvements to be still made, but it works:

  • It seems like the disconnect message doesn't work like on Paper; it just says 'Disconnected'
  • The RealIP options aren't in their own folder in the server's config
  • The way the logging is formatted is a bit barebones
  • Pre 1.19 support probably doesn't work now

Logging example
You can build it from my fork: he3als/RealIP@fabric

Hey there, this slipped through the cracks a couple years back, I'm definitely interested in getting this merged if you can get yours merged into the original PR. Worse cast scenario, you can fork their fork and we can merge from there if the original author isn't looking to continue with this.

I'm not sure if it should be merged yet due to its limited range of support:

As the original author said, implementing reflection for LiteralText and making the HandshakeC2SPacketAccessor conditional would be ideal. However, I don't know Java, so I'm likely unable to implement this myself. :/

I mostly made my PR as a temporary solution for people wanting to use TCPShield on modern Fabric versions and to spark some activity to finish the pull request. However, I presume there isn't too much work left, so if you or anyone else has the time to look, it would be helpful. :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Draylar@he3als@DylanKeir